@@ -164,48 +164,43 @@ def test_ScalarFormatter_offset_value():
164
164
fig , ax = plt .subplots ()
165
165
formatter = ax .get_xaxis ().get_major_formatter ()
166
166
167
- def update_ticks (ax ):
168
- return next (ax .get_xaxis ().iter_ticks ())
169
-
170
- ax .set_xlim (123 , 189 )
171
- update_ticks (ax )
172
- assert_equal (formatter .offset , 0 )
173
-
174
- ax .set_xlim (- 189 , - 123 )
175
- update_ticks (ax )
176
- assert_equal (formatter .offset , 0 )
177
-
178
- ax .set_xlim (12341 , 12349 )
179
- update_ticks (ax )
180
- assert_equal (formatter .offset , 12340 )
181
-
182
- ax .set_xlim (- 12349 , - 12341 )
183
- update_ticks (ax )
184
- assert_equal (formatter .offset , - 12340 )
185
-
186
- ax .set_xlim (99999.5 , 100010.5 )
187
- update_ticks (ax )
188
- assert_equal (formatter .offset , 100000 )
189
-
190
- ax .set_xlim (- 100010.5 , - 99999.5 )
191
- update_ticks (ax )
192
- assert_equal (formatter .offset , - 100000 )
193
-
194
- ax .set_xlim (99990.5 , 100000.5 )
195
- update_ticks (ax )
196
- assert_equal (formatter .offset , 100000 )
197
-
198
- ax .set_xlim (- 100000.5 , - 99990.5 )
199
- update_ticks (ax )
200
- assert_equal (formatter .offset , - 100000 )
201
-
202
- ax .set_xlim (1233999 , 1234001 )
203
- update_ticks (ax )
204
- assert_equal (formatter .offset , 1234000 )
205
-
206
- ax .set_xlim (- 1234001 , - 1233999 )
207
- update_ticks (ax )
208
- assert_equal (formatter .offset , - 1234000 )
167
+ def check_offset_for (left , right , offset ):
168
+ ax .set_xlim (left , right )
169
+ # Update ticks.
170
+ next (ax .get_xaxis ().iter_ticks ())
171
+ assert_equal (formatter .offset , offset )
172
+
173
+ test_data = [(123 , 189 , 0 ),
174
+ (- 189 , - 123 , 0 ),
175
+ (12341 , 12349 , 12340 ),
176
+ (- 12349 , - 12341 , - 12340 ),
177
+ (99999.5 , 100010.5 , 100000 ),
178
+ (- 100010.5 , - 99999.5 , - 100000 ),
179
+ (99990.5 , 100000.5 , 100000 ),
180
+ (- 100000.5 , - 99990.5 , - 100000 ),
181
+ (1233999 , 1234001 , 1234000 ),
182
+ (- 1234001 , - 1233999 , - 1234000 ),
183
+ # Test cases courtesy of @WeatherGod
184
+ (.4538 , .4578 , .45 ),
185
+ (3789.12 , 3783.1 , 3780 ),
186
+ (45124.3 , 45831.75 , 45000 ),
187
+ (0.000721 , 0.0007243 , 0.00072 ),
188
+ (12592.82 , 12591.43 , 12590 ),
189
+ (9. , 12. , 0 ),
190
+ (900. , 1200. , 0 ),
191
+ (1900. , 1200. , 0 ),
192
+ (0.99 , 1.01 , 1 ),
193
+ (9.99 , 10.01 , 10 ),
194
+ (99.99 , 100.01 , 100 ),
195
+ (5.99 , 6.01 , 6 ),
196
+ (15.99 , 16.01 , 16 ),
197
+ (- 0.452 , 0.492 , 0 ),
198
+ (- 0.492 , 0.492 , 0 ),
199
+ (12331.4 , 12350.5 , 12300 ),
200
+ (- 12335.3 , 12335.3 , 0 )]
201
+
202
+ for left , right , offset in test_data :
203
+ yield check_offset_for , left , right , offset
209
204
210
205
211
206
def _logfe_helper (formatter , base , locs , i , expected_result ):
0 commit comments