@@ -68,49 +68,14 @@ def test__data_vector_via_transformed_mapping_matrix_from():
6868 assert (data_vector_complex_via_blurred == data_vector_via_transformed ).all ()
6969
7070
71- def test__w_tilde_curvature_interferometer_from ():
72- noise_map = np .array ([1.0 , 2.0 , 3.0 ])
73- uv_wavelengths = np .array ([[0.0001 , 2.0 , 3000.0 ], [3000.0 , 2.0 , 0.0001 ]])
74-
75- grid = aa .Grid2D .uniform (shape_native = (2 , 2 ), pixel_scales = 0.0005 )
76-
77- w_tilde = (
78- aa .util .inversion_interferometer_numba .w_tilde_curvature_interferometer_from (
79- noise_map_real = noise_map ,
80- uv_wavelengths = uv_wavelengths ,
81- grid_radians_slim = grid .array ,
82- )
83- )
84-
85- assert w_tilde == pytest .approx (
86- np .array (
87- [
88- [1.25 , 0.75 , 1.24997 , 0.74998 ],
89- [0.75 , 1.25 , 0.74998 , 1.24997 ],
90- [1.24994 , 0.74998 , 1.25 , 0.75 ],
91- [0.74998 , 1.24997 , 0.75 , 1.25 ],
92- ]
93- ),
94- 1.0e-4 ,
95- )
96-
97-
98- def test__curvature_matrix_via_w_tilde_preload_from ():
71+ def test__curvature_matrix_via_curvature_preload_from ():
9972 noise_map = np .array ([1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 ])
10073 uv_wavelengths = np .array (
10174 [[0.0001 , 2.0 , 3000.0 , 50000.0 , 200000.0 ], [3000.0 , 2.0 , 0.0001 , 10.0 , 5000.0 ]]
10275 )
10376
10477 grid = aa .Grid2D .uniform (shape_native = (3 , 3 ), pixel_scales = 0.0005 )
10578
106- w_tilde = (
107- aa .util .inversion_interferometer_numba .w_tilde_curvature_interferometer_from (
108- noise_map_real = noise_map ,
109- uv_wavelengths = uv_wavelengths ,
110- grid_radians_slim = grid .array ,
111- )
112- )
113-
11479 mapping_matrix = np .array (
11580 [
11681 [1.0 , 0.0 , 0.0 ],
@@ -125,34 +90,45 @@ def test__curvature_matrix_via_w_tilde_preload_from():
12590 ]
12691 )
12792
128- curvature_matrix_via_w_tilde = aa .util .inversion .curvature_matrix_via_w_tilde_from (
129- w_tilde = w_tilde , mapping_matrix = mapping_matrix
93+ curvature_preload = (
94+ aa .util .inversion_interferometer .w_tilde_curvature_preload_interferometer_from (
95+ noise_map_real = noise_map ,
96+ uv_wavelengths = uv_wavelengths ,
97+ shape_masked_pixels_2d = (3 , 3 ),
98+ grid_radians_2d = np .array (grid .native ),
99+ )
130100 )
131101
132- w_tilde_preload = aa .util .inversion_interferometer_numba .w_tilde_curvature_preload_interferometer_from (
133- noise_map_real = noise_map ,
134- uv_wavelengths = uv_wavelengths ,
135- shape_masked_pixels_2d = (3 , 3 ),
136- grid_radians_2d = np .array (grid .native ),
102+ native_index_for_slim_index = np .array (
103+ [[0 , 0 ], [0 , 1 ], [0 , 2 ], [1 , 0 ], [1 , 1 ], [1 , 2 ], [2 , 0 ], [2 , 1 ], [2 , 2 ]]
104+ )
105+
106+ w_tilde = aa .util .inversion_interferometer .w_tilde_via_preload_from (
107+ curvature_preload = curvature_preload ,
108+ native_index_for_slim_index = native_index_for_slim_index ,
109+ )
110+
111+ curvature_matrix_via_w_tilde = aa .util .inversion .curvature_matrix_via_w_tilde_from (
112+ w_tilde = w_tilde , mapping_matrix = mapping_matrix
137113 )
138114
139115 pix_indexes_for_sub_slim_index = np .array (
140116 [[0 ], [2 ], [1 ], [1 ], [2 ], [2 ], [0 ], [2 ], [0 ]]
141117 )
142118
143- pix_size_for_sub_slim_index = np .ones (shape = (9 ,)).astype ("int" )
144119 pix_weights_for_sub_slim_index = np .ones (shape = (9 , 1 ))
145120
146- native_index_for_slim_index = np .array (
147- [[0 , 0 ], [0 , 1 ], [0 , 2 ], [1 , 0 ], [1 , 1 ], [1 , 2 ], [2 , 0 ], [2 , 1 ], [2 , 2 ]]
121+ w_tilde = aa .WTildeInterferometer (
122+ curvature_preload = curvature_preload ,
123+ dirty_image = None ,
124+ real_space_mask = grid .mask ,
148125 )
149126
150- curvature_matrix_via_preload = aa .util .inversion_interferometer_numba . curvature_matrix_via_w_tilde_curvature_preload_interferometer_from (
151- curvature_preload = w_tilde_preload ,
127+ curvature_matrix_via_preload = aa .util .inversion_interferometer . curvature_matrix_via_w_tilde_interferometer_from (
128+ fft_state = w_tilde . fft_state ,
152129 pix_indexes_for_sub_slim_index = pix_indexes_for_sub_slim_index ,
153- pix_size_for_sub_slim_index = pix_size_for_sub_slim_index ,
154130 pix_weights_for_sub_slim_index = pix_weights_for_sub_slim_index ,
155- native_index_for_slim_index = native_index_for_slim_index ,
131+ rect_index_for_mask_index = w_tilde . rect_index_for_mask_index ,
156132 pix_pixels = 3 ,
157133 )
158134
@@ -161,43 +137,6 @@ def test__curvature_matrix_via_w_tilde_preload_from():
161137 )
162138
163139
164- def test__curvature_matrix_via_w_tilde_two_methods_agree ():
165- noise_map = np .array ([1.0 , 2.0 , 3.0 , 4.0 , 5.0 , 6.0 ])
166- uv_wavelengths = np .array (
167- [[0.0001 , 2.0 , 3000.0 , 50000.0 , 200000.0 ], [3000.0 , 2.0 , 0.0001 , 10.0 , 5000.0 ]]
168- )
169-
170- grid = aa .Grid2D .uniform (shape_native = (3 , 3 ), pixel_scales = 0.0005 )
171-
172- w_tilde = (
173- aa .util .inversion_interferometer_numba .w_tilde_curvature_interferometer_from (
174- noise_map_real = noise_map ,
175- uv_wavelengths = uv_wavelengths ,
176- grid_radians_slim = grid .array ,
177- )
178- )
179-
180- w_tilde_preload = aa .util .inversion_interferometer_numba .w_tilde_curvature_preload_interferometer_from (
181- noise_map_real = np .array (noise_map ),
182- uv_wavelengths = np .array (uv_wavelengths ),
183- shape_masked_pixels_2d = (3 , 3 ),
184- grid_radians_2d = np .array (grid .native ),
185- )
186-
187- native_index_for_slim_index = np .array (
188- [[0 , 0 ], [0 , 1 ], [0 , 2 ], [1 , 0 ], [1 , 1 ], [1 , 2 ], [2 , 0 ], [2 , 1 ], [2 , 2 ]]
189- )
190-
191- w_tilde_via_preload = (
192- aa .util .inversion_interferometer_numba .w_tilde_via_preload_from (
193- w_tilde_preload = w_tilde_preload ,
194- native_index_for_slim_index = native_index_for_slim_index ,
195- )
196- )
197-
198- assert (w_tilde == w_tilde_via_preload ).all ()
199-
200-
201140def test__identical_inversion_values_for_two_methods ():
202141 real_space_mask = aa .Mask2D .all_false (
203142 shape_native = (7 , 7 ),
0 commit comments