Esempio n. 1
0
 def test_optimal_answer_at_end(self):
     """Order an item whose optimal shipment is the final warehouse
     
     A combination of warehouses prior to the final warehouse can fulfill
     this shipment, but the final warehouse is optimal.
     """
     res = allocate(self.one_order_many_of_one, self.most_stock_at_end)
     sol = [{'name': 'owd3', 'inventory': {'apple': 10}}]
     self.assertEqual(res, sol)
Esempio n. 2
0
 def test_many_of_one_split_warehouses(self):
     """Order many of one item to be fulfilled by multiple warehouses"""
     res = allocate(self.one_order_many_of_one,
                    self.mult_warehouses_split_items)
     sol = [{
         'name': 'owd',
         'inventory': {
             'apple': 5
         }
     }, {
         'name': 'dm',
         'inventory': {
             'apple': 5
         }
     }]
     self.assertEqual(res, sol)
Esempio n. 3
0
 def test_mult_orders_mult_warehouses(self):
     """Order multiple items contained in multiple warehouses"""
     res = allocate(self.mult_orders, self.mult_warehouses)
     sol = [{
         'name': 'owd',
         'inventory': {
             'apple': 5,
             'orange': 5
         }
     }, {
         'name': 'dm',
         'inventory': {
             'banana': 5
         }
     }]
     self.assertEqual(res, sol)
Esempio n. 4
0
 def test_several_orders_many_warehouses(self):
     """Order multiple items from multiple warehouses.
     
     There are several combinations of warehouses that can fulfill this
     order. 
     """
     res = allocate(self.several_orders_mult_sol, self.many_warehouses)
     sol = [{
         'name': 'owd',
         'inventory': {
             'apple': 1,
             'orange': 1
         }
     }, {
         'name': 'wh2',
         'inventory': {
             'apple': 6,
             'banana': 4
         }
     }]
     self.assertEqual(res, sol)
 def test_case_one(self):
     orderDetails = "{\"apple\":2,\"banana\":6}"
     warehouseDetails = "[{\"name\":\"owd\",\"inventory\":{\"apple\":5,\"banana\":5}},{\"name\":\"dm\",\"inventory\":{\"banana\":5,\"orange\":10,\"apple\":10}}]"
     expectedresult = "[{'owd': {'apple': 2, 'banana': 5}}, {'dm': {'banana': 1}}]"
     actualtresult = ia.allocate(orderDetails, warehouseDetails)
     self.assertEqual(expectedresult, str(actualtresult))
 def test_case_five(self):
     orderDetails = "{\"apple\":5}"
     warehouseDetails = "[{\"name\":\"dm\",\"inventory\":{\"apple\":4}}]"
     expectedresult = "[]"
     actualtresult = ia.allocate(orderDetails, warehouseDetails)
     self.assertEqual(expectedresult, str(actualtresult))