@@ -230,26 +230,20 @@ def test_range_index_sel() -> None:
230230 actual = ds .sel (x = slice (0.12 , 0.28 ), method = "nearest" )
231231 expected = ds .isel (x = slice (1 , 4 ))
232232 assert_identical (actual , expected , check_default_indexes = False , check_indexes = True )
233+ assert isinstance (actual .xindexes ["x" ], RangeIndex )
233234
234235 # start-stop-step slice
235236 actual = ds .sel (x = slice (0.0 , 1.0 , 0.2 ), method = "nearest" )
236237 expected = ds .isel (x = range (0 , 10 , 2 ))
237238 assert_identical (actual , expected , check_default_indexes = False , check_indexes = True )
238239
239- # slice selection should match equivalent isel
240- actual = ds .sel (x = slice (0.2 , 0.7 ), method = "nearest" )
241- expected = ds .isel (x = slice (2 , 8 ))
242- assert_identical (actual , expected , check_default_indexes = False , check_indexes = True )
243- assert isinstance (actual .xindexes ["x" ], RangeIndex )
244-
245240 # values near boundaries should round correctly (0.79999 -> 0.8)
246241 actual = ds .sel (x = slice (0.2 , 0.79999 ), method = "nearest" )
247242 expected = ds .isel (x = slice (2 , 9 )) # 0.79999 rounds to position 8, +1 = 9
248243 assert_identical (actual , expected , check_default_indexes = False , check_indexes = True )
249244
250245 # default method (no method parameter) uses ceil/floor
251246 # slice(0.2, 0.7): ceil(2.0) = 2, floor(7.0) = 7, +1 = 8
252- # Note: RangeIndex handles floating point precision correctly (includes 0.7)
253247 actual = ds .sel (x = slice (0.2 , 0.7 ))
254248 expected = ds .isel (x = slice (2 , 8 ))
255249 assert_identical (actual , expected , check_default_indexes = False , check_indexes = True )
0 commit comments