Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #6
0
    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)
Exemple #8
0
    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)