@@ -185,7 +185,7 @@ def test_int_fraction_pixel_shape(celestial_wcs):
185
185
assert isinstance (dim , numbers .Integral )
186
186
187
187
@pytest .fixture
188
- def nine_nine_wcs ():
188
+ def four_five_wcs ():
189
189
from astropy .wcs import WCS
190
190
191
191
wcs = WCS (naxis = 2 )
@@ -195,22 +195,21 @@ def nine_nine_wcs():
195
195
wcs .wcs .crpix = [1 , 1 ]
196
196
197
197
wcs .wcs .set ()
198
- wcs .pixel_shape = [9 , 9 ]
198
+ wcs .pixel_shape = [4 , 5 ]
199
199
return wcs
200
200
201
- def test_corner_pixels (nine_nine_wcs ):
202
- owcs = nine_nine_wcs
203
- # original corner
204
- ocorner = owcs .pixel_to_world_values (- 0.5 , - 0.5 )
205
- # one super pixel along (3 original pixels)
206
- osone = owcs .pixel_to_world_values (2.5 , 2.5 )
207
-
208
- wcs = ResampledLowLevelWCS (owcs , 3 )
209
-
210
- # resampled corner == original corner
211
- corner = wcs .pixel_to_world_values (- 0.5 , - 0.5 )
212
- # One super pixel along
213
- sone = wcs .pixel_to_world_values (0.5 , 0.5 )
214
-
215
- assert np .allclose (ocorner , corner )
216
- assert np .allclose (osone , sone )
201
+ @pytest .mark .parametrize (('factor' , 'offset' , 'expected_over_pixels' ),
202
+ [([2 , 3 ], [0 , 0 ], np .meshgrid (np .arange (- 0.5 , 1.75 , 0.25 ), np .arange (- 0.5 , 1.2 , 1 / 6 ))),
203
+ ([2 , 3 ], [1 , 2 ], np .meshgrid (np .arange (- 1 , 1.25 , 0.25 ), np .arange (- 7 , 4 ) / 6 )),
204
+ ])
205
+ def test_resampled_pixel_to_world_values (four_five_wcs , factor , offset , expected_over_pixels ):
206
+ wcs = four_five_wcs
207
+ # Get world values of original pixel grid.
208
+ under_pixels = np .meshgrid (np .arange (- 0.5 , 4 , 0.5 ), np .arange (- 0.5 , 5 , 0.5 ))
209
+ expected_world = wcs .pixel_to_world_values (* under_pixels )
210
+
211
+ # Resample WCS
212
+ new_wcs = ResampledLowLevelWCS (wcs , factor , offset )
213
+ # Get expected pixel coords in resampled WCS of same pixel locations as above.
214
+ output_world = new_wcs .pixel_to_world_values (* expected_over_pixels )
215
+ assert_allclose (np .asarray (output_world ), np .asarray (expected_world ), atol = 1e-15 )
0 commit comments