Структура git-репозитория для практикума 2020 г. по Python
Каталог для практикума в git-репозитории должен называться pythonprac. Далее все пути указаны, считая от этого каталога.
Репозиторий должен быть публичный
После создания репозитория его следует зарегистрировать здесь: https://git.cs.msu.ru/gkuryachiy/prac/-/issues/1
- Указать ФИО и группу
Всё, что вы сделали за время занятия, следует публиковать в этом репозитории в день занятия
Все решения и тесты должны быть опубликованы в репозитории до окончания дедлайна по заданию
Для каждого задания практикума создается каталог с датой вида <ГГГГММДД> (выдача команды date "+%Y%m%d_1"), дата - того семинара, на котором выдано задание. Если на семинаре выдано несколько заданий, то для них создаются каталоги вида <ГГГГММДД_1>, <ГГГГММДД_2> и т.п.
TODO на потом: не ГГГГММДД_N, а ГГГГММДД/N — чтобы можно было нормально по дням считать
В каталоге содержатся:
файл readme.txt с требуемой по заданию информацией о разработанной программе. Как минимум - с названием задания. Могут также потребоваться: перечень ключей командной строки, перечень входных файлов, описание формата вывода.
файл(ы) с текстом программы. TODO на потом: ровно один файл или фиксированные названия для просроченных. но проходящих тесты
- конфигурационные файлы, если они есть у программы.
подкаталог data/, в котором хранятся примеры входных данных (если нужны по заданию).
Файлы с именами inputчисло.txt и outputчисло.txt — тестовые
запуск программы проверки checkerNN.py путь-до-каталога-с-решением
для всех файлов число.in
запускает ваше решение, передаёт ему на стандартный вход содержимое число.in
сравнивает вывод решения с эталонным выводом число.out
- Выводит статистику, и, если они есть, различия
Пример:
20200903_1/
readme.txt
task1.py
task1.ini
data/
1.in
1.out
2.in
2.out
- …
- Как написать тест на класс/функцию?
- К файлу с классом/функцией приписывается тестирующий код
В файл с тестом (1.in) кладётся программа на питоне, в которой используется тестируемый класс или функция
В файл с эталонным выводом попадает результат этого print()
- Пример:
prog.py
data/1.in
print(C().A+42-C().fun(33))
data/1.out
9