1717
1818def test_all_flags ():
1919 def test_flags (flag , mag , mag_limits , lunation , waveName ,
20- sky , offset_min_skybrightness , can_off ):
20+ sky , offset_min_skybrightness , can_off , offset_val ):
2121 # test APO fails with 1D array
2222 with pytest .raises (ValueError , match = 'mags must be a 2D numpy.array of shape \\ (N, 10\\ )' ):
2323 delta_ra , delta_dec , offset_flag = object_offset (mag , mag_limits , lunation ,
@@ -61,12 +61,37 @@ def test_flags(flag, mag, mag_limits, lunation, waveName,
6161 assert numpy .all (delta_ra == 0. )
6262 else :
6363 assert numpy .all (delta_ra > 0. )
64+
65+ # check offset_valid
66+ with pytest .raises (ValueError , match = 'Must provide program to check valid offsets!' ):
67+ delta_ra , delta_dec , offset_flag , valid_offset = object_offset (
68+ numpy .vstack ((mag , mag )), mag_limits , lunation ,
69+ waveName , 'APO' , fmagloss = fmagloss , skybrightness = sky ,
70+ offset_min_skybrightness = offset_min_skybrightness ,
71+ can_offset = can_off_arr ,
72+ check_valid_offset = True )
73+ delta_ra , delta_dec , offset_flag , valid_offset = object_offset (
74+ numpy .vstack ((mag , mag )), mag_limits , lunation ,
75+ waveName , 'APO' , fmagloss = fmagloss , skybrightness = sky ,
76+ offset_min_skybrightness = offset_min_skybrightness ,
77+ can_offset = can_off_arr ,
78+ check_valid_offset = True ,
79+ program = numpy .array (['science' ,
80+ 'science' ]))
81+ assert numpy .all (offset_flag == flag )
82+ assert numpy .all (delta_dec == 0. )
83+ if flag > 0 :
84+ assert numpy .all (delta_ra == 0. )
85+ else :
86+ assert numpy .all (delta_ra > 0. )
87+ assert numpy .all (valid_offset == offset_val )
6488 # Boss Bright
6589 offset_min_skybrightness = 1
6690 waveName = 'Boss'
6791 lunation = 'bright'
68- flags_test = [0 , 1 , 2 , 8 , 16 , 32 ]
92+ flags_test = [0 , 1 , 2 , 8 , 16 , 32 , 32 ]
6993 flags_test = [f if f == 0 else f + 64 for f in flags_test ]
94+ offset_valid = [True , True , True , False , False , False , False ]
7095
7196 test_mags = []
7297 test_mags .append (numpy .array ([m - 2 if m != - 999. else m for m in mag_limits [lunation ][waveName ]]))
@@ -75,19 +100,22 @@ def test_flags(flag, mag, mag_limits, lunation, waveName,
75100 test_mags .append (numpy .array ([m - 2 if m != - 999. else m for m in mag_limits [lunation ][waveName ]]))
76101 test_mags .append (numpy .array ([m - 2 if m != - 999. else m for m in mag_limits [lunation ][waveName ]]))
77102 test_mags .append (numpy .array ([5. if m != - 999. else m for m in mag_limits [lunation ][waveName ]]))
103+ test_mags .append (numpy .array ([7. if m != - 999. else m for m in mag_limits [lunation ][waveName ]]))
104+ test_mags [- 1 ][0 ] = 5.
78105
79- skybrightness = [None , None , None , 0.3 , None , None ]
80- can_offset = [None , None , None , None , False , None ]
81- for flag , mag , sky , can_off in zip (flags_test , test_mags , skybrightness , can_offset ):
106+ skybrightness = [None , None , None , 0.3 , None , None , None ]
107+ can_offset = [None , None , None , None , False , None , None ]
108+ for flag , mag , sky , can_off , offset_val in zip (flags_test , test_mags , skybrightness , can_offset , offset_valid ):
82109 test_flags (flag , mag , mag_limits [lunation ][waveName ], lunation , waveName ,
83- sky , offset_min_skybrightness , can_off )
110+ sky , offset_min_skybrightness , can_off , offset_val )
84111
85112 # Boss dark
86113 offset_min_skybrightness = 1
87114 waveName = 'Boss'
88115 lunation = 'dark'
89- flags_test = [0 , 1 , 2 , 8 , 16 , 32 ]
116+ flags_test = [0 , 1 , 2 , 8 , 16 , 32 , 32 ]
90117 flags_test = [f if f == 0 else f + 64 for f in flags_test ]
118+ offset_valid = [True , True , True , False , False , False , False ]
91119
92120 test_mags = []
93121 test_mags .append (numpy .array ([m - 1 if m != - 999. else m for m in mag_limits [lunation ][waveName ]]))
@@ -96,19 +124,22 @@ def test_flags(flag, mag, mag_limits, lunation, waveName,
96124 test_mags .append (numpy .array ([m - 1 if m != - 999. else m for m in mag_limits [lunation ][waveName ]]))
97125 test_mags .append (numpy .array ([m - 1 if m != - 999. else m for m in mag_limits [lunation ][waveName ]]))
98126 test_mags .append (numpy .array ([12. if m != - 999. else m for m in mag_limits [lunation ][waveName ]]))
127+ test_mags .append (numpy .array ([14. if m != - 999. else m for m in mag_limits [lunation ][waveName ]]))
128+ test_mags [- 1 ][0 ] = 12.
99129
100- skybrightness = [None , None , None , 0.3 , None , None ]
101- can_offset = [None , None , None , None , False , None ]
102- for flag , mag , sky , can_off in zip (flags_test , test_mags , skybrightness , can_offset ):
130+ skybrightness = [None , None , None , 0.3 , None , None , None ]
131+ can_offset = [None , None , None , None , False , None , None ]
132+ for flag , mag , sky , can_off , offset_val in zip (flags_test , test_mags , skybrightness , can_offset , offset_valid ):
103133 test_flags (flag , mag , mag_limits [lunation ][waveName ], lunation , waveName ,
104- sky , offset_min_skybrightness , can_off )
134+ sky , offset_min_skybrightness , can_off , offset_val )
105135
106136 # Apogee bright
107137 offset_min_skybrightness = 1
108138 waveName = 'Apogee'
109139 lunation = 'bright'
110140 flags_test = [0 , 1 , 2 , 8 , 16 , 32 ]
111141 flags_test = [f if f == 0 else f + 64 for f in flags_test ]
142+ offset_valid = [True , True , True , False , False , False ]
112143
113144 test_mags = []
114145 test_mags .append (numpy .array ([m - 2 if m != - 999. else m for m in mag_limits [lunation ][waveName ]]))
@@ -120,16 +151,17 @@ def test_flags(flag, mag, mag_limits, lunation, waveName,
120151
121152 skybrightness = [None , None , None , 0.3 , None , None ]
122153 can_offset = [None , None , None , None , False , None ]
123- for flag , mag , sky , can_off in zip (flags_test , test_mags , skybrightness , can_offset ):
154+ for flag , mag , sky , can_off , offset_val in zip (flags_test , test_mags , skybrightness , can_offset , offset_valid ):
124155 test_flags (flag , mag , mag_limits [lunation ][waveName ], lunation , waveName ,
125- sky , offset_min_skybrightness , can_off )
156+ sky , offset_min_skybrightness , can_off , offset_val )
126157
127158 # Apogee dark
128159 offset_min_skybrightness = 1
129160 waveName = 'Apogee'
130161 lunation = 'dark'
131162 flags_test = [0 , 1 , 2 , 8 , 16 , 32 ]
132163 flags_test = [f if f == 0 else f + 64 for f in flags_test ]
164+ offset_valid = [True , True , True , False , False , False ]
133165
134166 test_mags = []
135167 test_mags .append (numpy .array ([m - 2 if m != - 999. else m for m in mag_limits [lunation ][waveName ]]))
@@ -141,9 +173,9 @@ def test_flags(flag, mag, mag_limits, lunation, waveName,
141173
142174 skybrightness = [None , None , None , 0.3 , None , None ]
143175 can_offset = [None , None , None , None , False , None ]
144- for flag , mag , sky , can_off in zip (flags_test , test_mags , skybrightness , can_offset ):
176+ for flag , mag , sky , can_off , offset_val in zip (flags_test , test_mags , skybrightness , can_offset , offset_valid ):
145177 test_flags (flag , mag , mag_limits [lunation ][waveName ], lunation , waveName ,
146- sky , offset_min_skybrightness , can_off )
178+ sky , offset_min_skybrightness , can_off , offset_val )
147179
148180 # test engineering design_mode
149181 # Boss Bright
@@ -159,7 +191,7 @@ def test_flags(flag, mag, mag_limits, lunation, waveName,
159191 can_offset = [None ]
160192 for flag , mag , sky , can_off in zip (flags_test , test_mags , skybrightness , can_offset ):
161193 test_flags (flag , mag , numpy .zeros (10 ) - 999. , lunation , waveName ,
162- sky , offset_min_skybrightness , can_off )
194+ sky , offset_min_skybrightness , can_off , True )
163195
164196 # test get combination of all flags
165197 # Boss Bright
@@ -177,7 +209,7 @@ def test_flags(flag, mag, mag_limits, lunation, waveName,
177209 can_offset = [None ]
178210 for flag , mag , sky , can_off in zip (flags_test , test_mags , skybrightness , can_offset ):
179211 test_flags (flag , mag , mag_limits [lunation ][waveName ], lunation , waveName ,
180- sky , offset_min_skybrightness , can_off )
212+ sky , offset_min_skybrightness , can_off , False )
181213
182214
183215 # test bright neighbor exclusion radius for very bright stars
0 commit comments