|
18 | 18 | timedelta_range,
|
19 | 19 | )
|
20 | 20 | import pandas._testing as tm
|
21 |
| -from pandas.core.api import ( |
22 |
| - Float64Index, |
23 |
| - NumericIndex, |
24 |
| -) |
| 21 | +from pandas.core.api import Float64Index |
25 | 22 | import pandas.core.common as com
|
26 | 23 |
|
27 | 24 |
|
@@ -417,33 +414,33 @@ def test_maybe_convert_i8_nat(self, breaks):
|
417 | 414 | result = index._maybe_convert_i8(to_convert)
|
418 | 415 | tm.assert_index_equal(result, expected)
|
419 | 416 |
|
420 |
| - @pytest.mark.parametrize( |
421 |
| - "breaks", |
422 |
| - [np.arange(5, dtype="int64"), np.arange(5, dtype="float64")], |
423 |
| - ids=lambda x: str(x.dtype), |
424 |
| - ) |
| 417 | + def test_maybe_convert_i8_numeric(self, any_real_numpy_dtype): |
| 418 | + # GH 20636 |
| 419 | + breaks = np.arange(5, dtype=any_real_numpy_dtype) |
| 420 | + index = IntervalIndex.from_breaks(breaks) |
| 421 | + |
| 422 | + result = index._maybe_convert_i8(breaks) |
| 423 | + expected = Index(breaks) |
| 424 | + tm.assert_index_equal(result, expected) |
| 425 | + |
425 | 426 | @pytest.mark.parametrize(
|
426 | 427 | "make_key",
|
427 | 428 | [
|
428 | 429 | IntervalIndex.from_breaks,
|
429 | 430 | lambda breaks: Interval(breaks[0], breaks[1]),
|
430 |
| - lambda breaks: breaks, |
431 | 431 | lambda breaks: breaks[0],
|
432 |
| - list, |
433 | 432 | ],
|
434 |
| - ids=["IntervalIndex", "Interval", "Index", "scalar", "list"], |
| 433 | + ids=["IntervalIndex", "Interval", "scalar"], |
435 | 434 | )
|
436 |
| - def test_maybe_convert_i8_numeric(self, breaks, make_key): |
| 435 | + def test_maybe_convert_i8_numeric_identical(self, make_key, any_real_numpy_dtype): |
437 | 436 | # GH 20636
|
| 437 | + breaks = np.arange(5, dtype=any_real_numpy_dtype) |
438 | 438 | index = IntervalIndex.from_breaks(breaks)
|
439 | 439 | key = make_key(breaks)
|
440 | 440 |
|
| 441 | + # test if _maybe_convert_i8 won't change key if an Interval or IntervalIndex |
441 | 442 | result = index._maybe_convert_i8(key)
|
442 |
| - if not isinstance(result, NumericIndex): |
443 |
| - assert result is key |
444 |
| - else: |
445 |
| - expected = NumericIndex(key) |
446 |
| - tm.assert_index_equal(result, expected) |
| 443 | + assert result is key |
447 | 444 |
|
448 | 445 | @pytest.mark.parametrize(
|
449 | 446 | "breaks1, breaks2",
|
|
0 commit comments