class BackpackTests(unittest.TestCase): def setUp(self): self.backpack = Backpack(7) self.backpack.clear() def test_empty(self): self.assertEqual(self.backpack.current_weight, 0) def test_insert(self): self.backpack.insert(Item('1', 2, 4)) self.assertEqual(self.backpack.full_price, 4) self.assertEqual(self.backpack.current_weight, 2) self.assertEqual(self.backpack.items[0].name, '1') def test_clear(self): self.backpack.insert(Item('1', 2, 4)) self.backpack.clear() self.assertEqual(self.backpack.full_price, 0) self.assertEqual(self.backpack.current_weight, 0) self.assertEqual(self.backpack.items, []) def test_greedy_alg(self): list_of_items = [ Item('1', 2, 1), Item('2', 2, 3), Item('3', 3, 2), Item('4', 1, 1) ] self.assertEqual(DZ.greedy(list_of_items, self.backpack), (7, 10)) def test_standart_alg(self): list_of_items = [ Item('1', 2, 1), Item('T.E.A.', 2, 3), Item('3', 3, 2), Item('4', 1, 1) ] W = [list_of_items[i].weight for i in range(len(list_of_items))] P = [list_of_items[i].price for i in range(len(list_of_items))] self.assertEqual(DZ.standart(W, P, self.backpack, list_of_items), (7, 10))
items = l items.sort(key=lambda x: x.price_cooficient) for i in items: while True: if not backpack.insert(i): break return backpack.current_weight, backpack.full_price if __name__ == "__main__": list_of_items = [ Item('1', 2, 1), Item('2', 2, 3), Item('3', 3, 2), Item('4', 1, 1) ] W = [list_of_items[i].weight for i in range(len(list_of_items))] P = [list_of_items[i].price for i in range(len(list_of_items))] #list_of_items = [Item("item " + str(i), random.random() * 100, random.random() * 1000, i) for i in range(1000)] static_list = list_of_items[:] bp = Backpack(7) t1 = time.time() print(standart(W, P, bp, list_of_items)) t2 = time.time() print("sta algorythm time: " + str(t2 - t1)) bp.clear() #greedy t1 = time.time() print(greedy(list_of_items, bp)) t2 = time.time() print("greedy algorythm time: " + str(t2 - t1))