def test_part_one(self): "Test part one example of Image object" # 1. Create Image object from text myobj = image.Image(text=aoc_20.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 Image object" # 1. Create Image object from text myobj = image.Image(part2=True, text=aoc_20.from_text(PART_TWO_TEXT)) # 2. Check the part two result self.assertEqual(myobj.part_two(verbose=False), PART_TWO_RESULT)
def test_part_two(self): "Test part two example of Swarm object" # 1. Create Spinlock object from text myobj = swarm.Swarm(part2=True, text=aoc_20.from_text(PART_TWO_TEXT)) # 2. Check the part two self.assertEqual(myobj.part_two(verbose=True), PART_TWO_RESULT)
def test_part_one(self): "Test part one example of Swarm object" # 1. Create Spinlock object from text myobj = swarm.Swarm(text=aoc_20.from_text(PART_ONE_TEXT)) # 2. Check the part one result self.assertEqual(myobj.part_one(verbose=True), PART_ONE_RESULT)
def test_text_init(self): "Test the Image object creation from text" # 1. Create Image object from text myobj = image.Image(text=aoc_20.from_text(EXAMPLE_TEXT)) # 2. Make sure it has the expected values self.assertEqual(myobj.part2, False) self.assertEqual(len(myobj.text), 99) self.assertEqual(myobj.tiles.size, 3)
def test_value_init(self): "Test the Node object creation with location and doors" # 1. Create Node object from values myrooms = rooms.Rooms(text=aoc_20.from_text(EXAMPLE_ONE_TEXT)) myobj = path.Node(location=rooms.START, doors=myrooms.doors) # 2. Make sure it has the expected values self.assertEqual(myobj.location, rooms.START) self.assertEqual(myobj.previous, None) self.assertEqual(myobj.doors, myrooms.doors) self.assertEqual(myobj.steps, 0) self.assertEqual(myobj.adjacent, [None, None, None, -1])
def test_text_init(self): "Test the Fedelf object creation from text" # 1. Create Fedelf object from text myobj = fedelf.Fedelf(text=aoc_20.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(myobj.goal, 140) # 3. Check mothods self.assertEqual(myobj.slow_deliver(), 8) self.assertEqual(myobj.fast_deliver(), 8) self.assertEqual(myobj.deliver2(), 8)
def test_examples(self): "Test all of the examples" # 1. Loop for all of the examples for example in EXAMPLES: # 2. Created the Rooms object from text myobj = rooms.Rooms(text=aoc_20.from_text(example['text'])) self.assertEqual(myobj.regex, example['text'].strip()) # 3. Check the map self.assertEqual(str(myobj), example['str'].strip()) # 4. Check the doors mypath = path.Path(start=rooms.START, doors=myobj.doors) self.assertEqual(mypath.furthest(), example['doors'])
def test_value_init(self): "Test the Path object creation with values" # 1. Create Node object from values myrooms = rooms.Rooms(text=aoc_20.from_text(EXAMPLE_ONE_TEXT)) myobj = path.Path(start=rooms.START, doors=myrooms.doors) # 2. Make sure it has the expected values self.assertEqual(myobj.start, rooms.START) self.assertEqual(myobj.doors, myrooms.doors) self.assertNotEqual(myobj.node, None) self.assertEqual(myobj.node.location, myobj.start) self.assertEqual(myobj.node.doors, myrooms.doors) self.assertTrue(myobj.nodes, 4) self.assertEqual(len(myobj.queue), 0) self.assertEqual(myobj.furthest(), EXAMPLE_ONE_DOORS)
def test_text_init(self): "Test the Tile object creation from text" # 1. Create Tile object from text myobj = tile.Tile(text=aoc_20.from_text(EXAMPLE_TEXT)) # 2. Make sure it has the expected values self.assertEqual(myobj.part2, False) self.assertEqual(len(myobj.text), 11) self.assertEqual(myobj.number, 2311) self.assertEqual(len(myobj.lines), 10) self.assertEqual(len(myobj.orientations), 8) self.assertEqual(len(myobj.borders), 8) self.assertEqual( myobj.borders[0], ['..##.#..#.', '..###..###', '.#####..#.', '...#.##..#'])
def test_text_init(self): "Test the Swarm object creation from text" # 1. Create Swarm object from text myobj = swarm.Swarm(text=aoc_20.from_text(EXAMPLE_TEXT)) # 2. Make sure it has the expected values self.assertEqual(myobj.part2, False) self.assertEqual(len(myobj.text), 2) self.assertEqual(len(myobj.particles), 2) self.assertEqual(myobj.clock, 0) self.assertEqual(myobj.particles[0].position, (3, 0, 0)) self.assertEqual(myobj.particles[0].velocity, (2, 0, 0)) self.assertEqual(myobj.particles[0].acceleration, (-1, 0, 0)) self.assertEqual(myobj.particles[1].position, (4, 0, 0)) self.assertEqual(myobj.particles[1].velocity, (0, 0, 0)) self.assertEqual(myobj.particles[1].acceleration, (-2, 0, 0)) # 3. Test methods self.assertEqual(myobj.closest(), 0) myobj.tick() self.assertEqual(myobj.clock, 1) self.assertEqual(myobj.particles[0].position, (4, 0, 0)) self.assertEqual(myobj.particles[0].velocity, (1, 0, 0)) self.assertEqual(myobj.particles[0].acceleration, (-1, 0, 0)) self.assertEqual(myobj.particles[1].position, (2, 0, 0)) self.assertEqual(myobj.particles[1].velocity, (-2, 0, 0)) self.assertEqual(myobj.particles[1].acceleration, (-2, 0, 0)) self.assertEqual(myobj.closest(), 1) myobj.tick() self.assertEqual(myobj.clock, 2) self.assertEqual(myobj.particles[0].position, (4, 0, 0)) self.assertEqual(myobj.particles[0].velocity, (0, 0, 0)) self.assertEqual(myobj.particles[0].acceleration, (-1, 0, 0)) self.assertEqual(myobj.particles[1].position, (-2, 0, 0)) self.assertEqual(myobj.particles[1].velocity, (-4, 0, 0)) self.assertEqual(myobj.particles[1].acceleration, (-2, 0, 0)) self.assertEqual(myobj.closest(), 1) myobj.tick() self.assertEqual(myobj.clock, 3) self.assertEqual(myobj.particles[0].position, (3, 0, 0)) self.assertEqual(myobj.particles[0].velocity, (-1, 0, 0)) self.assertEqual(myobj.particles[0].acceleration, (-1, 0, 0)) self.assertEqual(myobj.particles[1].position, (-8, 0, 0)) self.assertEqual(myobj.particles[1].velocity, (-6, 0, 0)) self.assertEqual(myobj.particles[1].acceleration, (-2, 0, 0)) self.assertEqual(myobj.closest(), 0)
def test_example_two(self): "Test the Rooms object creation from text" # 1. Create Rooms object from text myobj = rooms.Rooms(text=aoc_20.from_text(EXAMPLE_TWO_TEXT)) # 2. Make sure it has the expected values self.assertEqual(myobj.part2, False) self.assertEqual(len(myobj.text), 1) self.assertEqual(myobj.regex, EXAMPLE_TWO_TEXT.strip()) self.assertEqual(len(myobj.doors), 15 * 2) dims = myobj.dimensions() self.assertEqual(dims['N'], -2) self.assertEqual(dims['S'], 1) self.assertEqual(dims['E'], 1) self.assertEqual(dims['W'], -2) self.assertEqual(str(myobj), EXAMPLE_TWO_STR.strip())
def test_text_init(self): "Test the Firewall object creation from text" # 1. Create Firewall object from text myobj = firewall.Firewall(text=aoc_20.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.ranges), 3) self.assertEqual(myobj.ranges[0][0], 0) self.assertEqual(myobj.ranges[0][1], 2) self.assertEqual(myobj.ranges[1][0], 4) self.assertEqual(myobj.ranges[1][1], 7) # 3. Check methods self.assertEqual(myobj.lowest(), 3) self.assertEqual(myobj.count(9), 2)
def test_text_init(self): "Test the Image object creation from text" # 1. Create Image object from text myobj = image.Image(text=aoc_20.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.algorithm), 512) self.assertEqual(len(myobj.pixels), 225) # 3. Check methods self.assertEqual(myobj.count_light(), 10) self.assertEqual(myobj.neighbor((7, 7)), 34) self.assertEqual(myobj.next_pixel((7, 7)), '#') self.assertEqual(myobj.next_image(1), 24) self.assertEqual(myobj.next_image(2), 35)
def test_text_init(self): "Test the Tiles object creation from text" # 1. Create Tiles object from text myobj = tiles.Tiles(text=aoc_20.from_text(EXAMPLE_TEXT)) # 2. Make sure it has the expected values self.assertEqual(myobj.part2, False) self.assertEqual(len(myobj.text), 9 * 11) self.assertEqual(len(myobj.tiles), 9) self.assertEqual(myobj.size, 3) self.assertEqual(myobj.grid, None) # 3. Test placing tiles into a grid myobj.position_tiles() self.assertNotEqual(myobj.grid, None) numbers = [] for row in myobj.grid: for col in row: numbers.append(col[0].number) self.assertEqual(numbers, GRID) # 4. Test the image self.assertEqual(myobj.get_image(), IMAGE)