Skip to content

Latest commit

 

History

History
271 lines (195 loc) · 16.9 KB

File metadata and controls

271 lines (195 loc) · 16.9 KB

Тесты к курсу «Технологии Java»

Условия домашних заданий

Домашнее задание 15. TextStatistics

Тестирование

  • Базовый вариант (text-statistics)

Тестовый модуль: info.kgeorgiy.java.advanced.i18n

На сервере производится тестирование на полном наборе тестов. Число реально прошедших тестов можно увидеть в строке !!! Passed: X of Y.

Домашнее задание 14. HelloNonblockingUDP

Интерфейсы

  • HelloUDPNonblockingClient должен реализовывать интерфейс HelloClient
  • HelloUDPNonblockingServer должен реализовывать интерфейс 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.
    • На противоположной стороне находится старая многоязычная система, не полностью соответствующая последней версии спецификации.

Домашнее задание 11. HelloUDP

Интерфейсы

  • HelloUDPClient должен реализовывать интерфейс HelloClient
  • HelloUDPServer должен реализовывать интерфейс 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

Исходный код тестов:

Домашнее задание 10. Web Crawler

Тесты используют только внутренние данные и ничего не скачивают из интернета.

Тестирование

Интерфейсы и вспомогательные классы

Тестовый модуль: info.kgeorgiy.java.advanced.crawler

Домашнее задание 9. Параллельный запуск

Тестирование

  • простой вариант (scalar): тесты
  • сложный вариант (list): тесты
  • продвинутый вариант (advanced):
    • При и после закрытия потоки в ParallelMapper::map должны завершаться с IllegalStateException
    • Класс IterativeParallelism должен реализовывать интерфейс AdvancedIP.
    • Тесты

Тестовый модуль: info.kgeorgiy.java.advanced.mapper

Домашнее задание 8. Итеративный параллелизм

Тестирование

  • простой вариант (scalar):
    • Класс должен реализовывать интерфейс ScalarIP.
    • Тесты
  • сложный вариант (list):
    • Класс должен реализовывать интерфейс ListIP.
    • Тесты
  • продвинутый вариант (advanced):

Тестовый модуль: info.kgeorgiy.java.advanced.iterative

Домашнее задание 6, 7. JarImplementor

Класс Implementor должен дополнительно реализовывать интерфейс JarImpler.

Скрипты, MANIFEST.MF и .jar-файл должны находиться в каталоге scripts в корне репозитория. Скомпилированный Javadoc должен находиться в каталоге javadoc в корне репозитория.

В скриптах вы можете рассчитывать на то, что репозиторий курса лежит рядом с вашим репозиторием в каталоге java-advanced-2025.

Вы можете использовать код из Compiler.java в своём решении (но не сам класс).

Исходный код

  • простой вариант (interface): тесты
  • сложный вариант (class): тесты
  • продвинутый вариант (advanced): тесты

Тестовый модуль: info.kgeorgiy.java.advanced.implementor.tools

Домашнее задание 5. Implementor

Класс Implementor должен реализовывать интерфейс Impler.

Исходный код

  • простой вариант (interface): тесты
  • сложный вариант (class): тесты
  • продвинутый вариант (advanced): тесты

Тестовый модуль: info.kgeorgiy.java.advanced.implementor

Домашнее задание 4. Сплитераторы и коллекторы

Исходный код

  • простой вариант (easy):
    • Класс Lambda должен реализовывать интерфейс EasyLambda.
    • тесты
  • сложный вариант (hard):
    • Класс Lambda должен реализовывать интерфейс HardLambda.
    • тесты
  • продвинутый вариант (advanced):

Тестовый модуль: info.kgeorgiy.java.advanced.lambda

Домашнее задание 3. Студенты

Исходный код

Тестовый модуль: info.kgeorgiy.java.advanced.student

Домашнее задание 2. ArraySortedSet

Исходный код

  • простой вариант (SortedSet):
  • сложный вариант (NavigableSet):
  • продвинутый вариант (AdvancedSet):
    • ArraySet должен дополнительно реализовывать интерфейс AdvancedSet
      • Метод toMap должен создавать новый Map, отображающий элементы множества в заданное значение.
    • тесты

Тестовый модуль: info.kgeorgiy.java.advanced.arrayset

Домашнее задание 1. Обход файлов

Исходный код

  • простой вариант (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 <полное имя класса>