@@ -130,3 +130,47 @@ def test__shared_state_from__returns_none_when_not_opted_in(interferometer_7):
130130 analysis = al .AnalysisInterferometer (dataset = dataset , use_jax = False )
131131
132132 assert analysis .shared_state_from (instance = instance ) is None
133+
134+
135+ def test__preloads_scoped__cross_type_preloads_reduced_to_mesh_view (interferometer_7 ):
136+ lens = al .Galaxy (redshift = 0.5 , light = al .lp .Sersic (intensity = 0.1 ))
137+ tracer = al .Tracer (galaxies = [lens ])
138+
139+ # Cross-dataset-type preloads (e.g. from an imaging lead factor in a joint graph): only
140+ # the mesh-geometry view is valid for an interferometer fit.
141+ cross_type = aa .PreloadsImaging (
142+ source_plane_mesh_grid = [["mesh" ]], image_plane_mesh_grid = [["image-mesh" ]]
143+ )
144+
145+ fit = al .FitInterferometer (
146+ dataset = interferometer_7 , tracer = tracer , preloads = cross_type
147+ )
148+
149+ scoped = fit ._preloads_scoped
150+ assert isinstance (scoped , aa .PreloadsInterferometer )
151+ assert scoped .source_plane_mesh_grid == [["mesh" ]]
152+ assert scoped .curvature_matrix is None
153+ assert scoped .mapper_galaxy_dict is None
154+
155+ same_type = aa .PreloadsInterferometer (curvature_matrix = "F" )
156+ fit = al .FitInterferometer (
157+ dataset = interferometer_7 , tracer = tracer , preloads = same_type
158+ )
159+ assert fit ._preloads_scoped is same_type
160+
161+
162+ def test__shared_state_from__populates_mesh_geometry_fields (interferometer_7 ):
163+ dataset = interferometer_7 .apply_sparse_operator (use_jax = False )
164+
165+ model = _pixelization_model ()
166+ instance = model .instance_from_unit_vector ([])
167+
168+ analysis = al .AnalysisInterferometer (
169+ dataset = dataset , use_jax = False , shared_preloads = True
170+ )
171+
172+ # The mesh-geometry fields ride alongside the curvature matrix + mapper so that
173+ # cross-dataset-type factors of a joint graph can consume the shared mesh.
174+ shared = analysis .shared_state_from (instance = instance )
175+ assert shared .source_plane_mesh_grid is not None
176+ assert shared .image_plane_mesh_grid is not None
0 commit comments