class SimpleRankSpawnManagerTests(unittest.TestCase): def setUp(self): self.spawn_manager_rect = SimpleRankSpawnManager(4, 6) self.spawn_manager_playtest = SimpleRankSpawnManager(10, 10) def test_note_movement(self): def make_moves(movement): spam = random.randint(1, 4) for _ in range(spam): self.spawn_manager_rect.note_movement(movement) make_moves(QuadraticGrid.Movements.UP) make_moves(QuadraticGrid.Movements.DOWN) make_moves(QuadraticGrid.Movements.LEFT) make_moves(QuadraticGrid.Movements.RIGHT) self.assertTrue(self.spawn_manager_rect.global_counts[QuadraticGrid.Movements.UP] > 0) self.assertTrue(self.spawn_manager_rect.global_counts[QuadraticGrid.Movements.DOWN] > 0) self.assertTrue(self.spawn_manager_rect.global_counts[QuadraticGrid.Movements.LEFT] > 0) self.assertTrue(self.spawn_manager_rect.global_counts[QuadraticGrid.Movements.RIGHT] > 0) def test_get_spawn(self): # Initial case, just test that it will return something acceptable # The snake head is irrelevant here. food_coords = self.spawn_manager_rect.get_spawn(Snake()) self.assertTrue(food_coords[0] >= 0) self.assertTrue(food_coords[0] < 4) self.assertTrue(food_coords[1] >= 0) self.assertTrue(food_coords[1] < 6) # Construct a snake that loops around itself. snake = Snake() snake.head = (3, 7) snake.joints = [(6, 7), (6, 3), (5, 3), (5, 2), (7, 2), (7, 8), (3, 8)] snake_squares = snake.enumerate_snake_squares() # Repeat 100 times so that the test may include all branches for _ in range(100): food_coords = self.spawn_manager_playtest.get_spawn(snake) self.assertTrue(food_coords not in snake_squares) movements = (QuadraticGrid.Movements.UP, QuadraticGrid.Movements.DOWN, QuadraticGrid.Movements.LEFT, QuadraticGrid.Movements.RIGHT) for _ in range(100): self.spawn_manager_playtest.note_movement(random.choice(movements)) for _ in range(100): food_coords = self.spawn_manager_playtest.get_spawn(snake) self.assertTrue(food_coords not in snake_squares)
def setUp(self): self.spawn_manager_rect = SimpleRankSpawnManager(4, 6) self.spawn_manager_playtest = SimpleRankSpawnManager(10, 10)