@@ -159,20 +159,28 @@ def test_SymmetricalLogLocator_set_params():
159
159
nose .tools .assert_equal (sym .numticks , 8 )
160
160
161
161
162
+ def _logfe_helper (formatter , base , locs , i , expected_result ):
163
+ vals = base ** locs
164
+ labels = [formatter (x , pos ) for (x , pos ) in zip (vals , i )]
165
+ nose .tools .assert_equal (labels , expected_result )
166
+
167
+
162
168
def test_LogFormatterExponent ():
163
169
class FakeAxis (object ):
164
170
"""Allow Formatter to be called without having a "full" plot set up."""
171
+ def __init__ (self , vmin = 1 , vmax = 10 ):
172
+ self .vmin = vmin
173
+ self .vmax = vmax
174
+
165
175
def get_view_interval (self ):
166
- return 1 , 10
176
+ return self . vmin , self . vmax
167
177
168
178
i = np .arange (- 3 , 4 , dtype = float )
169
179
expected_result = ['-3' , '-2' , '-1' , '0' , '1' , '2' , '3' ]
170
- for base in [2 , 5 , 10 , np .pi , np .e ]:
180
+ for base in [2 , 5.0 , 10.0 , np .pi , np .e ]:
171
181
formatter = mticker .LogFormatterExponent (base = base )
172
- formatter .axis = FakeAxis ()
173
- vals = base ** i
174
- labels = [formatter (x , pos ) for (x , pos ) in zip (vals , i )]
175
- nose .tools .assert_equal (labels , expected_result )
182
+ formatter .axis = FakeAxis (1 , base ** 4 )
183
+ yield _logfe_helper , formatter , base , i , i , expected_result
176
184
177
185
# Should be a blank string for non-integer powers if labelOnlyBase=True
178
186
formatter = mticker .LogFormatterExponent (base = 10 , labelOnlyBase = True )
@@ -185,10 +193,161 @@ def get_view_interval(self):
185
193
expected_result = ['0.1' , '1e-05' , '3.14' , '0.2' , '-0.2' , '-1e-05' ]
186
194
for base in [2 , 5 , 10 , np .pi , np .e ]:
187
195
formatter = mticker .LogFormatterExponent (base , labelOnlyBase = False )
188
- formatter .axis = FakeAxis ()
189
- vals = base ** locs
190
- labels = [formatter (x , pos ) for (x , pos ) in zip (vals , i )]
191
- nose .tools .assert_equal (labels , expected_result )
196
+ formatter .axis = FakeAxis (1 , base ** 10 )
197
+ yield _logfe_helper , formatter , base , locs , i , expected_result
198
+
199
+ expected_result = ['3' , '5' , '12' , '42' ]
200
+ locs = np .array ([3 , 5 , 12 , 42 ], dtype = 'float' )
201
+ for base in [2 , 5.0 , 10.0 , np .pi , np .e ]:
202
+ formatter = mticker .LogFormatterExponent (base , labelOnlyBase = False )
203
+ formatter .axis = FakeAxis (1 , base ** 50 )
204
+ yield _logfe_helper , formatter , base , locs , i , expected_result
205
+
206
+
207
+ def _pprint_helper (value , domain , expected ):
208
+ fmt = mticker .LogFormatter ()
209
+ label = fmt .pprint_val (value , domain )
210
+ nose .tools .assert_equal (label , expected )
211
+
212
+
213
+ def test_logformatter_pprint ():
214
+ test_cases = (
215
+ (3.141592654e-05 , 0.001 , '3.142e-5' ),
216
+ (0.0003141592654 , 0.001 , '3.142e-4' ),
217
+ (0.003141592654 , 0.001 , '3.142e-3' ),
218
+ (0.03141592654 , 0.001 , '3.142e-2' ),
219
+ (0.3141592654 , 0.001 , '3.142e-1' ),
220
+ (3.141592654 , 0.001 , '3.142' ),
221
+ (31.41592654 , 0.001 , '3.142e1' ),
222
+ (314.1592654 , 0.001 , '3.142e2' ),
223
+ (3141.592654 , 0.001 , '3.142e3' ),
224
+ (31415.92654 , 0.001 , '3.142e4' ),
225
+ (314159.2654 , 0.001 , '3.142e5' ),
226
+ (1e-05 , 0.001 , '1e-5' ),
227
+ (0.0001 , 0.001 , '1e-4' ),
228
+ (0.001 , 0.001 , '1e-3' ),
229
+ (0.01 , 0.001 , '1e-2' ),
230
+ (0.1 , 0.001 , '1e-1' ),
231
+ (1 , 0.001 , '1' ),
232
+ (10 , 0.001 , '10' ),
233
+ (100 , 0.001 , '100' ),
234
+ (1000 , 0.001 , '1000' ),
235
+ (10000 , 0.001 , '1e4' ),
236
+ (100000 , 0.001 , '1e5' ),
237
+ (3.141592654e-05 , 0.015 , '0' ),
238
+ (0.0003141592654 , 0.015 , '0' ),
239
+ (0.003141592654 , 0.015 , '0.003' ),
240
+ (0.03141592654 , 0.015 , '0.031' ),
241
+ (0.3141592654 , 0.015 , '0.314' ),
242
+ (3.141592654 , 0.015 , '3.142' ),
243
+ (31.41592654 , 0.015 , '31.416' ),
244
+ (314.1592654 , 0.015 , '314.159' ),
245
+ (3141.592654 , 0.015 , '3141.593' ),
246
+ (31415.92654 , 0.015 , '31415.927' ),
247
+ (314159.2654 , 0.015 , '314159.265' ),
248
+ (1e-05 , 0.015 , '0' ),
249
+ (0.0001 , 0.015 , '0' ),
250
+ (0.001 , 0.015 , '0.001' ),
251
+ (0.01 , 0.015 , '0.01' ),
252
+ (0.1 , 0.015 , '0.1' ),
253
+ (1 , 0.015 , '1' ),
254
+ (10 , 0.015 , '10' ),
255
+ (100 , 0.015 , '100' ),
256
+ (1000 , 0.015 , '1000' ),
257
+ (10000 , 0.015 , '10000' ),
258
+ (100000 , 0.015 , '100000' ),
259
+ (3.141592654e-05 , 0.5 , '0' ),
260
+ (0.0003141592654 , 0.5 , '0' ),
261
+ (0.003141592654 , 0.5 , '0.003' ),
262
+ (0.03141592654 , 0.5 , '0.031' ),
263
+ (0.3141592654 , 0.5 , '0.314' ),
264
+ (3.141592654 , 0.5 , '3.142' ),
265
+ (31.41592654 , 0.5 , '31.416' ),
266
+ (314.1592654 , 0.5 , '314.159' ),
267
+ (3141.592654 , 0.5 , '3141.593' ),
268
+ (31415.92654 , 0.5 , '31415.927' ),
269
+ (314159.2654 , 0.5 , '314159.265' ),
270
+ (1e-05 , 0.5 , '0' ),
271
+ (0.0001 , 0.5 , '0' ),
272
+ (0.001 , 0.5 , '0.001' ),
273
+ (0.01 , 0.5 , '0.01' ),
274
+ (0.1 , 0.5 , '0.1' ),
275
+ (1 , 0.5 , '1' ),
276
+ (10 , 0.5 , '10' ),
277
+ (100 , 0.5 , '100' ),
278
+ (1000 , 0.5 , '1000' ),
279
+ (10000 , 0.5 , '10000' ),
280
+ (100000 , 0.5 , '100000' ),
281
+ (3.141592654e-05 , 5 , '0' ),
282
+ (0.0003141592654 , 5 , '0' ),
283
+ (0.003141592654 , 5 , '0' ),
284
+ (0.03141592654 , 5 , '0.03' ),
285
+ (0.3141592654 , 5 , '0.31' ),
286
+ (3.141592654 , 5 , '3.14' ),
287
+ (31.41592654 , 5 , '31.42' ),
288
+ (314.1592654 , 5 , '314.16' ),
289
+ (3141.592654 , 5 , '3141.59' ),
290
+ (31415.92654 , 5 , '31415.93' ),
291
+ (314159.2654 , 5 , '314159.27' ),
292
+ (1e-05 , 5 , '0' ),
293
+ (0.0001 , 5 , '0' ),
294
+ (0.001 , 5 , '0' ),
295
+ (0.01 , 5 , '0.01' ),
296
+ (0.1 , 5 , '0.1' ),
297
+ (1 , 5 , '1' ),
298
+ (10 , 5 , '10' ),
299
+ (100 , 5 , '100' ),
300
+ (1000 , 5 , '1000' ),
301
+ (10000 , 5 , '10000' ),
302
+ (100000 , 5 , '100000' ),
303
+ (3.141592654e-05 , 100 , '0' ),
304
+ (0.0003141592654 , 100 , '0' ),
305
+ (0.003141592654 , 100 , '0' ),
306
+ (0.03141592654 , 100 , '0' ),
307
+ (0.3141592654 , 100 , '0.3' ),
308
+ (3.141592654 , 100 , '3.1' ),
309
+ (31.41592654 , 100 , '31.4' ),
310
+ (314.1592654 , 100 , '314.2' ),
311
+ (3141.592654 , 100 , '3141.6' ),
312
+ (31415.92654 , 100 , '31415.9' ),
313
+ (314159.2654 , 100 , '314159.3' ),
314
+ (1e-05 , 100 , '0' ),
315
+ (0.0001 , 100 , '0' ),
316
+ (0.001 , 100 , '0' ),
317
+ (0.01 , 100 , '0' ),
318
+ (0.1 , 100 , '0.1' ),
319
+ (1 , 100 , '1' ),
320
+ (10 , 100 , '10' ),
321
+ (100 , 100 , '100' ),
322
+ (1000 , 100 , '1000' ),
323
+ (10000 , 100 , '10000' ),
324
+ (100000 , 100 , '100000' ),
325
+ (3.141592654e-05 , 1000000.0 , '3.1e-5' ),
326
+ (0.0003141592654 , 1000000.0 , '3.1e-4' ),
327
+ (0.003141592654 , 1000000.0 , '3.1e-3' ),
328
+ (0.03141592654 , 1000000.0 , '3.1e-2' ),
329
+ (0.3141592654 , 1000000.0 , '3.1e-1' ),
330
+ (3.141592654 , 1000000.0 , '3.1' ),
331
+ (31.41592654 , 1000000.0 , '3.1e1' ),
332
+ (314.1592654 , 1000000.0 , '3.1e2' ),
333
+ (3141.592654 , 1000000.0 , '3.1e3' ),
334
+ (31415.92654 , 1000000.0 , '3.1e4' ),
335
+ (314159.2654 , 1000000.0 , '3.1e5' ),
336
+ (1e-05 , 1000000.0 , '1e-5' ),
337
+ (0.0001 , 1000000.0 , '1e-4' ),
338
+ (0.001 , 1000000.0 , '1e-3' ),
339
+ (0.01 , 1000000.0 , '1e-2' ),
340
+ (0.1 , 1000000.0 , '1e-1' ),
341
+ (1 , 1000000.0 , '1' ),
342
+ (10 , 1000000.0 , '10' ),
343
+ (100 , 1000000.0 , '100' ),
344
+ (1000 , 1000000.0 , '1000' ),
345
+ (10000 , 1000000.0 , '1e4' ),
346
+ (100000 , 1000000.0 , '1e5' )
347
+ )
348
+
349
+ for value , domain , expected in test_cases :
350
+ yield _pprint_helper , value , domain , expected
192
351
193
352
194
353
def test_use_offset ():
0 commit comments