import random

names_pool = (
    "Иван", "Мария", "Петр", "Анна", "Сергей", "Елена", "Алексей", "Ольга",
    "Дмитрий", "Татьяна", "Михаил", "Наталья", "Андрей", "Ирина", "Николай",
    "Светлана", "Владимир", "Екатерина", "Александр", "Юлия", "Павел", "Ксения",
    "Виктор", "Анастасия", "Артем", "Виктория", "Максим", "Полина", "Даниил",
    "София", "Евгений", "Алиса", "Станислав", "Дарья", "Георгий", "Вероника",
    "Кирилл", "Маргарита", "Тимофей", "Арина", "Руфина", "Илларион", "Стелла",
    "Роман", "Валерия", "Игорь", "Алина", "Олег", "Диана", "Юрий", "Милана",
    "Василий", "Ева", "Никита", "Алиса", "Константин", "Кира", "Денис", "Ангелина",
    "Вячеслав", "Мирослава", "Григорий", "Эмилия", "Леонид", "Василиса", "Руслан",
    "Стефания", "Арсений", "Есения", "Антон", "Яна", "Матвей", "Любовь", "Семен",
    "Надежда", "Федор", "Софья", "Лев", "Варвара", "Егор", "Амелия", "Борис",
    "Агата", "Захар", "Камилла", "Давид", "Олеся", "Ярослав", "Людмила", "Данила",
    "Регина", "Марк", "Каролина", "Артур", "Нелли", "Глеб", "Инна", "Платон",
    "Нина", "Святослав", "Римма", "Родион", "Лидия", "Эдуард", "Жанна", "Вадим",
    "Рената", "Савелий", "Алла", "Назар", "Снежана", "Демид", "Лариса", "Филипп",
    "Злата", "Тимур", "Майя", "Клим", "Эльвира", "Дамир", "Таисия", "Илья",
    "Роза", "Виталий", "Азалия", "Степан", "Лиана", "Богдан", "Инесса", "Эрик",
    "Ариана", "Алан", "Юлиана", "Лука", "Антонина", "Мирон", "Клавдия", "Гордей",
    "Руслана", "Макар", "Елизавета", "Северин", "Александра", "Моисей", "Агафья",
    "Наум", "Серафима", "Влад", "Фаина", "Кузьма", "Пелагея", "Ермак", "Ульяна",
    "Тарас", "Марианна", "Остап", "Бронислава", "Архип", "Владислава", "Фома",
    "Станислава", "Еремей", "Зинаида", "Прохор", "Раиса", "Мстислав", "Галина",
    "Ростислав", "Валентина", "Серафим", "Евдокия", "Лаврентий", "Кристина",
    "Никон", "Анфиса", "Феликс", "Лия", "Иннокентий", "Роксана", "Всеволод",
    "Эвелина", "Модест", "Юнона", "Трофим", "Изабелла", "Аполлон", "Глория",
    "Касьян", "Аврора", "Любомир", "Адель", "Бронислав", "Доминика", "Афанасий",
    "Фрида", "Евстафий", "Ассоль", "Венедикт", "Цветана", "Епифан", "Мелисса",
    "Добрыня"
)

_non_existent_names = [
    "Ноль", "Целковый", "Полушка", "Четвертушка", "Осьмушка",
    "Пудовичок", "Медячок", "Серебрячок", "Золотничок", "Девятичок"
]
assert set(names_pool).isdisjoint(set(_non_existent_names)), \
"В списке несуществующих имён существуют существующие имена сущностей"
names_pool_to_find = random.choices(names_pool, k=100) + _non_existent_names

def generate_phone(phone_len=11) -> str:
    # 88005553535
    return str(random.randint(10**phone_len, 10**(phone_len+1)-1))

def generate_test_data(N=10000, _sorted=False):
    records = []
    for i in range(N):
        name = random.choice(names_pool)
        phone = generate_phone()
        records.append((name, phone))
    
    if _sorted:
        return sorted(records)
    return records