def test_generate_end_position():
    # Arrange
    puzzle = Puzzle()
    # Act
    end_position = puzzle._Puzzle__generate_end_position()
    # Assert - Should generate the solved position of the puzzle
    expected_end_position = np.array([[1, 2, 3, 4],
                                      [5, 6, 7, 8],
                                      [9, 10, 11, 12],
                                      [13, 14, 15, 0]])
    assert np.array_equal(end_position, expected_end_position)