def test_0(self):
        # Arrange
        game = ChessGame('2k5/8/8/4N3/8/8/P7/2K5 w - - 6 19')
        expected = '8\ne5c4 e5c6 e5d3 e5d7 e5f3 e5f7 e5g4 e5g6'

        # Act
        actual = game.get_knight_possible_moves()

        # Assert
        self.assertEqual(expected, actual)
    def test_3(self):
        # Arrange
        game = ChessGame('7k/8/2P1P3/1K3P2/3N4/1P3P2/2P1P3/8 w - - 0 50')
        expected = '0'

        # Act
        actual = game.get_knight_possible_moves()

        # Assert
        self.assertEqual(expected, actual)
    def test_4(self):
        # Arrange
        game = ChessGame(
            '1N1N1N1k/N1N1N1N1/1N1N1N1N/N1N1N1N1/1N1N1N1N/N1N1N1N1/1N1N1N1N/K1N1N1N1 w - - 0 100'
        )
        expected = '164\na3b1 a3b5 a3c2 a3c4\na5b3 a5b7 a5c4 a5c6\na7b5 a7c6 a7c8\nb2a4 b2c4 b2d1 b2d3\nb4a2 b4a6 b4c2 b4c6 b4d3 b4d5\nb6a4 b6a8 b6c4 b6c8 b6d5 b6d7\nb8a6 b8c6 b8d7\nc1a2 c1b3 c1d3 c1e2\nc3a2 c3a4 c3b1 c3b5 c3d1 c3d5 c3e2 c3e4\nc5a4 c5a6 c5b3 c5b7 c5d3 c5d7 c5e4 c5e6\nc7a6 c7a8 c7b5 c7d5 c7e6 c7e8\nd2b1 d2b3 d2c4 d2e4 d2f1 d2f3\nd4b3 d4b5 d4c2 d4c6 d4e2 d4e6 d4f3 d4f5\nd6b5 d6b7 d6c4 d6c8 d6e4 d6e8 d6f5 d6f7\nd8b7 d8c6 d8e6 d8f7\ne1c2 e1d3 e1f3 e1g2\ne3c2 e3c4 e3d1 e3d5 e3f1 e3f5 e3g2 e3g4\ne5c4 e5c6 e5d3 e5d7 e5f3 e5f7 e5g4 e5g6\ne7c6 e7c8 e7d5 e7f5 e7g6 e7g8\nf2d1 f2d3 f2e4 f2g4 f2h1 f2h3\nf4d3 f4d5 f4e2 f4e6 f4g2 f4g6 f4h3 f4h5\nf6d5 f6d7 f6e4 f6e8 f6g4 f6g8 f6h5 f6h7\nf8d7 f8e6 f8g6 f8h7\ng1e2 g1f3 g1h3\ng3e2 g3e4 g3f1 g3f5 g3h1 g3h5\ng5e4 g5e6 g5f3 g5f7 g5h3 g5h7\ng7e6 g7e8 g7f5 g7h5\nh2f1 h2f3 h2g4\nh4f3 h4f5 h4g2 h4g6\nh6f5 h6f7 h6g4 h6g8'

        # Act
        actual = game.get_knight_possible_moves()

        # Assert
        self.assertEqual(expected, actual)
    def test_2(self):
        # Arrange
        game = ChessGame(
            'r2qk2r/ppp2ppp/2np1n2/2bNp1B1/2B1P1b1/3P1N2/PPP2PPP/R2QK2R b KQkq - 3 7'
        )
        expected = '10\nc6a5 c6b4 c6b8 c6d4 c6e7\nf6d5 f6d7 f6e4 f6g8 f6h5'

        # Act
        actual = game.get_knight_possible_moves()

        # Assert
        self.assertEqual(expected, actual)
    def test_1(self):
        # Arrange
        game = ChessGame(
            'r2qk2r/ppp2ppp/2np1n2/2b1p1B1/2B1P1b1/2NP1N2/PPP2PPP/R2QK2R w KQkq - 2 7'
        )
        expected = '10\nc3a4 c3b1 c3b5 c3d5 c3e2\nf3d2 f3d4 f3e5 f3g1 f3h4'

        # Act
        actual = game.get_knight_possible_moves()

        # Assert
        self.assertEqual(expected, actual)