def test__grid_are_again_the_same_after_centre_shift__grid_equivalent(self):
            spherical_profile1 = geometry_profiles.SphericalProfile(centre=(1, 1))
            grid1 = spherical_profile1.transform_grid_to_reference_frame(
                grid=aa.grid_irregular.manual_1d(grid=np.array([[1.0, 1.0]]))
            )

            spherical_profile2 = geometry_profiles.SphericalProfile(centre=(-1, -1))
            grid2 = spherical_profile2.transform_grid_to_reference_frame(
                grid=aa.grid_irregular.manual_1d(grid=np.array([[-1.0, -1.0]]))
            )

            assert grid1[0, 0] == grid2[0, 0]
            assert grid1[0, 1] == grid2[0, 1]
        def test__grid_and_centres_of_two_lenses_are_equivalent__grid_are_equivalent(
            self
        ):
            spherical_profile1 = geometry_profiles.SphericalProfile(centre=(0, 0))

            grid1 = spherical_profile1.transform_grid_to_reference_frame(
                grid=aa.grid_irregular.manual_1d(grid=np.array([[1.0, 1.0]]))
            )

            spherical_profile2 = geometry_profiles.SphericalProfile(centre=(-1, -1))
            grid2 = spherical_profile2.transform_grid_to_reference_frame(
                grid=aa.grid_irregular.manual_1d(grid=np.array([[0.0, 0.0]]))
            )

            assert grid1[0, 0] == grid2[0, 0]
            assert grid1[0, 1] == grid2[0, 1]
        def test__constructor_and_unit_conversions(self):
            profile = geometry_profiles.SphericalProfile(centre=(1.0, 2.0))

            assert profile.centre == (1.0, 2.0)
            assert isinstance(profile.centre[0], aast.dim.Length)
            assert isinstance(profile.centre[1], aast.dim.Length)
            assert profile.centre[0].unit == "arcsec"
            assert profile.centre[1].unit == "arcsec"
        def test__profile_centre_y_0_x_0__grid_y_1_x_1__returns_y_1_x_1_so_same_grid(
            self
        ):
            spherical_profile = geometry_profiles.SphericalProfile(centre=(0.0, 0.0))

            grid = aa.grid_irregular.manual_1d([[1.0, 1.0]])

            transformed_grid = spherical_profile.transform_grid_to_reference_frame(grid)

            assert transformed_grid[0, 0] == pytest.approx(1.0, 1e-3)
            assert transformed_grid[0, 1] == pytest.approx(1.0, 1e-3)
        def test__profile_cenre_y_0_x_0__grid_y_1_x_1__no_coordinate_movement_so_y_1_x_1(
            self
        ):
            spherical_profile = geometry_profiles.SphericalProfile(centre=(0.0, 0.0))

            transformed_grid = spherical_profile.transform_grid_from_reference_frame(
                aa.grid_irregular.manual_1d([[1.0, 1.0]])
            )

            assert transformed_grid[0, 0] == 1.0
            assert transformed_grid[0, 1] == 1.0
        def test__grid_are_transformed_to_and_from_reference_frame__equal_to_original_values(
            self
        ):
            spherical_profile = geometry_profiles.SphericalProfile(centre=(0.0, 0.0))

            grid_original = aa.grid_irregular.manual_1d([[5.2221, 2.6565]])

            grid_spherical = spherical_profile.transform_grid_to_reference_frame(
                grid_original
            )

            transformed_grid = spherical_profile.transform_grid_from_reference_frame(
                grid_spherical
            )

            assert transformed_grid[0, 0] == pytest.approx(grid_original[0, 0], 1e-5)
            assert transformed_grid[0, 1] == pytest.approx(grid_original[0, 1], 1e-5)