forked from UNN/2026-rff_mp
24 lines
914 B
Python
24 lines
914 B
Python
|
|
import time
|
|||
|
|
from typing import Callable, Any
|
|||
|
|
|
|||
|
|
def _concrete_insert_tester(func: Callable[[Any, str, str], Any], records: list) -> float:
|
|||
|
|
"""Исследует время работы функции вставки"""
|
|||
|
|
aboba = None
|
|||
|
|
|
|||
|
|
start = time.perf_counter()
|
|||
|
|
for item in records:
|
|||
|
|
aboba = func(aboba, name=item[0], phone=item[1])
|
|||
|
|
end = time.perf_counter()
|
|||
|
|
|
|||
|
|
elapsed = end - start
|
|||
|
|
return elapsed
|
|||
|
|
|
|||
|
|
def insert_tester(func_to_test: Callable[[Any, str, str], Any], records_shuffled, records_sorted) -> dict:
|
|||
|
|
"""Возвращает словарь с временем сортировки в обоих режимах"""
|
|||
|
|
shuffled = _concrete_insert_tester(func_to_test, records_shuffled)
|
|||
|
|
sorted = _concrete_insert_tester(func_to_test, records_sorted)
|
|||
|
|
|
|||
|
|
return {"Function": func_to_test.__name__,
|
|||
|
|
"shuffled": shuffled,
|
|||
|
|
"sorted": sorted
|
|||
|
|
}
|