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
|
|
|
|
|
}
|