def test_reduce(self): items_list = [Item(1, 1, 0, 1), Item(2, 2, 2, 2)] containers = [Container(10, 10, 0), Container(40, 40, 2)] itmap = dict() itmap[items_list[0]] = (containers[0], 100) itmap[items_list[1]] = (containers[1], 400) items_data = [100, 810] allocated, remaining = reduce(items_list, itmap, items_data) self.assertEqual(len(items_data), len(remaining)) self.assertEqual(0, remaining[0]) self.assertEqual(1, allocated[0]) self.assertEqual(10, remaining[1]) self.assertEqual(2, allocated[1])
def test_not_equals(self): item1 = Item(1, 2, 1) item2 = Item(1, 2, 0) self.assertNotEqual(item1, item2)
def test_equals(self): item1 = Item(1, 1, 1) item2 = Item(1, 1, 1) self.assertEqual(item1, item1) self.assertEqual(item1, item2)
def test_load_item_uid(self): item_list = [Item(2, 3, 1, 1), Item(2, 3, 1, 2)] self.create_file("items.txt", item_list) result_list = parse_items_files("items.txt") self.assertEqual(2, len(result_list)) self.assertEqual(item_list, result_list)
def test_one_item_several(self): c = Container(5, 5, 0) oIList = [Item(2, 2, 0)] oItoPlace = [5] pcItem = 0 xo = 0.0 yo = 0.0 length = c.length_ width = c.width_ pos = [[]] _call_rec_heuristic(oIList, oItoPlace, pcItem, xo, yo, width, length, pos=pos) self.assertEqual([1], oItoPlace) l = [list(zip([0.0, 0.0, 2.0, 2.0], [0.0, 2.0, 0.0, 2.0]))] self.assertEqual(l, pos)
def test_number_of_items_is_int(self): item = Item(1.5, 1.5, 0) container = Container(10.0, 10.0, 0) self.assertEqual(int, type(container.how_many_items(item)))
def test_number_of_items(self): item1 = Item(2, 2, 0) item2 = Item(1, 1, 1) container1 = Container(8, 8, 0) container2 = Container(6, 6, 1) self.assertEqual(16, container1.how_many_items(item1)) self.assertEqual(0, container2.how_many_items(item1)) self.assertEqual(0, container1.how_many_items(item2)) self.assertEqual(36, container2.how_many_items(item2))
def test_calculate_max_items(self): items_list = [Item(1, 1, 0), Item(2, 2, 2)] cont_list = [Container(10, 10, 0), Container(40, 40, 2)] itmap = calculate_maximum(items_list, cont_list) (mc, mi) = itmap[items_list[0]] self.assertEqual(cont_list[0], mc) self.assertEqual(100, mi) (mc, mi) = itmap[items_list[1]] self.assertEqual(cont_list[1], mc) self.assertEqual(400, mi)
def test_print_item(self): item = Item(2, 3, 1) s = str(item).split() self.assertEqual("2.00", s[0]) self.assertEqual("3.00", s[1]) self.assertEqual("1", s[2])
def test_load_item_file(self): item1 = Item(2, 3, 1, 1) item_list = [item1] self.create_file("items.txt", item_list) result_list = parse_items_files("items.txt") self.assertEqual(1, len(result_list)) self.assertEqual(item_list, result_list)
def test_two_items_all(self): c = Container(5, 5, 0) oIList = [Item(2, 2, 0, 0), Item(1, 1, 0, 1)] oItoPlace = [4, 4] pcItem = 0 xo = 0.0 yo = 0.0 length = c.length_ width = c.width_ pos = [[], []] _call_rec_heuristic(oIList, oItoPlace, pcItem, xo, yo, width, length, pos=pos) self.assertEqual([0, 0], oItoPlace) l = [ list(zip([0.0, 0.0, 2.0, 2.0], [0.0, 2.0, 0.0, 2.0])), list(zip([2.0, 3.0, 4.0, 4.0], [4.0, 4.0, 0.0, 1.0])) ] self.assertEqual(l, pos)
def test_load_file_comments(self): item = Item(5, 5, 0, 1) item_list = [item] with open("items.txt", "w") as fp: fp.write("# This is a comment\n1\n") fp.write("#This is another comment\n") fp.write(str(item) + " # Another comment") self.create_file("items.txt", item_list) result_list = parse_items_files("items.txt") self.assertEqual(1, len(result_list)) self.assertEqual(item_list, result_list)