def test__grid_with_points_below_magnification_threshold_removed(self):

        sis = al.mp.SphIsothermal(centre=(0.0, 0.0), einstein_radius=1.0)

        grid = al.Grid2DIrregularUniform(grid=[(1.0, 0.0), (0.1, 0.0)],
                                         pixel_scales=0.01)

        magnification = np.abs(
            sis.magnification_via_hessian_from_grid(grid=grid,
                                                    buffer=grid.pixel_scale))

        assert magnification[0] > 1000.0
        assert magnification[1] < 1000.0

        solver = pos.AbstractPositionsSolver(magnification_threshold=1000.0)

        positions = solver.grid_with_points_below_magnification_threshold_removed(
            lensing_obj=sis,
            grid=grid,
            deflections_func=sis.deflections_2d_from_grid)

        assert positions.in_list == [(1.0, 0.0)]
        assert positions.pixel_scales == (0.01, 0.01)

        solver = pos.AbstractPositionsSolver(magnification_threshold=0.0)

        positions = solver.grid_with_points_below_magnification_threshold_removed(
            lensing_obj=sis,
            grid=grid,
            deflections_func=sis.deflections_2d_from_grid)

        assert positions.in_list == [(1.0, 0.0), (0.1, 0.0)]
        assert positions.pixel_scales == (0.01, 0.01)
Example #2
0
    def test__solver_create_buffed_and_updated_grid_from_input_coordinate(self):

        solver = pos.AbstractPositionsSolver(use_upscaling=True, upscale_factor=1)

        grid = solver.grid_buffed_and_upscaled_around_coordinate_from(
            coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=1, upscale_factor=1
        )

        grid_util = pos.grid_buffed_around_coordinate_from(
            coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=1, upscale_factor=1
        )

        assert (grid == grid_util).all()

        solver = pos.AbstractPositionsSolver(use_upscaling=False, upscale_factor=3)

        grid = solver.grid_buffed_and_upscaled_around_coordinate_from(
            coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=1, upscale_factor=1
        )

        grid_util = pos.grid_buffed_around_coordinate_from(
            coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=1, upscale_factor=1
        )

        assert (grid == grid_util).all()

        solver = pos.AbstractPositionsSolver(use_upscaling=True, upscale_factor=1)

        grid = solver.grid_buffed_and_upscaled_around_coordinate_from(
            coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=3, upscale_factor=1
        )

        grid_util = pos.grid_buffed_around_coordinate_from(
            coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=3, upscale_factor=1
        )

        assert (grid == grid_util).all()

        solver = pos.AbstractPositionsSolver(use_upscaling=True, upscale_factor=2)

        grid = solver.grid_buffed_and_upscaled_around_coordinate_from(
            coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=2, upscale_factor=2
        )

        grid_util = pos.grid_buffed_around_coordinate_from(
            coordinate=(0.0, 1.0), pixel_scales=(1.0, 1.0), buffer=2, upscale_factor=2
        )

        assert (grid == grid_util).all()
    def test__solver_with_remove_distance_from_mass_profile_centre__remove_pixels_from_initial_grid(
        self, ):

        grid = al.Grid.manual_1d(
            grid=[[0.0, -0.1], [0.0, 0.0], [0.0, 0.1]],
            shape_2d=(1, 3),
            pixel_scales=0.1,
        )

        sis = al.mp.SphericalIsothermal(centre=(0.0, 0.0), einstein_radius=1.0)

        solver = pos.AbstractPositionsSolver(
            distance_from_mass_profile_centre=0.01)

        grid = solver.grid_with_coordinates_from_mass_profile_centre_removed(
            grid=grid, lensing_obj=sis)

        assert grid == pytest.approx(np.array([[0.0, -0.1], [0.0, 0.1]]),
                                     1.0e-4)