import numpy as np
import pytest

from pandas import DataFrame
import pandas._testing as tm


class TestSwapAxes:
    def test_swapaxes(self):
        df = DataFrame(np.random.randn(10, 5))
        tm.assert_frame_equal(df.T, df.swapaxes(0, 1))
        tm.assert_frame_equal(df.T, df.swapaxes(1, 0))

    def test_swapaxes_noop(self):
        df = DataFrame(np.random.randn(10, 5))
        tm.assert_frame_equal(df, df.swapaxes(0, 0))

    def test_swapaxes_invalid_axis(self):
        df = DataFrame(np.random.randn(10, 5))
        msg = "No axis named 2 for object type DataFrame"
        with pytest.raises(ValueError, match=msg):
            df.swapaxes(2, 5)

    def test_round_empty_not_input(self):
        # GH#51032
        df = DataFrame({"a": [1, 2]})
        result = df.swapaxes("index", "index")
        tm.assert_frame_equal(df, result)
        assert df is not result
