Skip to content

Commit b286300

Browse files
TST: ensuring bins in cut during tiling are predictably small
1 parent 94c7e88 commit b286300

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

pandas/tests/reshape/test_cut.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,31 @@ def test_single_bin(data, length):
410410
tm.assert_series_equal(result, expected)
411411

412412

413+
def test_single_bin_edge_adjustment():
414+
# gh-58517 - test edge adjustment when all values are the same
415+
# mutation on _nbins_to_bins
416+
data = [0.1, 0.1, 0.1]
417+
result, bins = cut(data, 3, retbins=True)
418+
419+
# mutation would create large bin sizes
420+
bin_range = bins[-1] - bins[0]
421+
assert bin_range < 0.001
422+
423+
# Test negative values
424+
data_neg = [-0.1, -0.1, -0.1]
425+
result_neg, bins_neg = cut(data_neg, 3, retbins=True)
426+
427+
bin_range_neg = bins_neg[-1] - bins_neg[0]
428+
assert bin_range_neg < 0.001
429+
430+
# Test very small values
431+
data_tiny = [0.01, 0.01, 0.01]
432+
result_tiny, bins_tiny = cut(data_tiny, 3, retbins=True)
433+
434+
bin_range_tiny = bins_tiny[-1] - bins_tiny[0]
435+
assert bin_range_tiny < 0.0001
436+
437+
413438
@pytest.mark.parametrize(
414439
"array_1_writeable,array_2_writeable", [(True, True), (True, False), (False, False)]
415440
)

0 commit comments

Comments
 (0)