1
+ import gwcs
1
2
import gwcs .coordinate_frames as cf
2
3
import numpy as np
3
4
import pytest
@@ -31,8 +32,9 @@ def lut_3d_distance_mesh():
31
32
32
33
@pytest .fixture
33
34
def lut_2d_distance_no_mesh ():
35
+ # Fixture is broken and raises: Currently all tables must be 1-D
34
36
lookup_table = np .arange (9 ).reshape (3 , 3 ) * u .km , np .arange (9 , 18 ).reshape (3 , 3 ) * u .km
35
- return QuantityTableCoordinate (* lookup_table , mesh = False )
37
+ return QuantityTableCoordinate (* lookup_table )
36
38
37
39
38
40
@pytest .fixture
@@ -191,28 +193,26 @@ def test_2d_skycoord_mesh(lut_2d_skycoord_mesh):
191
193
assert u .allclose (pix , pixel_coords .value )
192
194
193
195
196
+ @pytest .mark .xfail (reason = "celestial frames assume 2 axes, see https://github.com/spacetelescope/gwcs/issues/120" )
194
197
def test_3d_skycoord_mesh (lut_3d_skycoord_mesh ):
195
198
ltc = lut_3d_skycoord_mesh
196
199
197
200
assert ltc .model .n_inputs == 3
198
201
assert ltc .model .n_outputs == 3
199
202
200
- # Known failure due to gwcs#120
203
+ pixel_coords = (0 , 0 , 0 )* u .pix
204
+ sc = ltc .wcs .pixel_to_world (* pixel_coords )
205
+ pix = ltc .wcs .world_to_pixel (sc )
206
+ assert u .allclose (pix , pixel_coords .value )
201
207
202
- # pixel_coords = (0, 0, 0)*u.pix
203
- # sc = ltc.wcs.pixel_to_world(*pixel_coords)
204
- # pix = ltc.wcs.world_to_pixel(sc)
205
- # assert u.allclose(pix, pixel_coords.value)
208
+ assert isinstance (ltc .wcs , gwcs .WCS )
206
209
207
- # assert isinstance(ltc.wcs, gwcs.WCS)
208
- #
209
- # sub_ltc = ltc[0:4, 0:5, 0:6]
210
- # assert sub_ltc.delayed_models[0].lookup_table[0].shape == (4, )
211
- # assert sub_ltc.delayed_models[0].lookup_table[1].shape == (5, )
212
- # assert sub_ltc.delayed_models[0].lookup_table[2].shape == (6, )
210
+ sub_ltc = ltc [0 :4 , 0 :5 , 0 :6 ]
211
+ assert sub_ltc .delayed_models [0 ].lookup_table [0 ].shape == (4 , )
212
+ assert sub_ltc .delayed_models [0 ].lookup_table [1 ].shape == (5 , )
213
+ assert sub_ltc .delayed_models [0 ].lookup_table [2 ].shape == (6 , )
213
214
214
215
215
- @pytest .mark .xfail (reason = ">1D Tables not supported" )
216
216
def test_2d_skycoord_no_mesh (lut_2d_skycoord_no_mesh ):
217
217
ltc = lut_2d_skycoord_no_mesh
218
218
@@ -221,8 +221,11 @@ def test_2d_skycoord_no_mesh(lut_2d_skycoord_no_mesh):
221
221
222
222
pixel_coords = (0 , 0 )* u .pix
223
223
sc = ltc .wcs .pixel_to_world (* pixel_coords )
224
- pix = ltc .wcs .world_to_pixel (sc )
225
- assert u .allclose (pix , pixel_coords .value )
224
+
225
+ # TODO: Fix
226
+ with pytest .raises (u .UnitsError , match = "could not be converted to required input units of pix" ):
227
+ pix = ltc .wcs .world_to_pixel (sc )
228
+ assert u .allclose (pix , pixel_coords .value )
226
229
227
230
228
231
def test_1d_time (lut_1d_time ):
@@ -326,9 +329,7 @@ def test_slicing_quantity_table_coordinate():
326
329
327
330
@pytest .mark .xfail (reason = ">1D Tables not supported" )
328
331
def test_slicing_quantity_table_coordinate_2d ():
329
- qtc = QuantityTableCoordinate (* np .mgrid [0 :10 , 0 :10 ]* u .m ,
330
- names = ['x' , 'y' ], physical_types = ['pos:x' , 'pos:y' ])
331
-
332
+ qtc = QuantityTableCoordinate (* np .mgrid [0 :10 , 0 :10 ]* u .m , names = ['x' , 'y' ], physical_types = ['pos:x' , 'pos:y' ])
332
333
assert u .allclose (qtc [2 :8 , 2 :8 ].table [0 ], (np .mgrid [2 :8 , 2 :8 ]* u .m )[0 ])
333
334
assert u .allclose (qtc [2 :8 , 2 :8 ].table [1 ], (np .mgrid [2 :8 , 2 :8 ]* u .m )[1 ])
334
335
assert qtc .names == ['x' , 'y' ]
@@ -412,7 +413,6 @@ def test_1d_skycoord_no_mesh_slice(lut_1d_skycoord_no_mesh):
412
413
assert sub_ltc .table .shape == (4 , )
413
414
414
415
415
- @pytest .mark .xfail (reason = ">1D Tables not supported" )
416
416
def test_2d_skycoord_mesh_slice (lut_2d_skycoord_mesh ):
417
417
sub_ltc = lut_2d_skycoord_mesh [4 :10 , 5 :10 ]
418
418
assert sub_ltc .table .shape == (10 ,)
@@ -422,7 +422,6 @@ def test_2d_skycoord_mesh_slice(lut_2d_skycoord_mesh):
422
422
assert sub_ltc [1 :, 1 :].wcs .world_to_pixel (5 * u .deg , 6 * u .deg ) == [0.0 , 0.0 ]
423
423
424
424
425
- @pytest .mark .xfail (reason = ">1D Tables not supported" )
426
425
def test_2d_skycoord_no_mesh_slice (lut_2d_skycoord_no_mesh ):
427
426
sub_ltc = lut_2d_skycoord_no_mesh [1 :3 , 1 :2 ]
428
427
assert sub_ltc .table .shape == (2 , 1 )
@@ -538,7 +537,7 @@ def test_mtc_dropped_quantity_table(lut_1d_time, lut_2d_distance_no_mesh):
538
537
assert len (sub ._table_coords ) == 1
539
538
assert len (sub ._dropped_coords ) == 1
540
539
541
- pytest .importorskip ("gwcs" , minversion = "0.16.2a1.dev17 " )
540
+ pytest .importorskip ("gwcs" , minversion = "0.17 " )
542
541
543
542
dwd = sub .dropped_world_dimensions
544
543
assert isinstance (dwd , dict )
@@ -562,7 +561,7 @@ def test_mtc_dropped_quantity_inside_table(lut_3d_distance_mesh):
562
561
563
562
assert len (sub .table ) == 2
564
563
565
- pytest .importorskip ("gwcs" , minversion = "0.16.2a1.dev17 " )
564
+ pytest .importorskip ("gwcs" , minversion = "0.17 " )
566
565
567
566
dwd = sub .dropped_world_dimensions
568
567
assert isinstance (dwd , dict )
@@ -593,7 +592,7 @@ def test_mtc_dropped_quantity_inside_table_no_mesh(lut_2d_distance_no_mesh):
593
592
594
593
assert len (sub .table ) == 2
595
594
596
- pytest .importorskip ("gwcs" , minversion = "0.16.2a1.dev17 " )
595
+ pytest .importorskip ("gwcs" , minversion = "0.17 " )
597
596
598
597
dwd = sub .dropped_world_dimensions
599
598
assert isinstance (dwd , dict )
@@ -608,7 +607,7 @@ def test_mtc_dropped_quantity_join_drop_table(lut_1d_time, lut_3d_distance_mesh)
608
607
assert len (sub ._table_coords ) == 2
609
608
assert len (sub ._dropped_coords ) == 0
610
609
611
- pytest .importorskip ("gwcs" , minversion = "0.16.2a1.dev17 " )
610
+ pytest .importorskip ("gwcs" , minversion = "0.17 " )
612
611
613
612
dwd = sub .dropped_world_dimensions
614
613
assert isinstance (dwd , dict )
@@ -621,7 +620,7 @@ def test_mtc_dropped_quantity_join_drop_table(lut_1d_time, lut_3d_distance_mesh)
621
620
assert len (sub ._table_coords ) == 1
622
621
assert len (sub ._dropped_coords ) == 1
623
622
624
- pytest .importorskip ("gwcs" , minversion = "0.16.2a1.dev17 " )
623
+ pytest .importorskip ("gwcs" , minversion = "0.17 " )
625
624
626
625
dwd = sub .dropped_world_dimensions
627
626
assert isinstance (dwd , dict )
0 commit comments