def testGetCheapestShipmentsOneOrderMultipleShipments(self): orders = {'apple': 10} warehouses = [{ 'name': 'owd', 'inventory': { 'apple': 5 } }, { 'name': 'dm', 'inventory': { 'apple': 5 } }] inventoryAllocator = InventoryAllocator() cheapestShipment = \ inventoryAllocator.getCheapestShipments(orders, warehouses) self.assertEqual(cheapestShipment, [{ 'dm': { 'apple': 5 } }, { 'owd': { 'apple': 5 } }])
def testGetCheapestShipmentsNotFound(self): orders = {'apple': 1} warehouses = [{'name': 'owd', 'inventory': {'apple': 0}}] inventoryAllocator = InventoryAllocator() cheapestShipment = \ inventoryAllocator.getCheapestShipments(orders, warehouses) self.assertEqual(cheapestShipment, [])
def testGetCheapestShipmentsMultipleOrderMultipleShipment(self): orders = { 'apple': 5, 'orange': 5, 'banana': 5, 'grape': 5, } warehouses = [{ 'name': 'owd', 'inventory': { 'apple': 5 } }, { 'name': 'dm', 'inventory': { 'orange': 5 } }, { 'name': 'bb', 'inventory': { 'banana': 5 } }, { 'name': 'gg', 'inventory': { 'grape': 5 } }, { 'name': 'all', 'inventory': { 'apple': 10, 'orange': 10, 'banana': 10, 'grape': 10, } }] inventoryAllocator = InventoryAllocator() cheapestShipment = \ inventoryAllocator.getCheapestShipments(orders, warehouses) self.assertEqual(cheapestShipment, [{ 'gg': { 'grape': 5 } }, { 'bb': { 'banana': 5 } }, { 'dm': { 'orange': 5 } }, { 'owd': { 'apple': 5 } }])