summaryrefslogtreecommitdiff
path: root/tests/basics/dict-del.py
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-04-05 17:17:19 +0100
committerDamien George <damien.p.george@gmail.com>2014-04-05 17:17:19 +0100
commit95004e5114bd40cea256c3228ffac682d231855d (patch)
tree520edc9372b1e26e1e21c8e8c4a66f8ad93773da /tests/basics/dict-del.py
parente20b6b418ce5272c1945e4dabc02de0336b99697 (diff)
py: Fix delete operation on map/dict and set objects.
Hash table can now be completely full (ie now NULL entry) before a resize is triggered. Use sentinel value to indicate delete entry in the table.
Diffstat (limited to 'tests/basics/dict-del.py')
-rw-r--r--tests/basics/dict-del.py29
1 files changed, 21 insertions, 8 deletions
diff --git a/tests/basics/dict-del.py b/tests/basics/dict-del.py
index 012ed0cae..d908fea42 100644
--- a/tests/basics/dict-del.py
+++ b/tests/basics/dict-del.py
@@ -1,8 +1,21 @@
-for i in range(100):
- d = dict()
- for j in range(100):
- d[j] = j
- del d[i]
- for j in range(100):
- if j not in d:
- print(j, 'not in d')
+for n in range(20):
+ print('testing dict with {} items'.format(n))
+ for i in range(n):
+ # create dict
+ d = dict()
+ for j in range(n):
+ d[str(j)] = j
+ print(len(d))
+
+ # delete an item
+ del d[str(i)]
+ print(len(d))
+
+ # check items
+ for j in range(n):
+ if str(j) in d:
+ if j == i:
+ print(j, 'in d, but it should not be')
+ else:
+ if j != i:
+ print(j, 'not in d, but it should be')