def test__fit_interferometer_generator_from_aggregator(interferometer_7, mask_2d_7x7, samples, model): path_prefix = "aggregator_fit_interferometer" database_file = path.join(conf.instance.output_path, "fit_interferometer.sqlite") result_path = path.join(conf.instance.output_path, path_prefix) clean(database_file=database_file, result_path=result_path) search = mock.MockSearch(samples=samples) search.paths = af.DirectoryPaths(path_prefix=path_prefix) analysis = ag.AnalysisInterferometer(dataset=interferometer_7) search.fit(model=model, analysis=analysis) agg = af.Aggregator.from_database(filename=database_file) agg.add_directory(directory=result_path) fit_interferometer_gen = ag.agg.FitInterferometer(aggregator=agg) for fit_interferometer in fit_interferometer_gen: assert (fit_interferometer.interferometer.visibilities == interferometer_7.visibilities).all() assert (fit_interferometer.interferometer.real_space_mask == mask_2d_7x7).all() clean(database_file=database_file, result_path=result_path)
def test__fit_figure_of_merit__includes_hyper_image_and_noise__matches_fit( self, interferometer_7 ): hyper_background_noise = ag.hyper_data.HyperBackgroundNoise(noise_scale=1.0) galaxy = ag.Galaxy(redshift=0.5, light=ag.lp.EllSersic(intensity=0.1)) model = af.Collection( hyper_background_noise=hyper_background_noise, galaxies=af.Collection(galaxy=galaxy), ) analysis = ag.AnalysisInterferometer(dataset=interferometer_7) instance = model.instance_from_unit_vector([]) fit_figure_of_merit = analysis.log_likelihood_function(instance=instance) plane = analysis.plane_for_instance(instance=instance) fit = ag.FitInterferometer( interferometer=interferometer_7, plane=plane, hyper_background_noise=hyper_background_noise, ) assert fit.log_likelihood == fit_figure_of_merit
def test__interferometer_generator_from_aggregator( visibilities_7, visibilities_noise_map_7, uv_wavelengths_7x2, mask_2d_7x7, samples, model, ): path_prefix = "aggregator_interferometer" database_file = path.join(conf.instance.output_path, "interferometer.sqlite") result_path = path.join(conf.instance.output_path, path_prefix) clean(database_file=database_file, result_path=result_path) interferometer_7 = ag.Interferometer( visibilities=visibilities_7, noise_map=visibilities_noise_map_7, uv_wavelengths=uv_wavelengths_7x2, real_space_mask=mask_2d_7x7, settings=ag.SettingsInterferometer( grid_class=ag.Grid2DIterate, grid_inversion_class=ag.Grid2DIterate, fractional_accuracy=0.5, sub_steps=[2], transformer_class=ag.TransformerDFT, ), ) search = mock.MockSearch(samples=samples) search.paths = af.DirectoryPaths(path_prefix=path_prefix) analysis = ag.AnalysisInterferometer(dataset=interferometer_7) search.fit(model=model, analysis=analysis) agg = af.Aggregator.from_database(filename=database_file) agg.add_directory(directory=result_path) interferometer_agg = ag.agg.InterferometerAgg(aggregator=agg) interferometer_gen = interferometer_agg.interferometer_gen() for interferometer in interferometer_gen: assert (interferometer.visibilities == interferometer_7.visibilities ).all() assert (interferometer.real_space_mask == mask_2d_7x7).all() assert isinstance(interferometer.grid, ag.Grid2DIterate) assert isinstance(interferometer.grid_inversion, ag.Grid2DIterate) assert interferometer.grid.sub_steps == [2] assert interferometer.grid.fractional_accuracy == 0.5 assert isinstance(interferometer.transformer, ag.TransformerDFT) clean(database_file=database_file, result_path=result_path)
def test__make_result__result_interferometer_is_returned(self, interferometer_7): model = af.Collection(galaxies=af.Collection(galaxy_0=ag.Galaxy(redshift=0.5))) analysis = ag.AnalysisInterferometer(dataset=interferometer_7) search = mock.MockSearch(name="test_search") result = search.fit(model=model, analysis=analysis) assert isinstance(result, res.ResultInterferometer)
def test__fit_figure_of_merit__matches_correct_fit_given_galaxy_profiles( self, interferometer_7 ): galaxy = ag.Galaxy(redshift=0.5, light=ag.lp.EllSersic(intensity=0.1)) model = af.Collection(galaxies=af.Collection(galaxy=galaxy)) analysis = ag.AnalysisInterferometer(dataset=interferometer_7) instance = model.instance_from_unit_vector([]) fit_figure_of_merit = analysis.log_likelihood_function(instance=instance) plane = analysis.plane_for_instance(instance=instance) fit = ag.FitInterferometer(interferometer=interferometer_7, plane=plane) assert fit.log_likelihood == fit_figure_of_merit
def make_analysis_interferometer_7(): return ag.AnalysisInterferometer(dataset=make_interferometer_7())