Как проверить функцию Python: ручные тесты и граничные случаи
Ручной тест — это входное значение и заранее определённый ожидаемый результат. Вызовите функцию, сравните фактическое значение с ожидаемым и выведите понятный итог. Проверка одного удобного числа не заменяет проверку границ.
Для функции, зависящей от знака, отдельно нужны отрицательное число, ноль и положительное число. Пример ниже проверяет другую функцию — модуль числа.
Короткий пример
cases = [(-4, 4), (0, 0), (6, 6)]
for value, expected in cases:
actual = abs(value)
print(value, "OK" if actual == expected else "FAIL")
Результат:
-4 OK 0 OK 6 OK
Ожидаемый ответ нельзя получать повторным вызовом той же функции: это не независимая проверка. Различайте возвращаемое значение и текст, который функция печатает. Задание ниже требует написать собственную функцию и проверить её на разных знаках.
Попробуйте самостоятельно
Ниже — отдельное задание с другими данными. Напишите решение и запустите проверку кода без регистрации. Для последовательного обучения откройте курс.
Проверка знака числа через ручные тесты
Напишите функцию classify_number(n), которая определяет знак числа.
Правила такие:
- если
nбольше 0, функция возвращает1; - если
nравно 0, функция возвращает0; - если
nменьше 0, функция возвращает-1.
После определения функции добавьте не менее трёх проверочных вызовов. Для каждого вызова заранее запишите ожидаемый результат, сравните его с результатом функции через if и ==, а затем выведите OK или FAIL.
Обязательно проверьте:
- положительное число;
- ноль;
- отрицательное число.
Без регистрации. Гостевая проверка не сохраняет прогресс. Для сохранения перейдите к уроку.
Отправьте решение, чтобы увидеть результаты тестов.
Связанные задачи
- Как вызвать функцию Python: def, аргумент и return
- Параметры по умолчанию и несколько возвращаемых значений — задача по Python
- Локальная и глобальная переменная Python: задача на return
- Функции Python: разбей программу чека на части
- Python не распознаётся в терминале Windows: проверьте PATH
- Python can't open file: No such file or directory — задача
