@@ -34,25 +34,25 @@ def test_constructor_numeric(self, closed, name, freq, periods):
34
34
35
35
# defined from start/end/freq
36
36
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
38
38
)
39
39
tm .assert_index_equal (result , expected )
40
40
41
41
# defined from start/periods/freq
42
42
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
44
44
)
45
45
tm .assert_index_equal (result , expected )
46
46
47
47
# defined from end/periods/freq
48
48
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
50
50
)
51
51
tm .assert_index_equal (result , expected )
52
52
53
53
# GH 20976: linspace behavior defined from start/end/periods
54
54
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
56
56
)
57
57
tm .assert_index_equal (result , expected )
58
58
@@ -67,19 +67,19 @@ def test_constructor_timestamp(self, closed, name, freq, periods, tz):
67
67
68
68
# defined from start/end/freq
69
69
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
71
71
)
72
72
tm .assert_index_equal (result , expected )
73
73
74
74
# defined from start/periods/freq
75
75
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
77
77
)
78
78
tm .assert_index_equal (result , expected )
79
79
80
80
# defined from end/periods/freq
81
81
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
83
83
)
84
84
tm .assert_index_equal (result , expected )
85
85
@@ -88,7 +88,7 @@ def test_constructor_timestamp(self, closed, name, freq, periods, tz):
88
88
# matches expected only for non-anchored offsets and tz naive
89
89
# (anchored/DST transitions cause unequal spacing in expected)
90
90
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
92
92
)
93
93
tm .assert_index_equal (result , expected )
94
94
@@ -102,25 +102,25 @@ def test_constructor_timedelta(self, closed, name, freq, periods):
102
102
103
103
# defined from start/end/freq
104
104
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
106
106
)
107
107
tm .assert_index_equal (result , expected )
108
108
109
109
# defined from start/periods/freq
110
110
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
112
112
)
113
113
tm .assert_index_equal (result , expected )
114
114
115
115
# defined from end/periods/freq
116
116
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
118
118
)
119
119
tm .assert_index_equal (result , expected )
120
120
121
121
# GH 20976: linspace behavior defined from start/end/periods
122
122
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
124
124
)
125
125
tm .assert_index_equal (result , expected )
126
126
@@ -163,7 +163,9 @@ def test_no_invalid_float_truncation(self, start, end, freq):
163
163
breaks = [0.5 , 2.0 , 3.5 , 5.0 , 6.5 ]
164
164
expected = IntervalIndex .from_breaks (breaks )
165
165
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
+ )
167
169
tm .assert_index_equal (result , expected )
168
170
169
171
@pytest .mark .parametrize (
@@ -184,7 +186,7 @@ def test_no_invalid_float_truncation(self, start, end, freq):
184
186
def test_linspace_dst_transition (self , start , mid , end ):
185
187
# GH 20976: linspace behavior defined from start/end/periods
186
188
# 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" )
188
190
expected = IntervalIndex .from_breaks ([start , mid , end ])
189
191
tm .assert_index_equal (result , expected )
190
192
@@ -353,3 +355,17 @@ def test_errors(self):
353
355
msg = "Start and end cannot both be tz-aware with different timezones"
354
356
with pytest .raises (TypeError , match = msg ):
355
357
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