def test_part2_init(self): "Test the Area object creation from text for part2" # 1. Create Area object from text myobj = area.Area(text=aoc_06.from_text(EXAMPLE_TEXT), part2=True, total=32) # 2. Make sure it has the expected values self.assertEqual(myobj.part2, True) self.assertEqual(len(myobj.text), 6) self.assertEqual(len(myobj.coords), 6) self.assertEqual(len(myobj.closest), 0) self.assertEqual(myobj.coords[0].x, 1) self.assertEqual(myobj.coords[0].y, 1) self.assertEqual(myobj.coords[5].x, 8) self.assertEqual(myobj.coords[5].y, 9) self.assertEqual(myobj.maxX, 8) self.assertEqual(myobj.maxY, 9) self.assertEqual(myobj.total, 32) self.assertTrue(len(myobj.distances) > 0) # 3. Test total distance self.assertEqual(myobj.totalDistance(4, 3), 30) # 4. Test distCoord self.assertNotEqual(myobj.distCoord, None) self.assertEqual(myobj.distCoord.x, 4) self.assertEqual(myobj.distCoord.y, 4) #print("%d %d %d %d" % (myobj.distCoord.minX, myobj.distCoord.minY, myobj.distCoord.maxX, myobj.distCoord.maxY)) self.assertEqual(myobj.distCoord.minX, 1) self.assertEqual(myobj.distCoord.minY, 3) self.assertEqual(myobj.distCoord.maxX, 7) self.assertEqual(myobj.distCoord.maxY, 6) self.assertEqual(myobj.distCoord.isInfinite, False)
def test_part_two(self): "Test part two example of Fishes object" # 1. Create Fishes object from text myobj = fishes.Fishes(part2=True, text=aoc_06.from_text(PART_TWO_TEXT)) # 2. Check the part two result self.assertEqual(myobj.part_two(verbose=False), PART_TWO_RESULT)
def test_part_one(self): "Test part one example of Fishes object" # 1. Create Fishes object from text myobj = fishes.Fishes(text=aoc_06.from_text(PART_ONE_TEXT)) # 2. Check the part one result self.assertEqual(myobj.part_one(verbose=False), PART_ONE_RESULT)
def test_part_two(self): "Test part two example of Area object" # 1. Create Area object from text myobj = area.Area(part2=True, total=32, text=aoc_06.from_text(PART_TWO_TEXT)) # 2. Check the part two result self.assertEqual(myobj.part_two(verbose=False), PART_TWO_RESULT)
def test_text_init(self): "Test the Groups object creation from text" # 1. Create Groups object from text myobj = groups.Groups(text=aoc_06.from_text(EXAMPLE_TEXT)) # 2. Make sure it has the expected values self.assertEqual(myobj.part2, False) self.assertEqual(len(myobj.text), 5) self.assertEqual(len(myobj.groups), 5)
def test_text_init(self): "Test the Area object creation from text" # 1. Create Area object from text myobj = area.Area(text=aoc_06.from_text(EXAMPLE_TEXT)) # 2. Make sure it has the expected values self.assertEqual(myobj.part2, False) self.assertEqual(len(myobj.text), 6) self.assertEqual(len(myobj.coords), 6) self.assertTrue(len(myobj.closest) > 0) self.assertEqual(myobj.coords[0].x, 1) self.assertEqual(myobj.coords[0].y, 1) self.assertEqual(myobj.coords[5].x, 8) self.assertEqual(myobj.coords[5].y, 9) self.assertEqual(myobj.maxX, 8) self.assertEqual(myobj.maxY, 9) self.assertEqual(myobj.total, 10000) self.assertEqual(len(myobj.distances), 0) self.assertEqual(myobj.distCoord, None) # 3. Test the nearest method self.assertEqual(myobj.nearest(0, 0), myobj.coords[0]) self.assertEqual(myobj.nearest(1, 1), myobj.coords[0]) self.assertEqual(myobj.nearest(2, 2), myobj.coords[0]) self.assertEqual(myobj.nearest(3, 3), myobj.coords[3]) self.assertEqual(myobj.nearest(4, 4), myobj.coords[3]) self.assertEqual(myobj.nearest(5, 5), myobj.coords[4]) self.assertEqual(myobj.nearest(6, 6), myobj.coords[4]) self.assertEqual(myobj.nearest(7, 7), myobj.coords[5]) self.assertEqual(myobj.nearest(8, 8), myobj.coords[5]) self.assertEqual(myobj.nearest(9, 9), myobj.coords[5]) self.assertEqual(myobj.nearest(0, 9), myobj.coords[1]) self.assertEqual(myobj.nearest(9, 0), myobj.coords[2]) self.assertEqual(myobj.nearest(5, 1), None) self.assertEqual(myobj.nearest(3, 6), None) self.assertTrue(len(myobj.closest) > 0) # 4. Test infinite or finiate self.assertEqual(myobj.coords[0].minX, 0) self.assertEqual(myobj.coords[0].minY, 0) self.assertEqual(myobj.coords[0].maxX, 4) self.assertEqual(myobj.coords[0].maxY, 3) self.assertEqual(myobj.coords[0].isInfinite, True) self.assertEqual(myobj.coords[1].isInfinite, True) self.assertEqual(myobj.coords[2].isInfinite, True) self.assertEqual(myobj.coords[3].isInfinite, False) self.assertEqual(myobj.coords[4].isInfinite, False) self.assertEqual(myobj.coords[5].isInfinite, True) # 5. Test area self.assertEqual(myobj.coords[3].area, 12) self.assertEqual(myobj.coords[4].area, 28) self.assertEqual(myobj.coords[3].closest, 9) self.assertEqual(myobj.coords[4].closest, 17)
def test_text_init(self): """Test Memory creation from text""" # 1. Create Jumps object from text mymem = memory.Memory(text=aoc_06.from_text(P1_EXAMPLES_TEXT)[0]) # 2. Make sure it has the specified values self.assertEqual(mymem.part2, False) self.assertEqual(len(mymem.banks), 4) self.assertEqual(mymem.banks, [0, 2, 7, 0]) # 3. Check methods self.assertEqual(mymem.cycle_until_seen(verbose=False, limit=9), 5)
def test_text_init_two(self): "Test the Fishes object creation from text" # 1. Create Fishes object from text myobj = fishes.Fishes(text=aoc_06.from_text(EXAMPLE_TEXT)) # 2. Make sure it has the expected values self.assertEqual(myobj.part2, False) self.assertEqual(len(myobj.text), 1) self.assertEqual(len(myobj.fishes), 5) self.assertEqual(myobj.day, 0) self.assertEqual(len(myobj.fish_timer), 9) # 3. Check methods self.assertEqual(myobj.go_until_two(18), 26) self.assertEqual(myobj.go_until_two(80), 5934)
def test_text_init(self): "Test the Message object creation from text" # 1. Create Message object from text myobj = message.Message(text=aoc_06.from_text(EXAMPLE_TEXT)) # 2. Make sure it has the expected values self.assertEqual(myobj.part2, False) self.assertEqual(len(myobj.text), 16) self.assertEqual(len(myobj.columns), 6) self.assertEqual(myobj.columns[0].most_common()[0][0], 'e') self.assertEqual(myobj.columns[1].most_common()[0][0], 'a') # 3. Check methods self.assertEqual(myobj.most_common(), 'easter') self.assertEqual(myobj.least_common(), 'advent')
def test_text_init(self): "Test the Lights object creation from text" # 1. Create Lights object from text myobj = lights.Lights(text=aoc_06.from_text(EXAMPLE_TEXT)) # 2. Make sure it has the expected values self.assertEqual(myobj.part2, False) self.assertEqual(len(myobj.text), 3) self.assertEqual(len(myobj.lights), 0) # 3. Check methods myobj.turn_on(0, 0, 999, 999) self.assertEqual(len(myobj.lights), 1000000) myobj.toggle(0, 0, 999, 0) self.assertEqual(len(myobj.lights), 1000000 - 1000) myobj.turn_off(499, 499, 500, 500) self.assertEqual(len(myobj.lights), 1000000 - (1000 + 4)) self.assertEqual(myobj.count_lights(), 998996)