def test_digest_does_nothing_if_the_cargo_container_cannot_unload_requirements_or_load_products(self): # noqa tray = SlottedCargoContainer() tray.add_resource_slot(Fish, 10) tray.add_resource_slot(Wood, 10) tray.add_resource_slot(Cabbage, 10) tray.load_cargo(Fish, 3) tray.load_cargo(Wood, 5) tray.load_cargo(Cabbage, 4) plant1 = ResourcePlant() plant1.add_resource_requirement(Fish, 4) plant1.add_resource_requirement(Wood, 2) plant1.add_resource_product(Cabbage, 6) plant1.digest(tray) self.assertEqual(tray.cargo_slots[Fish.name]['load'], 3) self.assertEqual(tray.cargo_slots[Wood.name]['load'], 5) self.assertEqual(tray.cargo_slots[Cabbage.name]['load'], 4) plant2 = ResourcePlant() plant2.add_resource_requirement(Fish, 3) plant2.add_resource_requirement(Wood, 2) plant2.add_resource_product(Cabbage, 7) plant2.digest(tray) self.assertEqual(tray.cargo_slots[Fish.name]['load'], 3) self.assertEqual(tray.cargo_slots[Wood.name]['load'], 5) self.assertEqual(tray.cargo_slots[Cabbage.name]['load'], 4)
def test_digest_consumes_required_resources_and_produces_resource_products(self): # noqa tray = SlottedCargoContainer() tray.add_resource_slot(Fish, 10) tray.add_resource_slot(Wood, 10) tray.add_resource_slot(Cabbage, 10) tray.load_cargo(Fish, 3) tray.load_cargo(Wood, 5) tray.load_cargo(Cabbage, 4) plant = ResourcePlant() plant.add_resource_requirement(Fish, 3) plant.add_resource_requirement(Wood, 2) plant.add_resource_product(Cabbage, 6) plant.digest(tray) self.assertEqual(tray.cargo_slots[Fish.name]['load'], 0) self.assertEqual(tray.cargo_slots[Wood.name]['load'], 3) self.assertEqual(tray.cargo_slots[Cabbage.name]['load'], 10)