@@ -406,7 +406,6 @@ def _create_auto_date_locator(date1, date2):
406
406
mdates .date2num (date2 ))
407
407
return locator
408
408
409
- d1 = datetime .datetime (1997 , 1 , 1 )
410
409
results = ([datetime .timedelta (weeks = 52 * 200 ),
411
410
['1980-01-01 00:00:00+00:00' , '2000-01-01 00:00:00+00:00' ,
412
411
'2020-01-01 00:00:00+00:00' , '2040-01-01 00:00:00+00:00' ,
@@ -467,12 +466,86 @@ def _create_auto_date_locator(date1, date2):
467
466
],
468
467
)
469
468
469
+ d1 = datetime .datetime (1997 , 1 , 1 )
470
470
for t_delta , expected in results :
471
471
d2 = d1 + t_delta
472
472
locator = _create_auto_date_locator (d1 , d2 )
473
473
assert list (map (str , mdates .num2date (locator ()))) == expected
474
474
475
475
476
+ @pytest .mark .pytz
477
+ @pytest .mark .skipif (not __has_pytz (), reason = "Requires pytz" )
478
+ def test_auto_date_locator_intmult_tz ():
479
+ import pytz
480
+
481
+ def _create_auto_date_locator (date1 , date2 ):
482
+ locator = mdates .AutoDateLocator (interval_multiples = True , tz = tz )
483
+ locator .create_dummy_axis ()
484
+ locator .set_view_interval (mdates .date2num (date1 ),
485
+ mdates .date2num (date2 ))
486
+ return locator
487
+
488
+ results = ([datetime .timedelta (weeks = 52 * 200 ),
489
+ ['1980-01-01 00:00:00-08:00' , '2000-01-01 00:00:00-08:00' ,
490
+ '2020-01-01 00:00:00-08:00' , '2040-01-01 00:00:00-08:00' ,
491
+ '2060-01-01 00:00:00-08:00' , '2080-01-01 00:00:00-08:00' ,
492
+ '2100-01-01 00:00:00-08:00' , '2120-01-01 00:00:00-08:00' ,
493
+ '2140-01-01 00:00:00-08:00' , '2160-01-01 00:00:00-08:00' ,
494
+ '2180-01-01 00:00:00-08:00' , '2200-01-01 00:00:00-08:00' ]
495
+ ],
496
+ [datetime .timedelta (weeks = 52 ),
497
+ ['1997-01-01 00:00:00-08:00' , '1997-02-01 00:00:00-08:00' ,
498
+ '1997-03-01 00:00:00-08:00' , '1997-04-01 00:00:00-08:00' ,
499
+ '1997-05-01 00:00:00-07:00' , '1997-06-01 00:00:00-07:00' ,
500
+ '1997-07-01 00:00:00-07:00' , '1997-08-01 00:00:00-07:00' ,
501
+ '1997-09-01 00:00:00-07:00' , '1997-10-01 00:00:00-07:00' ,
502
+ '1997-11-01 00:00:00-08:00' , '1997-12-01 00:00:00-08:00' ]
503
+ ],
504
+ [datetime .timedelta (days = 141 ),
505
+ ['1997-01-01 00:00:00-08:00' , '1997-01-22 00:00:00-08:00' ,
506
+ '1997-02-01 00:00:00-08:00' , '1997-02-22 00:00:00-08:00' ,
507
+ '1997-03-01 00:00:00-08:00' , '1997-03-22 00:00:00-08:00' ,
508
+ '1997-04-01 00:00:00-08:00' , '1997-04-22 00:00:00-07:00' ,
509
+ '1997-05-01 00:00:00-07:00' , '1997-05-22 00:00:00-07:00' ]
510
+ ],
511
+ [datetime .timedelta (days = 40 ),
512
+ ['1997-01-01 00:00:00-08:00' , '1997-01-05 00:00:00-08:00' ,
513
+ '1997-01-09 00:00:00-08:00' , '1997-01-13 00:00:00-08:00' ,
514
+ '1997-01-17 00:00:00-08:00' , '1997-01-21 00:00:00-08:00' ,
515
+ '1997-01-25 00:00:00-08:00' , '1997-01-29 00:00:00-08:00' ,
516
+ '1997-02-01 00:00:00-08:00' , '1997-02-05 00:00:00-08:00' ,
517
+ '1997-02-09 00:00:00-08:00' ]
518
+ ],
519
+ [datetime .timedelta (hours = 40 ),
520
+ ['1997-01-01 00:00:00-08:00' , '1997-01-01 04:00:00-08:00' ,
521
+ '1997-01-01 08:00:00-08:00' , '1997-01-01 12:00:00-08:00' ,
522
+ '1997-01-01 16:00:00-08:00' , '1997-01-01 20:00:00-08:00' ,
523
+ '1997-01-02 00:00:00-08:00' , '1997-01-02 04:00:00-08:00' ,
524
+ '1997-01-02 08:00:00-08:00' , '1997-01-02 12:00:00-08:00' ,
525
+ '1997-01-02 16:00:00-08:00' ]
526
+ ],
527
+ [datetime .timedelta (minutes = 20 ),
528
+ ['1997-01-01 00:00:00-08:00' , '1997-01-01 00:05:00-08:00' ,
529
+ '1997-01-01 00:10:00-08:00' , '1997-01-01 00:15:00-08:00' ,
530
+ '1997-01-01 00:20:00-08:00' ]
531
+ ],
532
+ [datetime .timedelta (seconds = 40 ),
533
+ ['1997-01-01 00:00:00-08:00' , '1997-01-01 00:00:05-08:00' ,
534
+ '1997-01-01 00:00:10-08:00' , '1997-01-01 00:00:15-08:00' ,
535
+ '1997-01-01 00:00:20-08:00' , '1997-01-01 00:00:25-08:00' ,
536
+ '1997-01-01 00:00:30-08:00' , '1997-01-01 00:00:35-08:00' ,
537
+ '1997-01-01 00:00:40-08:00' ]
538
+ ]
539
+ )
540
+
541
+ tz = pytz .timezone ('US/Pacific' )
542
+ d1 = datetime .datetime (1997 , 1 , 1 ).astimezone (tz )
543
+ for t_delta , expected in results :
544
+ d2 = d1 + t_delta
545
+ locator = _create_auto_date_locator (d1 , d2 )
546
+ assert list (map (str , mdates .num2date (locator (), tz = tz ))) == expected
547
+
548
+
476
549
@image_comparison (baseline_images = ['date_inverted_limit' ],
477
550
extensions = ['png' ])
478
551
def test_date_inverted_limit ():
0 commit comments