@@ -477,13 +477,37 @@ def test_range_closed(self):
477
477
closed = date_range (begin , end , closed = None , freq = freq )
478
478
left = date_range (begin , end , closed = "left" , freq = freq )
479
479
right = date_range (begin , end , closed = "right" , freq = freq )
480
+ expected_left = left
481
+ expected_right = right
480
482
481
- expected_left = closed [:- 1 ]
482
- expected_right = closed [1 :]
483
+ if end == closed [- 1 ]:
484
+ expected_left = closed [:- 1 ]
485
+ if begin == closed [0 ]:
486
+ expected_right = closed [1 :]
483
487
484
488
self .assertTrue (expected_left .equals (left ))
485
489
self .assertTrue (expected_right .equals (right ))
486
490
491
+ def test_range_closed_boundary (self ):
492
+ # GH 11804
493
+ for closed in ['right' , 'left' , None ]:
494
+ right_boundary = date_range ('2015-09-12' , '2015-12-01' , freq = 'QS-MAR' , closed = closed )
495
+ left_boundary = date_range ('2015-09-01' , '2015-09-12' , freq = 'QS-MAR' , closed = closed )
496
+ both_boundary = date_range ('2015-09-01' , '2015-12-01' , freq = 'QS-MAR' , closed = closed )
497
+ expected_right = expected_left = expected_both = both_boundary
498
+
499
+ if closed == 'right' :
500
+ expected_left = both_boundary [1 :]
501
+ if closed == 'left' :
502
+ expected_right = both_boundary [:- 1 ]
503
+ if closed is None :
504
+ expected_right = both_boundary [1 :]
505
+ expected_left = both_boundary [:- 1 ]
506
+
507
+ self .assertTrue (right_boundary .equals (expected_right ))
508
+ self .assertTrue (left_boundary .equals (expected_left ))
509
+ self .assertTrue (both_boundary .equals (expected_both ))
510
+
487
511
def test_years_only (self ):
488
512
# GH 6961
489
513
dr = date_range ('2014' , '2015' , freq = 'M' )
0 commit comments