2026-rff_mp/MusinAA/task1/util/timeTester.py

38 lines
1.1 KiB
Python
Raw Normal View History

2026-03-30 14:47:24 +00:00
import time
2026-04-05 07:06:28 +00:00
import random
2026-03-30 14:47:24 +00:00
from typing import Callable, Any
2026-04-05 07:06:28 +00:00
from task1.util.randomNames import names_pool_to_find, names_pool
2026-03-30 14:47:24 +00:00
2026-04-02 22:30:35 +00:00
def test(records: list,
insert_func: Callable[[Any, str, str], Any],
find_func: Callable[[Any, str], Any],
delete_func: Callable[[Any, str], Any]) -> dict:
data = None
# Вставка всех записей
2026-03-30 14:47:24 +00:00
start = time.perf_counter()
for item in records:
2026-04-02 22:30:35 +00:00
data = insert_func(data, item[0], item[1])
2026-03-30 14:47:24 +00:00
end = time.perf_counter()
2026-04-02 22:30:35 +00:00
insert_time = end - start
2026-03-30 14:47:24 +00:00
2026-04-02 22:30:35 +00:00
# Поиск 110 случайных записей
start = time.perf_counter()
for name in names_pool_to_find:
find_func(data, name)
end = time.perf_counter()
find_time = end - start
2026-03-30 14:47:24 +00:00
2026-04-02 22:30:35 +00:00
# Удаление 50 случайных записей
start = time.perf_counter()
2026-04-05 07:06:28 +00:00
for name in random.choices(names_pool, k = 50):
2026-04-02 22:30:35 +00:00
data = delete_func(data, name)
end = time.perf_counter()
delete_time = end - start
return {
"insert_time" : insert_time ,
"find_time" : find_time ,
"delete_time": delete_time
}