Код Middle Тестирование и pytest обновлено
Мини-раннер параметризованных тестов
Условие
Реализуйте упрощённый parametrize: run_cases(func_name, cases) берёт функцию из словаря FUNCS, вызывает её на каждом наборе аргументов и возвращает отчёт {"passed": n, "failed": [индексы упавших], "errors": [индексы, где было исключение]}. Случай [args, expected]. Исключение не прерывает прогон.
Примеры
run_cases("div", [[[6, 3], 2], [[7, 2], 3], [[1, 0], 0]]) // {"passed":2,"failed":[],"errors":[2]}
run_cases("upper", [[["a"], "A"], [["b"], "b"]]) // {"passed":1,"failed":[1],"errors":[]}
run_cases("head", [[[[]], null], [[[5]], 5]]) // {"passed":1,"failed":[],"errors":[0]}
Как подойти
Подсказки: 1
try/exceptвокруг вызова каждого случая.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.