def test_set_x_y(self):
     """Test that snake x and y coordinates correctly updated."""
     snake = Snake([0, 0])
     # Check that x and y coordinate changes are correct
     x, y = 0, 0
     snake.direction = 'U'
     x, y = snake.set_x_y()
     self.assertEqual(x, 0)
     self.assertEqual(y, -1)
     snake.direction = 'D'
     x, y = snake.set_x_y()
     self.assertEqual(x, 0)
     self.assertEqual(y, 1)
     snake.direction = 'R'
     x, y = snake.set_x_y()
     self.assertEqual(x, 1)
     self.assertEqual(y, 0)
     snake.direction = 'L'
     x, y = snake.set_x_y()
     self.assertEqual(x, -1)
     self.assertEqual(y, 0)
 def test_check_death(self):
     """Test that snake's death correctly processed."""
     snake = Snake([(2, 2), (2, 1)])
     n, m = 2, 2
     # Update the coordinate changes based on where the snake is headed
     x, y = snake.set_x_y()
     # b is the last element of the list body, means the snake's head
     b = snake.body[-1]
     # This is where the snake's head will be next
     b = (b[0] + x, b[1] + y)
     # Check if the snake dies
     self.assertTrue(snake.check_death(b, n, m))
     # Now the same when the snake should stay alive
     snake = Snake([(2, 2), (2, 1)])
     n, m = 4, 4
     # Update the coordinate changes based on where the snake is headed
     x, y = snake.set_x_y()
     # b is the last element of the list body, means the snake's head
     b = snake.body[-1]
     # This is where the snake's head will be next
     b = (b[0] + x, b[1] + y)
     # Check if the snake dies
     self.assertFalse(snake.check_death(b, n, m))