def test_as_one_hot(self):
        grid = rle.init_grid()
        vec = grid.as_one_hot()

        self.assertIsInstance(vec, np.ndarray)
        self.assertEqual(64, vec.shape[0])
        self.assertTrue(vec[1])  # Player
        self.assertTrue(vec[26])  # Wall
        self.assertTrue(vec[37])  # Pit
        self.assertTrue(vec[63])  # Goal
    def test_as_2d_array(self):

        grid = rle.init_grid()

        actual = grid.as_2d_array()

        expected = np.empty((4, 4), dtype='<U2')
        expected[:] = ' '
        expected[0, 1] = 'P'
        expected[2, 2] = 'W'
        expected[1, 1] = '-'
        expected[3, 3] = '+'

        np.testing.assert_array_equal(expected, actual)
 def test_move_right(self):
     grid = rle.init_grid()
     grid.move_right()
     self.assertEqual((0, 2), grid.player)
 def test_move_left_into_wall(self):
     grid = rle.init_grid()
     grid.player = (2, 3)
     grid.move_left()
     self.assertEqual((2, 3), grid.player)
 def test_move_left_into_edge(self):
     grid = rle.init_grid()
     grid.player = (0, 0)
     grid.move_left()
     self.assertEqual((0, 0), grid.player)
 def test_move_down_into_wall(self):
     grid = rle.init_grid()
     grid.player = (1, 2)
     grid.move_down()
     self.assertEqual((1, 2), grid.player)
 def test_move_down_into_edge(self):
     grid = rle.init_grid()
     grid.player = (3, 0)
     grid.move_down()
     self.assertEqual((3, 0), grid.player)
 def test_move_down(self):
     grid = rle.init_grid()
     grid.move_down()
     self.assertEqual((1, 1), grid.player)
 def test_move_up_into_space(self):
     grid = rle.init_grid()
     grid.player = (1, 2)
     grid.move_up()
     self.assertEqual((0, 2), grid.player)
 def test_move_up_into_wall(self):
     grid = rle.init_grid()
     grid.player = (3, 2)
     grid.move_up()
     self.assertEqual((3, 2), grid.player)
 def test_move_up_into_edge(self):
     grid = rle.init_grid()
     grid.move_up()
     self.assertEqual((0, 1), grid.player)
 def test_get_reward_other(self):
     grid = rle.init_grid()
     self.assertEqual(-1, grid.get_reward())
 def test_get_reward_goal(self):
     grid = rle.init_grid()
     grid.player = grid.goal
     self.assertEqual(10, grid.get_reward())
 def test_get_reward_pit(self):
     grid = rle.init_grid()
     grid.player = grid.pit
     self.assertEqual(-10, grid.get_reward())
 def test_init_grid(self):
     grid = rle.init_grid()
     self.assertEqual((0, 1), grid.player)
     self.assertEqual((2, 2), grid.wall)
     self.assertEqual((3, 3), grid.goal)
     self.assertEqual((3, 3), grid.goal)