Тестирование
- Базовый вариант (
text-statistics)
Тестовый модуль: info.kgeorgiy.java.advanced.i18n
На сервере производится тестирование на полном наборе тестов.
Число реально прошедших тестов можно увидеть в строке
!!! Passed: X of Y.
Интерфейсы
HelloUDPNonblockingClientдолжен реализовывать интерфейс HelloClientHelloUDPNonblockingServerдолжен реализовывать интерфейс HelloServer
Тестирование
- Базовый вариант (
clientиserver) - Простая модификация (
new-clientиnew-server)HelloUDPNonblockingClientдолжен реализовывать интерфейс NewHelloClient.
- Сложная модификация (
new-client-i18nиnew-server-i18n)HelloUDPNonblockingClientдолжен реализовывать интерфейс NewHelloClient.- На противоположной стороне находится многоязычная система, дающая ответы на различных языках.
- Продвинутая модификация (
new-client-evilиnew-server-evil)HelloUDPNonblockingClientдолжен реализовывать интерфейс NewHelloClient.- На противоположной стороне находится старая многоязычная система, не полностью соответствующая последней версии спецификации.
Интерфейсы
HelloUDPClientдолжен реализовывать интерфейс HelloClientHelloUDPServerдолжен реализовывать интерфейс HelloServer
Тестирование
- Базовый вариант (
clientиserver) - Простая модификация (
new-clientиnew-server)HelloUDPClientдолжен реализовывать интерфейс NewHelloClient.
- Сложная модификация (
new-client-i18nиnew-server-i18n)HelloUDPClientдолжен реализовывать интерфейс NewHelloClient.- На противоположной стороне находится многоязычная система, дающая ответы на различных языках.
- Продвинутая модификация (
new-client-evilиnew-server-evil)HelloUDPClientдолжен реализовывать интерфейс NewHelloClient.- На противоположной стороне находится старая многоязычная система, не полностью соответствующая последней версии спецификации.
Тестовый модуль: info.kgeorgiy.java.advanced.hello
Исходный код тестов:
Тесты используют только внутренние данные и ничего не скачивают из интернета.
Тестирование
- простой вариант (
easy): тесты - сложный вариант (
hard): тесты - простая модификация (
new-easy): интерфейс, тесты - сложная модификация (
new-hard): интерфейс, тесты - продвинутый вариант (
advanced): интерфейс, тесты
Интерфейсы и вспомогательные классы
Тестовый модуль: info.kgeorgiy.java.advanced.crawler
Тестирование
- простой вариант (
scalar): тесты - сложный вариант (
list): тесты - продвинутый вариант (
advanced):- При и после закрытия потоки в
ParallelMapper::mapдолжны завершаться сIllegalStateException - Класс
IterativeParallelismдолжен реализовывать интерфейс AdvancedIP. - Тесты
- При и после закрытия потоки в
Тестовый модуль: info.kgeorgiy.java.advanced.mapper
Тестирование
- простой вариант (
scalar): - сложный вариант (
list): - продвинутый вариант (
advanced):- Класс должен реализовывать интерфейс AdvancedIP.
- Тесты
Тестовый модуль: info.kgeorgiy.java.advanced.iterative
Класс Implementor должен дополнительно реализовывать интерфейс
JarImpler.
Скрипты, MANIFEST.MF и .jar-файл должны находиться в каталоге scripts
в корне репозитория.
Скомпилированный Javadoc должен находиться в каталоге javadoc
в корне репозитория.
В скриптах вы можете рассчитывать на то, что репозиторий курса
лежит рядом с вашим репозиторием в каталоге java-advanced-2025.
Вы можете использовать код из Compiler.java в своём решении (но не сам класс).
Исходный код
- простой вариант (
interface): тесты - сложный вариант (
class): тесты - продвинутый вариант (
advanced): тесты
Тестовый модуль: info.kgeorgiy.java.advanced.implementor.tools
Класс Implementor должен реализовывать интерфейс
Impler.
Исходный код
- простой вариант (
interface): тесты - сложный вариант (
class): тесты - продвинутый вариант (
advanced): тесты
Тестовый модуль: info.kgeorgiy.java.advanced.implementor
Исходный код
- простой вариант (
easy):- Класс
Lambdaдолжен реализовывать интерфейс EasyLambda. - тесты
- Класс
- сложный вариант (
hard):- Класс
Lambdaдолжен реализовывать интерфейс HardLambda. - тесты
- Класс
- продвинутый вариант (
advanced):- Класс
Lambdaдолжен реализовывать интерфейс AdvancedLambda. - тесты
- Класс
Тестовый модуль: info.kgeorgiy.java.advanced.lambda
Исходный код
- простой вариант (
StudentQuery): интерфейс, тесты - сложный вариант (
GroupQuery): интерфейс, тесты - продвинутый вариант (
AdvancedQuery): интерфейс, тесты
Тестовый модуль: info.kgeorgiy.java.advanced.student
Исходный код
- простой вариант (
SortedSet): - сложный вариант (
NavigableSet): - продвинутый вариант (
AdvancedSet):ArraySetдолжен дополнительно реализовывать интерфейс AdvancedSet- Метод
toMapдолжен создавать новыйMap, отображающий элементы множества в заданное значение.
- Метод
- тесты
Тестовый модуль: info.kgeorgiy.java.advanced.arrayset
Исходный код
- простой вариант (
Walk): тесты - сложный вариант (
RecursiveWalk): тесты - продвинутый вариант (
AdvancedWalk):- Третьим аргументом командной строки может быть задан алгоритм хеширования:
sha-256илиmd5. - тесты
- Третьим аргументом командной строки может быть задан алгоритм хеширования:
Тестовый модуль: info.kgeorgiy.java.advanced.walk
Для того, чтобы протестировать программу:
- Скачайте
- тесты
- базовый модуль
- тестовый модуль (свой для каждого ДЗ)
- библиотеки
- тесты
- Откомпилируйте решение домашнего задания
- Протестируйте домашнее задание
- Текущая директория должна:
- содержать все скачанные
.jarфайлы; - содержать скомпилированное решение;
- не содержать скомпилированные самостоятельно тесты.
- содержать все скачанные
- Запустите тесты:
java -cp . -p . -m <тестовый модуль> <вариант> <полное имя класса> - Пример для простого варианта ДЗ-1:
java -cp . -p . -m info.kgeorgiy.java.advanced.walk Walk <полное имя класса>
- Текущая директория должна: