Skip to content

Commit 1311add

Browse files
committed
CLN: additional tests for qcut with duplicates
1 parent 8051d61 commit 1311add

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

pandas/tools/tests/test_tile.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -272,18 +272,20 @@ def test_series_retbins(self):
272272
np.array([0, 0, 1, 1], dtype=np.int8))
273273
tm.assert_numpy_array_equal(bins, np.array([0, 1.5, 3]))
274274

275-
def test_qcut_duplicates_drop(self):
275+
def test_qcut_duplicates_bin(self):
276276
# GH 7751
277277
values = [0, 0, 0, 0, 1, 2, 3]
278+
result_levels = ['[0, 1]', '(1, 3]']
279+
278280
cats = qcut(values, 3, duplicates='drop')
279-
ex_levels = ['[0, 1]', '(1, 3]']
280-
self.assertTrue((cats.categories == ex_levels).all())
281+
self.assertTrue((cats.categories == result_levels).all())
281282

282-
def test_qcut_duplicates_raise(self):
283-
# GH 7751
284-
values = [0, 0, 0, 0, 1, 2, 3]
283+
self.assertRaises(ValueError, qcut, values, 3)
285284
self.assertRaises(ValueError, qcut, values, 3, duplicates='raise')
286285

286+
# invalid
287+
self.assertRaises(ValueError, qcut, values, 3, duplicates='foo')
288+
287289
def test_single_bin(self):
288290
# issue 14652
289291
expected = Series([0, 0])

pandas/tools/tile.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -208,9 +208,9 @@ def _bins_to_cuts(x, bins, right=True, labels=None,
208208
unique_bins = algos.unique(bins)
209209
if len(unique_bins) < len(bins):
210210
if duplicates == 'raise':
211-
raise ValueError("Bin edges must be unique: {}. You "
211+
raise ValueError("Bin edges must be unique: {}.\nYou "
212212
"can drop duplicate edges by setting "
213-
"'duplicates' param".format(repr(bins)))
213+
"the 'duplicates' kwarg".format(repr(bins)))
214214
else:
215215
bins = unique_bins
216216

0 commit comments

Comments
 (0)