@@ -34,25 +34,25 @@ def test_constructor_numeric(self, closed, name, freq, periods):
3434
3535 # defined from start/end/freq
3636 result = interval_range (
37- start = start , end = end , freq = freq , name = name , closed = closed
37+ start = start , end = end , freq = freq , name = name , inclusive = closed
3838 )
3939 tm .assert_index_equal (result , expected )
4040
4141 # defined from start/periods/freq
4242 result = interval_range (
43- start = start , periods = periods , freq = freq , name = name , closed = closed
43+ start = start , periods = periods , freq = freq , name = name , inclusive = closed
4444 )
4545 tm .assert_index_equal (result , expected )
4646
4747 # defined from end/periods/freq
4848 result = interval_range (
49- end = end , periods = periods , freq = freq , name = name , closed = closed
49+ end = end , periods = periods , freq = freq , name = name , inclusive = closed
5050 )
5151 tm .assert_index_equal (result , expected )
5252
5353 # GH 20976: linspace behavior defined from start/end/periods
5454 result = interval_range (
55- start = start , end = end , periods = periods , name = name , closed = closed
55+ start = start , end = end , periods = periods , name = name , inclusive = closed
5656 )
5757 tm .assert_index_equal (result , expected )
5858
@@ -67,19 +67,19 @@ def test_constructor_timestamp(self, closed, name, freq, periods, tz):
6767
6868 # defined from start/end/freq
6969 result = interval_range (
70- start = start , end = end , freq = freq , name = name , closed = closed
70+ start = start , end = end , freq = freq , name = name , inclusive = closed
7171 )
7272 tm .assert_index_equal (result , expected )
7373
7474 # defined from start/periods/freq
7575 result = interval_range (
76- start = start , periods = periods , freq = freq , name = name , closed = closed
76+ start = start , periods = periods , freq = freq , name = name , inclusive = closed
7777 )
7878 tm .assert_index_equal (result , expected )
7979
8080 # defined from end/periods/freq
8181 result = interval_range (
82- end = end , periods = periods , freq = freq , name = name , closed = closed
82+ end = end , periods = periods , freq = freq , name = name , inclusive = closed
8383 )
8484 tm .assert_index_equal (result , expected )
8585
@@ -88,7 +88,7 @@ def test_constructor_timestamp(self, closed, name, freq, periods, tz):
8888 # matches expected only for non-anchored offsets and tz naive
8989 # (anchored/DST transitions cause unequal spacing in expected)
9090 result = interval_range (
91- start = start , end = end , periods = periods , name = name , closed = closed
91+ start = start , end = end , periods = periods , name = name , inclusive = closed
9292 )
9393 tm .assert_index_equal (result , expected )
9494
@@ -102,25 +102,25 @@ def test_constructor_timedelta(self, closed, name, freq, periods):
102102
103103 # defined from start/end/freq
104104 result = interval_range (
105- start = start , end = end , freq = freq , name = name , closed = closed
105+ start = start , end = end , freq = freq , name = name , inclusive = closed
106106 )
107107 tm .assert_index_equal (result , expected )
108108
109109 # defined from start/periods/freq
110110 result = interval_range (
111- start = start , periods = periods , freq = freq , name = name , closed = closed
111+ start = start , periods = periods , freq = freq , name = name , inclusive = closed
112112 )
113113 tm .assert_index_equal (result , expected )
114114
115115 # defined from end/periods/freq
116116 result = interval_range (
117- end = end , periods = periods , freq = freq , name = name , closed = closed
117+ end = end , periods = periods , freq = freq , name = name , inclusive = closed
118118 )
119119 tm .assert_index_equal (result , expected )
120120
121121 # GH 20976: linspace behavior defined from start/end/periods
122122 result = interval_range (
123- start = start , end = end , periods = periods , name = name , closed = closed
123+ start = start , end = end , periods = periods , name = name , inclusive = closed
124124 )
125125 tm .assert_index_equal (result , expected )
126126
@@ -163,7 +163,9 @@ def test_no_invalid_float_truncation(self, start, end, freq):
163163 breaks = [0.5 , 2.0 , 3.5 , 5.0 , 6.5 ]
164164 expected = IntervalIndex .from_breaks (breaks )
165165
166- result = interval_range (start = start , end = end , periods = 4 , freq = freq )
166+ result = interval_range (
167+ start = start , end = end , periods = 4 , freq = freq , inclusive = "right"
168+ )
167169 tm .assert_index_equal (result , expected )
168170
169171 @pytest .mark .parametrize (
@@ -184,7 +186,7 @@ def test_no_invalid_float_truncation(self, start, end, freq):
184186 def test_linspace_dst_transition (self , start , mid , end ):
185187 # GH 20976: linspace behavior defined from start/end/periods
186188 # accounts for the hour gained/lost during DST transition
187- result = interval_range (start = start , end = end , periods = 2 )
189+ result = interval_range (start = start , end = end , periods = 2 , inclusive = "right" )
188190 expected = IntervalIndex .from_breaks ([start , mid , end ])
189191 tm .assert_index_equal (result , expected )
190192
@@ -353,3 +355,17 @@ def test_errors(self):
353355 msg = "Start and end cannot both be tz-aware with different timezones"
354356 with pytest .raises (TypeError , match = msg ):
355357 interval_range (start = start , end = end )
358+
359+ def test_interval_range_error_and_warning (self ):
360+ # GH 40245
361+
362+ msg = (
363+ "Deprecated argument `closed` cannot "
364+ "be passed if argument `inclusive` is not None"
365+ )
366+ with pytest .raises (ValueError , match = msg ):
367+ interval_range (end = 5 , periods = 4 , closed = "both" , inclusive = "both" )
368+
369+ msg = "Argument `closed` is deprecated in favor of `inclusive`"
370+ with tm .assert_produces_warning (FutureWarning , match = msg ):
371+ interval_range (end = 5 , periods = 4 , closed = "right" )
0 commit comments