diff options
author | Damien George <damien.p.george@gmail.com> | 2014-04-05 17:17:19 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-04-05 17:17:19 +0100 |
commit | 95004e5114bd40cea256c3228ffac682d231855d (patch) | |
tree | 520edc9372b1e26e1e21c8e8c4a66f8ad93773da /tests/basics/dict-del.py | |
parent | e20b6b418ce5272c1945e4dabc02de0336b99697 (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.py | 29 |
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') |