Skip to content

Commit 073222e

Browse files
committed
parameterize tests on writeable True/False
1 parent 0da874e commit 073222e

File tree

1 file changed

+20
-19
lines changed

1 file changed

+20
-19
lines changed

pandas/tests/libs/test_hashtable.py

+20-19
Original file line numberDiff line numberDiff line change
@@ -75,33 +75,33 @@ def test_get_set_contains_len(self, table_type, dtype):
7575
table.get_item(index + 2)
7676
assert str(index + 2) in str(excinfo.value)
7777

78-
def test_map(self, table_type, dtype):
78+
def test_map(self, table_type, dtype, writable):
7979
# PyObjectHashTable has no map-method
8080
if table_type != ht.PyObjectHashTable:
8181
N = 77
8282
table = table_type()
8383
keys = np.arange(N).astype(dtype)
8484
vals = np.arange(N).astype(np.int64) + N
85-
keys.flags.writeable = False
86-
vals.flags.writeable = False
85+
keys.flags.writeable = writable
86+
vals.flags.writeable = writable
8787
table.map(keys, vals)
8888
for i in range(N):
8989
assert table.get_item(keys[i]) == i + N
9090

91-
def test_map_locations(self, table_type, dtype):
91+
def test_map_locations(self, table_type, dtype, writable):
9292
N = 8
9393
table = table_type()
9494
keys = (np.arange(N) + N).astype(dtype)
95-
keys.flags.writeable = False
95+
keys.flags.writeable = writable
9696
table.map_locations(keys)
9797
for i in range(N):
9898
assert table.get_item(keys[i]) == i
9999

100-
def test_lookup(self, table_type, dtype):
100+
def test_lookup(self, table_type, dtype, writable):
101101
N = 3
102102
table = table_type()
103103
keys = (np.arange(N) + N).astype(dtype)
104-
keys.flags.writeable = False
104+
keys.flags.writeable = writable
105105
table.map_locations(keys)
106106
result = table.lookup(keys)
107107
expected = np.arange(N)
@@ -119,15 +119,15 @@ def test_lookup_wrong(self, table_type, dtype):
119119
result = table.lookup(wrong_keys)
120120
assert np.all(result == -1)
121121

122-
def test_unique(self, table_type, dtype):
122+
def test_unique(self, table_type, dtype, writable):
123123
if dtype in (np.int8, np.uint8):
124124
N = 88
125125
else:
126126
N = 1000
127127
table = table_type()
128128
expected = (np.arange(N) + N).astype(dtype)
129129
keys = np.repeat(expected, 5)
130-
keys.flags.writeable = False
130+
keys.flags.writeable = writable
131131
unique = table.unique(keys)
132132
tm.assert_numpy_array_equal(unique, expected)
133133

@@ -156,9 +156,10 @@ def test_tracemalloc_for_empty(self, table_type, dtype):
156156
assert get_allocated_khash_memory() == 0
157157

158158

159-
def test_get_labels_groupby_for_Int64():
159+
def test_get_labels_groupby_for_Int64(writable):
160160
table = ht.Int64HashTable()
161161
vals = np.array([1, 2, -1, 2, 1, -1], dtype=np.int64)
162+
vals.flags.writeable = writable
162163
arr, unique = table.get_labels_groupby(vals)
163164
expected_arr = np.array([0, 1, -1, 1, 0, -1], dtype=np.int64)
164165
expected_unique = np.array([1, 2], dtype=np.int64)
@@ -262,33 +263,33 @@ def get_ht_function(fun_name, type_suffix):
262263
],
263264
)
264265
class TestHelpFunctions:
265-
def test_value_count(self, dtype, type_suffix):
266+
def test_value_count(self, dtype, type_suffix, writable):
266267
N = 43
267268
value_count = get_ht_function("value_count", type_suffix)
268269
expected = (np.arange(N) + N).astype(dtype)
269270
values = np.repeat(expected, 5)
270-
values.flags.writeable = False
271+
values.flags.writeable = writable
271272
keys, counts = value_count(values, False)
272273
tm.assert_numpy_array_equal(np.sort(keys), expected)
273274
assert np.all(counts == 5)
274275

275-
def test_duplicated_first(self, dtype, type_suffix):
276+
def test_duplicated_first(self, dtype, type_suffix, writable):
276277
N = 100
277278
duplicated = get_ht_function("duplicated", type_suffix)
278279
values = np.repeat(np.arange(N).astype(dtype), 5)
279-
values.flags.writeable = False
280+
values.flags.writeable = writable
280281
result = duplicated(values)
281282
expected = np.ones_like(values, dtype=np.bool_)
282283
expected[::5] = False
283284
tm.assert_numpy_array_equal(result, expected)
284285

285-
def test_ismember_yes(self, dtype, type_suffix):
286+
def test_ismember_yes(self, dtype, type_suffix, writable):
286287
N = 127
287288
ismember = get_ht_function("ismember", type_suffix)
288289
arr = np.arange(N).astype(dtype)
289290
values = np.arange(N).astype(dtype)
290-
arr.flags.writeable = False
291-
values.flags.writeable = False
291+
arr.flags.writeable = writable
292+
values.flags.writeable = writable
292293
result = ismember(arr, values)
293294
expected = np.ones_like(values, dtype=np.bool_)
294295
tm.assert_numpy_array_equal(result, expected)
@@ -302,15 +303,15 @@ def test_ismember_no(self, dtype, type_suffix):
302303
expected = np.zeros_like(values, dtype=np.bool_)
303304
tm.assert_numpy_array_equal(result, expected)
304305

305-
def test_mode(self, dtype, type_suffix):
306+
def test_mode(self, dtype, type_suffix, writable):
306307
if dtype in (np.int8, np.uint8):
307308
N = 53
308309
else:
309310
N = 11111
310311
mode = get_ht_function("mode", type_suffix)
311312
values = np.repeat(np.arange(N).astype(dtype), 5)
312313
values[0] = 42
313-
values.flags.writeable = False
314+
values.flags.writeable = writable
314315
result = mode(values, False)
315316
assert result == 42
316317

0 commit comments

Comments
 (0)