def test_swap_by_coordinates():
    # Arrange
    puzzle = Puzzle()
    puzzle.position = np.array([[1, 2, 3, 4],
                                [5, 6, 7, 8],
                                [9, 10, 11, 12],
                                [13, 14, 15, 0]])
    # Act
    puzzle._Puzzle__swap_by_coordinates(0, 0, 1, 1)
    # Assert
    expected_swapped = np.array([[6, 2, 3, 4],
                                  [5, 1, 7, 8],
                                  [9, 10, 11, 12],
                                  [13, 14, 15, 0]])
    assert np.array_equal(puzzle.position, expected_swapped)