def test__intensity_from_grid__change_geometry(self): dev_vaucouleurs_0 = lp.EllipticalDevVaucouleurs(axis_ratio=0.5, phi=0.0, intensity=3.0, effective_radius=2.0) dev_vaucouleurs_1 = lp.EllipticalDevVaucouleurs(axis_ratio=0.5, phi=90.0, intensity=3.0, effective_radius=2.0) assert dev_vaucouleurs_0.intensities_from_grid(grid=np.array([[0.0, 1.0]])) \ == dev_vaucouleurs_1.intensities_from_grid(grid=np.array([[1.0, 0.0]]))
def test__intensity_at_radius__correct_value(self): dev_vaucouleurs = lp.EllipticalDevVaucouleurs(axis_ratio=1.0, phi=0.0, intensity=1.0, effective_radius=0.6) assert dev_vaucouleurs.intensities_from_grid_radii( grid_radii=1.0) == pytest.approx(0.3518, 1e-3) dev_vaucouleurs = lp.EllipticalDevVaucouleurs(axis_ratio=1.0, phi=0.0, intensity=3.0, effective_radius=2.0) assert dev_vaucouleurs.intensities_from_grid_radii( grid_radii=1.5) == pytest.approx(5.1081, 1e-3)
def test__spherical_and_elliptical_match(self): elliptical = lp.EllipticalDevVaucouleurs(axis_ratio=1.0, phi=0.0, intensity=3.0, effective_radius=2.0) spherical = lp.SphericalDevVaucouleurs(intensity=3.0, effective_radius=2.0) assert (elliptical.intensities_from_grid(grid) == spherical.intensities_from_grid(grid)).all()
def test__intensity_from_grid__correct_values(self): dev_vaucouleurs = lp.EllipticalDevVaucouleurs(axis_ratio=0.5, phi=0.0, intensity=3.0, effective_radius=2.0) assert dev_vaucouleurs.intensities_from_grid( grid=np.array([[1.0, 0.0]])) == pytest.approx(5.6697, 1e-3) dev_vaucouleurs = lp.EllipticalDevVaucouleurs(axis_ratio=0.5, phi=90.0, intensity=2.0, effective_radius=3.0) assert dev_vaucouleurs.intensities_from_grid( grid=np.array([[0.0, 1.0]])) == pytest.approx(7.4455, 1e-3) dev_vaucouleurs = lp.EllipticalDevVaucouleurs(axis_ratio=0.5, phi=90.0, intensity=4.0, effective_radius=3.0) assert dev_vaucouleurs.intensities_from_grid( grid=np.array([[0.0, 1.0]])) == pytest.approx(2.0 * 7.4455, 1e-3)
def test__constructor(self): dev_vaucouleurs = lp.EllipticalDevVaucouleurs(axis_ratio=0.6, phi=10.0, intensity=2.0, effective_radius=0.9, centre=(0.0, 0.1)) assert dev_vaucouleurs.centre == (0.0, 0.1) assert dev_vaucouleurs.axis_ratio == 0.6 assert dev_vaucouleurs.phi == 10.0 assert dev_vaucouleurs.intensity == 2.0 assert dev_vaucouleurs.effective_radius == 0.9 assert dev_vaucouleurs.sersic_index == 4.0 assert dev_vaucouleurs.sersic_constant == pytest.approx(7.66925, 1e-3) assert dev_vaucouleurs.elliptical_effective_radius == 0.9 / math.sqrt( 0.6)
def test__grid_calculations__same_as_dev_vaucouleurs(self): sersic_lp = lp.EllipticalDevVaucouleurs(axis_ratio=0.7, phi=1.0, intensity=1.0, effective_radius=0.6) sersic_mp = mp.EllipticalDevVaucouleurs(axis_ratio=0.7, phi=1.0, intensity=1.0, effective_radius=0.6, mass_to_light_ratio=2.0) sersic_lmp = lmp.EllipticalDevVaucouleurs(axis_ratio=0.7, phi=1.0, intensity=1.0, effective_radius=0.6, mass_to_light_ratio=2.0) assert (sersic_lp.intensities_from_grid(grid) == sersic_lmp.intensities_from_grid(grid)).all() assert (sersic_mp.surface_density_from_grid(grid) == sersic_lmp.surface_density_from_grid(grid)).all() # assert (sersic_mp.potential_from_grid(grid) == sersic_lmp.potential_from_grid(grid)).all() assert (sersic_mp.deflections_from_grid(grid) == sersic_lmp.deflections_from_grid(grid)).all()
### SphericalExponential ### profile = lp.SphericalExponential(centre=(0.0, 0.0), intensity=1.0, effective_radius=1.0) start = time.time() profile.intensities_from_grid(grid=lens_data.grid_stack.sub) diff = time.time() - start print("SphericalExponential time = {}".format(diff)) ### EllipticalDevVaucouleurs ### profile = lp.EllipticalDevVaucouleurs(centre=(0.0, 0.0), axis_ratio=0.8, phi=45.0, intensity=1.0, effective_radius=1.0) start = time.time() profile.intensities_from_grid(grid=lens_data.grid_stack.sub) diff = time.time() - start print("EllipticalDevVaucouleurs time = {}".format(diff)) ### SphericalDevVaucouleurs ### profile = lp.SphericalDevVaucouleurs(centre=(0.0, 0.0), intensity=1.0, effective_radius=1.0) start = time.time()