示例#1
0
 def test_can_place_tile_if_rotated_correct(self):
     puzzle = Puzzle([])
     puzzle.grid[1] = Tile([
         Professor('lower', 'green'),
         Professor('lower', 'green'),
         Professor('upper', 'green'),
         Professor('upper', 'green')
     ])
     puzzle.grid[6] = Tile([
         Professor('lower', 'blue'),
         Professor('lower', 'blue'),
         Professor('upper', 'blue'),
         Professor('upper', 'blue')
     ])
     puzzle.grid[9] = Tile([
         Professor('lower', 'purple'),
         Professor('lower', 'purple'),
         Professor('upper', 'purple'),
         Professor('upper', 'purple')
     ])
     puzzle.grid[4] = Tile([
         Professor('lower', 'brown'),
         Professor('lower', 'brown'),
         Professor('upper', 'brown'),
         Professor('upper', 'brown')
     ])
     tile = Tile([
         Professor('lower', 'blue'),
         Professor('upper', 'purple'),
         Professor('upper', 'brown'),
         Professor('lower', 'green')
     ])
     self.assertFalse(puzzle._can_place_tile(tile, 5))
     tile.rotate()
     self.assertTrue(puzzle._can_place_tile(tile, 5))
示例#2
0
 def test_can_place_tile_raises_when_position_is_occupied(self):
     tile = Tile([
         Professor('lower', 'green'),
         Professor('lower', 'green'),
         Professor('upper', 'green'),
         Professor('upper', 'green')
     ])
     puzzle = Puzzle([])
     puzzle.grid[0] = tile
     with (self.assertRaisesRegex(ValueError, 'Index.*is not empty')):
         puzzle._can_place_tile(tile, 0)
示例#3
0
 def test_can_place_tile_if_all_neighboring_tiles_match(self):
     puzzle = Puzzle([])
     puzzle.grid[1] = Tile([
         Professor('lower', 'green'),
         Professor('lower', 'green'),
         Professor('upper', 'green'),
         Professor('upper', 'green')
     ])
     puzzle.grid[6] = Tile([
         Professor('lower', 'blue'),
         Professor('lower', 'blue'),
         Professor('upper', 'blue'),
         Professor('upper', 'blue')
     ])
     puzzle.grid[9] = Tile([
         Professor('lower', 'purple'),
         Professor('lower', 'purple'),
         Professor('upper', 'purple'),
         Professor('upper', 'purple')
     ])
     puzzle.grid[4] = Tile([
         Professor('lower', 'brown'),
         Professor('lower', 'brown'),
         Professor('upper', 'brown'),
         Professor('upper', 'brown')
     ])
     matching_tile = Tile([
         Professor('lower', 'green'),
         Professor('lower', 'blue'),
         Professor('upper', 'purple'),
         Professor('upper', 'brown')
     ])
     self.assertTrue(puzzle._can_place_tile(matching_tile, 5))
示例#4
0
 def test_can_place_tile_when_grid_is_empty(self):
     tile = Tile([
         Professor('lower', 'green'),
         Professor('lower', 'green'),
         Professor('upper', 'green'),
         Professor('upper', 'green')
     ])
     puzzle = Puzzle([])
     self.assertTrue(puzzle._can_place_tile(tile, 0))
示例#5
0
 def test_can_place_tile_false_when_color_mismatch(self):
     all_green_tile = Tile([
         Professor('lower', 'green'),
         Professor('lower', 'green'),
         Professor('upper', 'green'),
         Professor('upper', 'green')
     ])
     all_blue_tile = Tile([
         Professor('lower', 'blue'),
         Professor('lower', 'blue'),
         Professor('upper', 'blue'),
         Professor('upper', 'blue')
     ])
     puzzle = Puzzle([])
     puzzle.grid[0] = all_green_tile
     self.assertFalse(puzzle._can_place_tile(all_blue_tile, 1))
示例#6
0
 def test_can_place_tile_false_when_body_mismatch(self):
     first_tile = Tile([
         Professor('lower', 'green'),
         Professor('lower', 'green'),
         Professor('upper', 'green'),
         Professor('upper', 'green')
     ])
     second_tile = Tile([
         Professor('upper', 'green'),
         Professor('upper', 'green'),
         Professor('lower', 'green'),
         Professor('lower', 'green')
     ])
     puzzle = Puzzle([])
     puzzle.grid[0] = first_tile
     self.assertFalse(puzzle._can_place_tile(second_tile, 1))