36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
|
|
import random
|
||
|
|
from typing import List, Tuple
|
||
|
|
|
||
|
|
|
||
|
|
Record = Tuple[str, str]
|
||
|
|
|
||
|
|
|
||
|
|
def generate_records(n: int, repeat_names: bool = False, seed: int = 42) -> List[Record]:
|
||
|
|
rng = random.Random(seed)
|
||
|
|
records: List[Record] = []
|
||
|
|
|
||
|
|
if repeat_names:
|
||
|
|
name_pool = [
|
||
|
|
"User_Alex", "User_Bob", "User_Cat", "User_Dan", "User_Eva",
|
||
|
|
"User_Fox", "User_Geo", "User_Hen", "User_Ira", "User_Leo",
|
||
|
|
]
|
||
|
|
for _ in range(n):
|
||
|
|
name = rng.choice(name_pool)
|
||
|
|
phone = f"{rng.randint(1000000000, 9999999999)}"
|
||
|
|
records.append((name, phone))
|
||
|
|
else:
|
||
|
|
for i in range(n):
|
||
|
|
name = f"User_{i:05d}"
|
||
|
|
phone = f"{1000000000 + i}"
|
||
|
|
records.append((name, phone))
|
||
|
|
|
||
|
|
return records
|
||
|
|
|
||
|
|
|
||
|
|
def prepare_records_variants(records: List[Record], seed: int = 42):
|
||
|
|
rng = random.Random(seed)
|
||
|
|
records_shuffled = list(records)
|
||
|
|
rng.shuffle(records_shuffled)
|
||
|
|
records_sorted = sorted(records, key=lambda x: x[0])
|
||
|
|
return records_shuffled, records_sorted
|