Для выполнения основной логики расчёта используется класс DeliveryCostCalculator
.
Для запуска приложения используется класс Main
с 4 параметрами:
args[0]
-- расстояние до пункта назначения (Integer);args[1]
-- размер груза (Boolean:true
-- большой,false
-- небольшой);args[2]
-- фактор хрупкости груза (Boolean:true
-- хрупкий,false
-- нехрупкий);args[3]
-- степень загруженности службы доставки и соответствующий коэффициент-мультипликатор стоимости (String:"normal"
-- 1.0,"middle"
-- 1.2,"high"
-- 1.4,"highest"
-- 1.6);
DeliveryCostBlackBoxTest -- тесты для проверки логики по методу "чёрного ящика".
DeliveryCostWhiteBoxText -- тесты кода для проверки по методу "белого ящика".
Стоимость рассчитывается в зависимости от следующих условий.
- более 30 км: +300 рублей к доставке;
- до 30 км: +200 рублей к доставке;
- до 10 км: +100 рублей к доставке;
- до 2 км: +50 рублей к доставке.
- большие габариты: +200 рублей к доставке;
- маленькие габариты: +100 рублей к доставке;
- если груз хрупкий: +300 рублей к доставке;
- хрупкие грузы нельзя возить на расстояние более 30 км.
Стоимость умножается на коэффициент доставки:
- очень высокая загруженность ("highest") — 1.6;
- высокая загруженность ("high") — 1.4;
- повышенная загруженность ("middle") — 1.2;
- во всех остальных случаях ("normal") коэффициент равен 1.
- Минимальная сумма доставки — 400 рублей; если сумма доставки меньше минимальной, выводится минимальная сумма.
- расстояние до пункта назначения;
- габариты;
- информацию о хрупкости;
- загруженность службы на текущий момент
- Пользователь получает стоимость доставки.