Тестирование задач
Чтобы вам было проще проверять, правильно ли работают ваши программы, создана тестовая система. Она автоматически запускает решения на нескольких тестах и смотрит, совпал ли ответ, который выдает ваше решение, с правильным.
Оформление задач
Все задачи оформляются в виде функции. Они получают на вход какие-то данные, возвращают результат решения задачи. Предположим, что есть задача 1:
Дано число, верните другое число, которое в два раза больше данного.
и задача 2:
Даны два числа, верните их сумму.
Решим эти задачи, заведем файл example_tasks.py
и напишем внутри:
def task1(x):
return 2 * x
def task2(x, y):
return x + y
Для начала проверим задачи самостоятельно. Для этого вызовем функции несколько раз с разными аргументами. Код станет таким:
def task1(x):
return 2 * x
def task2(x, y):
return x + y
print("Проверка задачи 1")
print(task1(10)) # должно быть 20
print(task1(5)) # должно быть 10
print(task1(42)) # должно быть 84
print("Проверка задачи 2")
print(task2(10, 20)) # должно быть 30
print(task2(0, 5)) # должно быть 5
print(task2(42, 123)) # должно быть 165
Запустите теперь этот код и проверьте, правильно ли считаются значения. Если вам кажется, что правильно, переходим к следующему шагу, попробуем запустить тестовую систему для этих задач.
Для начала возьмем тесты. Ссылки на тесты всегда будут частью условия. У этих задач тесты можно взять по ссылкам тесты для задачи 1 и тесты для задачи 2
Кроме этого, возьмем сам код тестовой системы: testsystem.py
Итого, у вас в папке должны лежать 4 файла: ваши решения example_tasks.py
, тестовая система testsystem.py
и два файла с тестами task_example.json.gz
и task_example_2.json.gz
.
Добавьте небольшое изменение в файл с решениями example_tasks.py
, допишите строку import в начале
и тестовый вызов в конце:
from testsystem import test # новая строка
def task1(x):
return 2 * x
def task2(x, y):
return x + y
print("Проверка задачи 1")
print(task1(10)) # должно быть 20
print(task1(5)) # должно быть 10
print(task1(42)) # должно быть 84
test(task1, "task_example.json.gz") # указываем, что проверять (без скобок) и на каком файле
print("Проверка задачи 2")
print(task2(10, 20)) # должно быть 30
print(task2(0, 5)) # должно быть 5
print(task2(42, 123)) # должно быть 165
test(task2, "task_example_2.json.gz") # указываем, что проверять (без скобок) и на каком файле
Запустите код и проверьте, что все тесты пройдены. После этого добавьте ошибку в решение, например, задачи 2, и проверьте, что тесты перестали проходить.