-
Notifications
You must be signed in to change notification settings - Fork 0
Autotest Docs
В "grader_config.py" задаются входные параметры для системы оценивания.
- dist_grade - словарь, определяющий балл, выставляемый за точность позиционирования дрона. Ключ - максимальное значение расстояния, за которое можно получить балл - элемент, соответствующий ключу.
- metric - способ подсчета расстояния. Реализовано 3 метрики: манхэттенская, метрика Чебышёва, евклидова.
- pos_coeff и photo_coeff - пропорция, в которой учитываются расположение дронов и успешные фотографии для выставления оценки. Предполагается, что они неотрицательны и хотя бы один из коэффициентов не равен 0.
Класс Grader в конструкторе принимает список дронов, который выполнял задачу, номер задачи и названия коэффициентов для оценивания. Коэффициенты могут быть переданы списком, кортежем, а также одной строкой. Наличие хотя бы одного коэффициента ("position" или "photo") необходимо для корректной работы.
Методы:
- __get_distance - определение расстояния между двумя точками по заданной метрике.
- __get_pos - определение положения дрона в конце выполнения задачи. Пока использована заглушка.
- __get_expected_pos - определение ожидаемого положения дрона в конце выполнения задачи. Используется для оценки точности расположения дронов.
- __grade_position - оценка положения дрона. Использует словарь dist_grade и функции, перечисленные выше.
- __get_photos_count - определение количества фотографий, сделанных дроном в процессе выполнения задачи.
- __get_expected_photos_count - определение ожидаемого количества фотографий, сделанных дроном в процессе выполнения задачи. Используется для оценки фотографий, сделанных дронами.
- __grade_photo - оценка дрона за фотографирование. Каждая неуспешная фотография линейно уменьшает оценку.
- grade - суммарная оценка дронов с учетом используемых коэффициентов оценивания.
В "grader/primitive_check.py" определена функция
def primitive_check(code : str) -> bool
Она проверяет код пользователя code
на наличие решения (решение не пусто), а также на наличие только правильных команд, интерпретируемых контроллером, с правильными аргументами.
code
- строка с командами, разделёнными переносом строки.
Функция возвращает True
в случае успешного прохождения проверки, иначе - False
.
Для функции примитивной проверки написаны юнит-тесты в запускаемом скрипте "grader/test/primitive_check_test.py". Информация об успешности прохождения тестов выводится в терминал (при добавлении проверки юнит-тестов в CI нужно внедрить это).
- XQueue Watcher
- Разработка "примитивной" системы проверки решений
- Определение дальнейшего поведения программы, в зависимости от результата "примитивной" проверки
- Реализация интерфейса передачи решений в симулятор
- Запуск симулятора
- Разработка системы проверки "адекватности" переданного решения
- Проработка простейших сценариев использования разработанной системы
- Доработка "примитивной" системы оценок и проверки "адекватности" решений
- Реализация интерфейса отправки оценки решения обратно в XQueue
- Проработка комплексных сценариев использования системы
- Юнит тестирование
- Интеграционное тестирование
- Разработка docker-котейнера
- Создание скриптов запуска разработанного приложения
- Реализация сценариев использования системы, предоставленных заказчиком