Skip to content

Commit 92fd46c

Browse files
topper-123jreback
authored andcommitted
TST: hasnans + stricter uniqueness tests (#23294)
1 parent 4a11eac commit 92fd46c

File tree

10 files changed

+68
-68
lines changed

10 files changed

+68
-68
lines changed

pandas/tests/indexes/common.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -353,8 +353,8 @@ def test_has_duplicates(self, indices):
353353
pytest.skip('Skip check for empty Index and MultiIndex')
354354

355355
idx = self._holder([indices[0]] * 5)
356-
assert not idx.is_unique
357-
assert idx.has_duplicates
356+
assert idx.is_unique is False
357+
assert idx.has_duplicates is True
358358

359359
@pytest.mark.parametrize('keep', ['first', 'last', False])
360360
def test_duplicated(self, indices, keep):
@@ -414,7 +414,7 @@ def test_get_unique_index(self, indices):
414414

415415
# We test against `idx_unique`, so first we make sure it's unique
416416
# and doesn't contain nans.
417-
assert idx_unique.is_unique
417+
assert idx_unique.is_unique is True
418418
try:
419419
assert not idx_unique.hasnans
420420
except NotImplementedError:
@@ -438,7 +438,7 @@ def test_get_unique_index(self, indices):
438438
vals_unique = vals[:2]
439439
idx_nan = indices._shallow_copy(vals)
440440
idx_unique_nan = indices._shallow_copy(vals_unique)
441-
assert idx_unique_nan.is_unique
441+
assert idx_unique_nan.is_unique is True
442442

443443
assert idx_nan.dtype == indices.dtype
444444
assert idx_unique_nan.dtype == indices.dtype

pandas/tests/indexes/interval/test_interval.py

+46-46
Original file line numberDiff line numberDiff line change
@@ -243,108 +243,108 @@ def test_unique(self, closed):
243243
# unique non-overlapping
244244
idx = IntervalIndex.from_tuples(
245245
[(0, 1), (2, 3), (4, 5)], closed=closed)
246-
assert idx.is_unique
246+
assert idx.is_unique is True
247247

248248
# unique overlapping - distinct endpoints
249249
idx = IntervalIndex.from_tuples([(0, 1), (0.5, 1.5)], closed=closed)
250-
assert idx.is_unique
250+
assert idx.is_unique is True
251251

252252
# unique overlapping - shared endpoints
253253
idx = pd.IntervalIndex.from_tuples(
254254
[(1, 2), (1, 3), (2, 3)], closed=closed)
255-
assert idx.is_unique
255+
assert idx.is_unique is True
256256

257257
# unique nested
258258
idx = IntervalIndex.from_tuples([(-1, 1), (-2, 2)], closed=closed)
259-
assert idx.is_unique
259+
assert idx.is_unique is True
260260

261261
# duplicate
262262
idx = IntervalIndex.from_tuples(
263263
[(0, 1), (0, 1), (2, 3)], closed=closed)
264-
assert not idx.is_unique
264+
assert idx.is_unique is False
265265

266266
# empty
267267
idx = IntervalIndex([], closed=closed)
268-
assert idx.is_unique
268+
assert idx.is_unique is True
269269

270270
def test_monotonic(self, closed):
271271
# increasing non-overlapping
272272
idx = IntervalIndex.from_tuples(
273273
[(0, 1), (2, 3), (4, 5)], closed=closed)
274-
assert idx.is_monotonic
275-
assert idx._is_strictly_monotonic_increasing
276-
assert not idx.is_monotonic_decreasing
277-
assert not idx._is_strictly_monotonic_decreasing
274+
assert idx.is_monotonic is True
275+
assert idx._is_strictly_monotonic_increasing is True
276+
assert idx.is_monotonic_decreasing is False
277+
assert idx._is_strictly_monotonic_decreasing is False
278278

279279
# decreasing non-overlapping
280280
idx = IntervalIndex.from_tuples(
281281
[(4, 5), (2, 3), (1, 2)], closed=closed)
282-
assert not idx.is_monotonic
283-
assert not idx._is_strictly_monotonic_increasing
284-
assert idx.is_monotonic_decreasing
285-
assert idx._is_strictly_monotonic_decreasing
282+
assert idx.is_monotonic is False
283+
assert idx._is_strictly_monotonic_increasing is False
284+
assert idx.is_monotonic_decreasing is True
285+
assert idx._is_strictly_monotonic_decreasing is True
286286

287287
# unordered non-overlapping
288288
idx = IntervalIndex.from_tuples(
289289
[(0, 1), (4, 5), (2, 3)], closed=closed)
290-
assert not idx.is_monotonic
291-
assert not idx._is_strictly_monotonic_increasing
292-
assert not idx.is_monotonic_decreasing
293-
assert not idx._is_strictly_monotonic_decreasing
290+
assert idx.is_monotonic is False
291+
assert idx._is_strictly_monotonic_increasing is False
292+
assert idx.is_monotonic_decreasing is False
293+
assert idx._is_strictly_monotonic_decreasing is False
294294

295295
# increasing overlapping
296296
idx = IntervalIndex.from_tuples(
297297
[(0, 2), (0.5, 2.5), (1, 3)], closed=closed)
298-
assert idx.is_monotonic
299-
assert idx._is_strictly_monotonic_increasing
300-
assert not idx.is_monotonic_decreasing
301-
assert not idx._is_strictly_monotonic_decreasing
298+
assert idx.is_monotonic is True
299+
assert idx._is_strictly_monotonic_increasing is True
300+
assert idx.is_monotonic_decreasing is False
301+
assert idx._is_strictly_monotonic_decreasing is False
302302

303303
# decreasing overlapping
304304
idx = IntervalIndex.from_tuples(
305305
[(1, 3), (0.5, 2.5), (0, 2)], closed=closed)
306-
assert not idx.is_monotonic
307-
assert not idx._is_strictly_monotonic_increasing
308-
assert idx.is_monotonic_decreasing
309-
assert idx._is_strictly_monotonic_decreasing
306+
assert idx.is_monotonic is False
307+
assert idx._is_strictly_monotonic_increasing is False
308+
assert idx.is_monotonic_decreasing is True
309+
assert idx._is_strictly_monotonic_decreasing is True
310310

311311
# unordered overlapping
312312
idx = IntervalIndex.from_tuples(
313313
[(0.5, 2.5), (0, 2), (1, 3)], closed=closed)
314-
assert not idx.is_monotonic
315-
assert not idx._is_strictly_monotonic_increasing
316-
assert not idx.is_monotonic_decreasing
317-
assert not idx._is_strictly_monotonic_decreasing
314+
assert idx.is_monotonic is False
315+
assert idx._is_strictly_monotonic_increasing is False
316+
assert idx.is_monotonic_decreasing is False
317+
assert idx._is_strictly_monotonic_decreasing is False
318318

319319
# increasing overlapping shared endpoints
320320
idx = pd.IntervalIndex.from_tuples(
321321
[(1, 2), (1, 3), (2, 3)], closed=closed)
322-
assert idx.is_monotonic
323-
assert idx._is_strictly_monotonic_increasing
324-
assert not idx.is_monotonic_decreasing
325-
assert not idx._is_strictly_monotonic_decreasing
322+
assert idx.is_monotonic is True
323+
assert idx._is_strictly_monotonic_increasing is True
324+
assert idx.is_monotonic_decreasing is False
325+
assert idx._is_strictly_monotonic_decreasing is False
326326

327327
# decreasing overlapping shared endpoints
328328
idx = pd.IntervalIndex.from_tuples(
329329
[(2, 3), (1, 3), (1, 2)], closed=closed)
330-
assert not idx.is_monotonic
331-
assert not idx._is_strictly_monotonic_increasing
332-
assert idx.is_monotonic_decreasing
333-
assert idx._is_strictly_monotonic_decreasing
330+
assert idx.is_monotonic is False
331+
assert idx._is_strictly_monotonic_increasing is False
332+
assert idx.is_monotonic_decreasing is True
333+
assert idx._is_strictly_monotonic_decreasing is True
334334

335335
# stationary
336336
idx = IntervalIndex.from_tuples([(0, 1), (0, 1)], closed=closed)
337-
assert idx.is_monotonic
338-
assert not idx._is_strictly_monotonic_increasing
339-
assert idx.is_monotonic_decreasing
340-
assert not idx._is_strictly_monotonic_decreasing
337+
assert idx.is_monotonic is True
338+
assert idx._is_strictly_monotonic_increasing is False
339+
assert idx.is_monotonic_decreasing is True
340+
assert idx._is_strictly_monotonic_decreasing is False
341341

342342
# empty
343343
idx = IntervalIndex([], closed=closed)
344-
assert idx.is_monotonic
345-
assert idx._is_strictly_monotonic_increasing
346-
assert idx.is_monotonic_decreasing
347-
assert idx._is_strictly_monotonic_decreasing
344+
assert idx.is_monotonic is True
345+
assert idx._is_strictly_monotonic_increasing is True
346+
assert idx.is_monotonic_decreasing is True
347+
assert idx._is_strictly_monotonic_decreasing is True
348348

349349
@pytest.mark.skip(reason='not a valid repr as we use interval notation')
350350
def test_repr(self):

pandas/tests/indexes/multi/test_duplicates.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -131,16 +131,16 @@ def test_duplicate_meta_data():
131131

132132
def test_has_duplicates(idx, idx_dup):
133133
# see fixtures
134-
assert idx.is_unique
135-
assert not idx.has_duplicates
136-
assert not idx_dup.is_unique
137-
assert idx_dup.has_duplicates
134+
assert idx.is_unique is True
135+
assert idx.has_duplicates is False
136+
assert idx_dup.is_unique is False
137+
assert idx_dup.has_duplicates is True
138138

139139
mi = MultiIndex(levels=[[0, 1], [0, 1, 2]],
140140
labels=[[0, 0, 0, 0, 1, 1, 1],
141141
[0, 1, 2, 0, 0, 1, 2]])
142-
assert not mi.is_unique
143-
assert mi.has_duplicates
142+
assert mi.is_unique is False
143+
assert mi.has_duplicates is True
144144

145145

146146
def test_has_duplicates_from_tuples():

pandas/tests/indexes/multi/test_integrity.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ def test_consistency():
110110
index = MultiIndex(levels=[major_axis, minor_axis],
111111
labels=[major_labels, minor_labels])
112112

113-
assert not index.is_unique
113+
assert index.is_unique is False
114114

115115

116116
def test_hash_collisions():

pandas/tests/indexing/test_loc.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -676,15 +676,15 @@ def gen_expected(df, mask):
676676
df.take(mask[1:])])
677677

678678
df = gen_test(900, 100)
679-
assert not df.index.is_unique
679+
assert df.index.is_unique is False
680680

681681
mask = np.arange(100)
682682
result = df.loc[mask]
683683
expected = gen_expected(df, mask)
684684
tm.assert_frame_equal(result, expected)
685685

686686
df = gen_test(900000, 100000)
687-
assert not df.index.is_unique
687+
assert df.index.is_unique is False
688688

689689
mask = np.arange(100000)
690690
result = df.loc[mask]

pandas/tests/series/indexing/test_indexing.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ def test_set_value(test_data):
387387
def test_setslice(test_data):
388388
sl = test_data.ts[5:20]
389389
assert len(sl) == len(sl.index)
390-
assert sl.index.is_unique
390+
assert sl.index.is_unique is True
391391

392392

393393
# FutureWarning from NumPy about [slice(None, 5).

pandas/tests/series/test_duplicates.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ def test_unique_data_ownership():
6363
def test_is_unique():
6464
# GH11946
6565
s = Series(np.random.randint(0, 10, size=1000))
66-
assert not s.is_unique
66+
assert s.is_unique is False
6767
s = Series(np.arange(1000))
68-
assert s.is_unique
68+
assert s.is_unique is True
6969

7070

7171
def test_is_unique_class_ne(capsys):

pandas/tests/test_algos.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1109,7 +1109,7 @@ def test_datetime_likes(self):
11091109
def test_unique_index(self):
11101110
cases = [Index([1, 2, 3]), pd.RangeIndex(0, 3)]
11111111
for case in cases:
1112-
assert case.is_unique
1112+
assert case.is_unique is True
11131113
tm.assert_numpy_array_equal(case.duplicated(),
11141114
np.array([False, False, False]))
11151115

pandas/tests/test_multilevel.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ def test_xs_partial(self):
495495
def test_xs_with_duplicates(self):
496496
# Issue #13719
497497
df_dup = concat([self.frame] * 2)
498-
assert not df_dup.index.is_unique
498+
assert df_dup.index.is_unique is False
499499
expected = concat([self.frame.xs('one', level='second')] * 2)
500500
tm.assert_frame_equal(df_dup.xs('one', level='second'), expected)
501501
tm.assert_frame_equal(df_dup.xs(['one'], level=['second']), expected)
@@ -892,7 +892,7 @@ def test_stack(self):
892892
# GH10417
893893
def check(left, right):
894894
tm.assert_series_equal(left, right)
895-
assert not left.index.is_unique
895+
assert left.index.is_unique is False
896896
li, ri = left.index, right.index
897897
tm.assert_index_equal(li, ri)
898898

@@ -1925,7 +1925,7 @@ def test_drop_level_nonunique_datetime(self):
19251925
df['tstamp'] = idxdt
19261926
df = df.set_index('tstamp', append=True)
19271927
ts = Timestamp('201603231600')
1928-
assert not df.index.is_unique
1928+
assert df.index.is_unique is False
19291929

19301930
result = df.drop(ts, level='tstamp')
19311931
expected = df.loc[idx != 4]

pandas/tests/util/test_hashing.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,9 @@ def test_hash_tuples_err(self, val):
110110
def test_multiindex_unique(self):
111111
mi = MultiIndex.from_tuples([(118, 472), (236, 118),
112112
(51, 204), (102, 51)])
113-
assert mi.is_unique
113+
assert mi.is_unique is True
114114
result = hash_pandas_object(mi)
115-
assert result.is_unique
115+
assert result.is_unique is True
116116

117117
def test_multiindex_objects(self):
118118
mi = MultiIndex(levels=[['b', 'd', 'a'], [1, 2, 3]],

0 commit comments

Comments
 (0)