Skip to content

Commit

Permalink
Merge pull request #66 from Jammy2211/feature/save_results_combined
Browse files Browse the repository at this point in the history
fix delta ellipticity tests
  • Loading branch information
Jammy2211 authored Feb 19, 2024
2 parents ecdc184 + e50ba1e commit 45d7013
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 42 deletions.
2 changes: 1 addition & 1 deletion autocti/charge_injection/mock/mock_result.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def __init__(
)

self.previous_model = model
self.gaussian_tuples = None
self.prior_means = None
self.mask = None
self.positions = None
self.mask = mask
Expand Down
2 changes: 1 addition & 1 deletion autocti/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ def make_samples_with_result():
return MockSamples(
model=model,
max_log_likelihood_instance=instance,
gaussian_tuples=[(1.0, 2.0)] * model.prior_count,
prior_means=[1.0] * model.prior_count,
)


Expand Down
58 changes: 26 additions & 32 deletions autocti/model/analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def __init__(
def region_list_from(self) -> List:
raise NotImplementedError

def save_results(self, paths: af.DirectoryPaths, result: ResultImagingCI):
def save_results_combined(self, paths: af.DirectoryPaths, result: ResultImagingCI):
"""
At the end of a model-fit, this routine saves attributes of the `Analysis` object to the `files`
folder such that they can be loaded after the analysis using PyAutoFit's database and aggregator tools.
Expand All @@ -80,37 +80,31 @@ def save_results(self, paths: af.DirectoryPaths, result: ResultImagingCI):
weight_list = []
delta_ellipticity_list = []

try:
for sample in result.samples.sample_list:
try:
instance = sample.instance_for_model(model=result.samples.model)
except exc.FitException:
continue

weight_list.append(sample.weight)
delta_ellipticity_list.append(instance.cti.delta_ellipticity)

(
median_delta_ellipticity,
upper_delta_ellipticity,
lower_delta_ellipticity,
) = af.marginalize(
parameter_list=delta_ellipticity_list,
sigma=2.0,
weight_list=weight_list,
)

delta_ellipticity = (
upper_delta_ellipticity - lower_delta_ellipticity
) / 2.0

output_to_json(
obj=delta_ellipticity,
file_path=paths._files_path / "delta_ellipticity.json",
)

except AttributeError:
pass
for sample in result.samples.sample_list:

instance = sample.instance_for_model(model=result.samples.model)

weight_list.append(sample.weight)
delta_ellipticity_list.append(instance.cti.delta_ellipticity)

(
median_delta_ellipticity,
upper_delta_ellipticity,
lower_delta_ellipticity,
) = af.marginalize(
parameter_list=delta_ellipticity_list,
sigma=2.0,
weight_list=weight_list,
)

delta_ellipticity = (
upper_delta_ellipticity - lower_delta_ellipticity
) / 2.0

output_to_json(
obj=delta_ellipticity,
file_path=paths._files_path / "delta_ellipticity.json",
)

def in_ascending_fpr_order_from(self, quantity_list, fpr_value_list):
if not conf.instance["visualize"]["general"]["general"][
Expand Down
4 changes: 2 additions & 2 deletions test_autocti/aggregator/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ def make_samples_1d(model_1d):
model=model_1d,
sample_list=sample_list,
max_log_likelihood_instance=cti,
gaussian_tuples=[(1.0, 2.0)] * model_1d.prior_count,
prior_means=[1.0] * model_1d.prior_count
)


Expand Down Expand Up @@ -117,5 +117,5 @@ def make_samples_2d(model_2d):
model=model_2d,
sample_list=sample_list,
max_log_likelihood_instance=cti,
gaussian_tuples=[(1.0, 2.0)] * model_2d.prior_count,
prior_means=[1.0] * model_2d.prior_count
)
4 changes: 2 additions & 2 deletions test_autocti/model/test_analysis.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def test__save_results__delta_ellipyicity_output_to_json(

samples = ac.m.MockSamples(sample_list=sample_list, model=model)

analysis.save_results(
analysis.save_results_combined(
paths=paths,
result=ac.m.MockResult(samples=samples, model=model),
)
Expand All @@ -47,6 +47,6 @@ def test__save_results__delta_ellipyicity_output_to_json(
file_path=paths._files_path / "delta_ellipticity.json"
)

assert delta_ellipticity == pytest.approx(-1.6145994035538491, 1.0e-4)
assert delta_ellipticity == pytest.approx(-0.403649850, 1.0e-4)

os.remove(paths._files_path / "delta_ellipticity.json")
8 changes: 4 additions & 4 deletions test_autocti/model/test_model_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def test__delta_ellipticity():

cti = ac.CTI1D(trap_list=trap_list)

assert cti.delta_ellipticity == pytest.approx(4.0 * 0.57029, 1.0e-4)
assert cti.delta_ellipticity == pytest.approx(0.57029, 1.0e-4)

parallel_trap_list = [
ac.TrapInstantCapture(density=1.0, release_timescale=2.0),
Expand All @@ -53,7 +53,7 @@ def test__delta_ellipticity():

cti = ac.CTI2D(parallel_trap_list=parallel_trap_list)

assert cti.delta_ellipticity == pytest.approx(4.0 * 0.57029, 1.0e-4)
assert cti.delta_ellipticity == pytest.approx(0.57029, 1.0e-4)

serial_trap_list = [
ac.TrapInstantCapture(density=5.0, release_timescale=6.0),
Expand All @@ -62,13 +62,13 @@ def test__delta_ellipticity():

cti = ac.CTI2D(serial_trap_list=serial_trap_list)

assert cti.delta_ellipticity == pytest.approx(4.0 * 1.875875, 1.0e-4)
assert cti.delta_ellipticity == pytest.approx(1.875875, 1.0e-4)

cti = ac.CTI2D(
parallel_trap_list=parallel_trap_list, serial_trap_list=serial_trap_list
)

assert cti.delta_ellipticity == pytest.approx(4.0 * 2.446169, 1.0e-4)
assert cti.delta_ellipticity == pytest.approx(2.446169, 1.0e-4)


def test__dictable():
Expand Down

0 comments on commit 45d7013

Please sign in to comment.