Ката 'Управляющий складом'

Если вам лень постоянно пересоздавать проекты для ката, скачайте bat. Как им пользоваться можно почитать тут

Задача

Создайте метод управления грузами на складе.

Критерии приемлемости

Весь код должен быть покрыт тестами

  1. Создайте класс, отвечающий за состояние склада. Конструктор должен принимать размер склада в квадратных метрах (int).
  • Любой желающий может узнать площадь склада (публичный доступ на чтение)
  1. Склад должен иметь метод загрузки товара.
  • входящий параметр - размер грузовика с товаром (количество коробок, int), каждая коробка имеет основание в один квадратный метр
  • метод возвращает количество коробок, которые удалось разместить на складе (коробки занимают место на складе - 1 квадратный метр)
  • при нехватке места соответствующая часть коробок остается в грузовике
  • любой желающий может узнать незаполненную площадь склада (публичный доступ на чтение)
  1. Создать метод, позволяющий изъять со склада товар.
  • входящий параметр - размер грузовика (в квадратных метрах, int)
  • каждая машина должна быть загружена максимально плотно!
  • метод возвращает количество выгруженных коробок
  • если товара недостаточно для загрузки очередной машины, то
    • грузовик уезжает не полным (возвращается значение меньше объема грузовика)
    • на складе в итоге остается 0 коробок
  1. Выпустили новые коробки площадью 4 квадратных метра!
  • адаптировать приемку под новые условия (позволяющие привозить одновременно коробки разных размеров)
  • методы теперь возвращают не количество коробок, а их общую площадь
  • выгружать коробки, максимально заполняя машину!
  • загружать склад максимально!
  • убедиться, что при не полном заполнении машины, на складе не всегда остается 0 коробок (из п.3)