Каждое задание находится в отдельной папке.
Структура файлов для каждого задания:
README.md
- описание заданияcredit.c
илиcredit.lua
- заготовка решенияspec.lua
- тесты, которые должно проходить решение
Чтобы Lua "видел" установленные модули, в том числе решения
задач, надо изменить переменные окружения PATH
, LUA_PATH
и
LUA_CPATH
. Для этого выполните команду:
$ eval `luarocks path`
$ export PATH=$PATH:~/.luarocks/bin
Для локальной проверки тестов потребуется пакет busted
:
$ luarocks install --local busted
Собрать задачи (в корневой папке проекта):
$ luarocks make --local
- сделать форк этого репозитория
- склонировать к себе в папку
- решить задачу (изменить файл credit.c или credit.lua)
- собрать локально (luarocks make --local)
- в файле
spec.lua
заменить "pending" на "it" - запустить команду
busted ваша-задача/spec.lua
- убедиться, что все тесты пройдены и нет pending
- сделать коммит, push'нуть на гитхаб и создать pull-реквест
- отслеживать статус решения на Travis
Есть две группы задач:
- Решить задачу на C в форме расширения для Lua. Названия начинаются с "c-".
- Составить юнит-тесты на Lua. Названия начинаются с "lua-".
Задачи c-distance и lua-distance даны для примера. К ним прилагается моё решение. Выбирать их для зачёта нельзя.
Для зачёта нужно одновременно выполнить два условия:
- справиться хотя бы с одной задачей из каждой группы
- выполнить хотя бы одно из:
- сдать устную часть зачёта
- представить свой учебный проект (небольшой рассказ и код)
- сдать контрольную на 5