circuitpython/tests/basics/set_remove.py
Damien George 95004e5114 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.
2014-04-05 17:17:19 +01:00

34 lines
736 B
Python

# basic test
s = {1}
print(s.remove(1))
print(list(s))
try:
print(s.remove(1), "!!!")
except KeyError:
pass
else:
print("failed to raise KeyError")
# test sets of varying size
for n in range(20):
print('testing set with {} items'.format(n))
for i in range(n):
# create set
s = set()
for j in range(n):
s.add(str(j))
print(len(s))
# delete an item
s.remove(str(i))
print(len(s))
# check items
for j in range(n):
if str(j) in s:
if j == i:
print(j, 'in s, but it should not be')
else:
if j != i:
print(j, 'not in s, but it should be')