Решение практического тестового задания «Сборник тестовых задач: ModsenLogistics.Core» (Modsen, направление Java). Реализованы все 7 задач с модификациями варианта I. Покрыто юнит-тестами (JUnit 5).
- Java 17, Maven
- JUnit Jupiter 5.10.2 (тесты)
mvn test| № | Задача | Класс(ы) | Вариант I |
|---|---|---|---|
| 1 | Расчёт стоимости доставки | task1.DeliveryCostCalculator |
Скидка 10% на сумму превышения свыше 500 у.е. |
| 2 | Оптимальное размещение груза | task2.ContainerPacker |
— |
| 3 | «Умный контейнер» | task3.SmartContainer, ContainerStatus |
— |
| 4 | Система тарифов | task4.Transport, Truck, CargoPlane, Train |
Интерфейс EcoFriendly (углеродный след) |
| 5 | Аналитика автопарка (Stream API) | task5.Vehicle, FleetAnalytics |
Поле isActive, удалённые машины игнорируются |
| 6 | Очередь на разгрузку | task6.WarehouseDock |
— |
| 7 | Парсер накладных | task7.Waybill, WaybillParser, WaybillParseException |
— |
- Стоимость доставки считается на
BigDecimal(деньги), результат округляется до 2 знаков. - В Задаче 6 при равном приоритете соблюдается FIFO (через порядковый номер регистрации в
PriorityQueue). - В Задаче 4 коэффициенты выбросов CO₂ - иллюстративные (точные значения в задании не заданы), помечены комментарием в коде.
- Парсер накладных не «падает» на некорректном вводе, а бросает
WaybillParseExceptionс указанием проблемного поля.