@@ -380,6 +380,79 @@ def _create_auto_date_locator(date1, date2):
380380 assert list (map (str , mdates .num2date (locator ()))) == expected
381381
382382
383+ def test_auto_date_locator_intmult ():
384+ def _create_auto_date_locator (date1 , date2 ):
385+ locator = mdates .AutoDateLocator (interval_multiples = True )
386+ locator .create_dummy_axis ()
387+ locator .set_view_interval (mdates .date2num (date1 ),
388+ mdates .date2num (date2 ))
389+ return locator
390+
391+ d1 = datetime .datetime (1997 , 1 , 1 )
392+ results = ([datetime .timedelta (weeks = 52 * 200 ),
393+ ['1980-01-01 00:00:00+00:00' , '2000-01-01 00:00:00+00:00' ,
394+ '2020-01-01 00:00:00+00:00' , '2040-01-01 00:00:00+00:00' ,
395+ '2060-01-01 00:00:00+00:00' , '2080-01-01 00:00:00+00:00' ,
396+ '2100-01-01 00:00:00+00:00' , '2120-01-01 00:00:00+00:00' ,
397+ '2140-01-01 00:00:00+00:00' , '2160-01-01 00:00:00+00:00' ,
398+ '2180-01-01 00:00:00+00:00' , '2200-01-01 00:00:00+00:00' ]
399+ ],
400+ [datetime .timedelta (weeks = 52 ),
401+ ['1997-01-01 00:00:00+00:00' , '1997-02-01 00:00:00+00:00' ,
402+ '1997-03-01 00:00:00+00:00' , '1997-04-01 00:00:00+00:00' ,
403+ '1997-05-01 00:00:00+00:00' , '1997-06-01 00:00:00+00:00' ,
404+ '1997-07-01 00:00:00+00:00' , '1997-08-01 00:00:00+00:00' ,
405+ '1997-09-01 00:00:00+00:00' , '1997-10-01 00:00:00+00:00' ,
406+ '1997-11-01 00:00:00+00:00' , '1997-12-01 00:00:00+00:00' ]
407+ ],
408+ [datetime .timedelta (days = 141 ),
409+ ['1997-01-01 00:00:00+00:00' , '1997-01-22 00:00:00+00:00' ,
410+ '1997-02-01 00:00:00+00:00' , '1997-02-22 00:00:00+00:00' ,
411+ '1997-03-01 00:00:00+00:00' , '1997-03-22 00:00:00+00:00' ,
412+ '1997-04-01 00:00:00+00:00' , '1997-04-22 00:00:00+00:00' ,
413+ '1997-05-01 00:00:00+00:00' , '1997-05-22 00:00:00+00:00' ]
414+ ],
415+ [datetime .timedelta (days = 40 ),
416+ ['1997-01-01 00:00:00+00:00' , '1997-01-08 00:00:00+00:00' ,
417+ '1997-01-15 00:00:00+00:00' , '1997-01-22 00:00:00+00:00' ,
418+ '1997-01-29 00:00:00+00:00' , '1997-02-01 00:00:00+00:00' ,
419+ '1997-02-08 00:00:00+00:00' ]
420+ ],
421+ [datetime .timedelta (hours = 40 ),
422+ ['1997-01-01 00:00:00+00:00' , '1997-01-01 04:00:00+00:00' ,
423+ '1997-01-01 08:00:00+00:00' , '1997-01-01 12:00:00+00:00' ,
424+ '1997-01-01 16:00:00+00:00' , '1997-01-01 20:00:00+00:00' ,
425+ '1997-01-02 00:00:00+00:00' , '1997-01-02 04:00:00+00:00' ,
426+ '1997-01-02 08:00:00+00:00' , '1997-01-02 12:00:00+00:00' ,
427+ '1997-01-02 16:00:00+00:00' ]
428+ ],
429+ [datetime .timedelta (minutes = 20 ),
430+ ['1997-01-01 00:00:00+00:00' , '1997-01-01 00:05:00+00:00' ,
431+ '1997-01-01 00:10:00+00:00' , '1997-01-01 00:15:00+00:00' ,
432+ '1997-01-01 00:20:00+00:00' ]
433+ ],
434+ [datetime .timedelta (seconds = 40 ),
435+ ['1997-01-01 00:00:00+00:00' , '1997-01-01 00:00:05+00:00' ,
436+ '1997-01-01 00:00:10+00:00' , '1997-01-01 00:00:15+00:00' ,
437+ '1997-01-01 00:00:20+00:00' , '1997-01-01 00:00:25+00:00' ,
438+ '1997-01-01 00:00:30+00:00' , '1997-01-01 00:00:35+00:00' ,
439+ '1997-01-01 00:00:40+00:00' ]
440+ ],
441+ [datetime .timedelta (microseconds = 1500 ),
442+ ['1996-12-31 23:59:59.999507+00:00' ,
443+ '1997-01-01 00:00:00+00:00' ,
444+ '1997-01-01 00:00:00.000502+00:00' ,
445+ '1997-01-01 00:00:00.001005+00:00' ,
446+ '1997-01-01 00:00:00.001508+00:00' ]
447+ ],
448+ )
449+
450+ for t_delta , expected in results :
451+ d2 = d1 + t_delta
452+ locator = _create_auto_date_locator (d1 , d2 )
453+ assert list (map (str , mdates .num2date (locator ()))) == expected
454+
455+
383456@image_comparison (baseline_images = ['date_inverted_limit' ],
384457 extensions = ['png' ])
385458def test_date_inverted_limit ():
0 commit comments