mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-19 19:10:17 +00:00
181 lines
3.5 KiB
Python
181 lines
3.5 KiB
Python
emptyDict = dict()
|
|
assert len(emptyDict) == 0
|
|
tinydict = {'Name': 'Tom', 'Age': 7, 'Class': 'First'}
|
|
assert tinydict['Name'] == 'Tom';assert tinydict['Age'] == 7
|
|
tinydict['Age'] = 8;tinydict['School'] = "aaa"
|
|
assert tinydict['Age'] == 8;assert tinydict['School'] == "aaa"
|
|
del tinydict['Name']
|
|
|
|
assert repr(tinydict) == "{'Age': 8, 'Class': 'First', 'School': 'aaa'}"
|
|
assert len(tinydict) == 3
|
|
tinydict.clear()
|
|
assert len(tinydict) == 0
|
|
|
|
dict1 = {'user':'circle','num':[1,2,3]}
|
|
dict2 = dict1.copy()
|
|
|
|
for k,v in dict1.items():
|
|
assert dict2[k] == v
|
|
for t in dict1.items():
|
|
assert t == ('user', 'circle') or t == ('num', [1, 2, 3])
|
|
|
|
tinydict = {'Name': 'circle', 'Age': 7}
|
|
tinydict2 = {'Sex': 'female' }
|
|
assert len(tinydict) == 2
|
|
assert len(tinydict2) == 1
|
|
tinydict.update(tinydict2)
|
|
updated_dict = {'Name': 'circle', 'Age': 7, 'Sex': 'female'}
|
|
for k,v in tinydict.items():
|
|
assert updated_dict[k] == v
|
|
assert len(tinydict) == 3
|
|
assert tinydict == updated_dict
|
|
|
|
dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500}
|
|
# dict is now ordered
|
|
assert list(dishes.keys()) == ['eggs', 'sausage', 'bacon', 'spam']
|
|
assert list(dishes.values()) == [2, 1, 1, 500]
|
|
|
|
d={1:"a",2:"b",3:"c"}
|
|
result=[]
|
|
for k,v in d.items():
|
|
result.append(k)
|
|
result.append(v)
|
|
assert len(result) == 6
|
|
|
|
del d[2]
|
|
assert len(d) == 2
|
|
assert list(d.keys()) == [1, 3]
|
|
assert list(d.values()) == ['a', 'c']
|
|
del d[1]
|
|
del d[3]
|
|
assert len(d) == 0
|
|
|
|
# test __eq__
|
|
d1 = {1:2, 3:4}
|
|
d2 = {3:4, 1:2}
|
|
d3 = {1:2, 3:4, 5:6}
|
|
assert d1 == d2
|
|
assert d1 != d3
|
|
|
|
a = dict([(1, 2), (3, 4)])
|
|
assert a == {1: 2, 3: 4}
|
|
|
|
assert a.pop(1) == 2
|
|
assert a == {3: 4}
|
|
assert a.pop(3) == 4
|
|
assert a == {}
|
|
|
|
a = {}
|
|
for i in range(1000):
|
|
a[i] = i
|
|
assert len(a) == 1000
|
|
for i in range(1000):
|
|
del a[i]
|
|
assert len(a) == 0
|
|
|
|
a = {'g': 0}
|
|
|
|
a['ball_3'] = 0
|
|
a['ball_4'] = 0
|
|
assert list(a.keys()) == ['g', 'ball_3', 'ball_4']
|
|
del a['ball_3']
|
|
assert list(a.keys()) == ['g', 'ball_4']
|
|
del a['ball_4']
|
|
assert list(a.keys()) == ['g',]
|
|
del a['g']
|
|
assert len(a) == 0
|
|
|
|
# ultra test!!
|
|
a = {'0': 0, '1': 1}
|
|
for i in range(2, 1000):
|
|
a[str(i)] = i
|
|
del a[str(i - 2)]
|
|
assert a[str(i - 1)] == i - 1
|
|
|
|
a = {'0': 0, '1': 1}
|
|
b = ['0', '1']
|
|
|
|
# dict delete test
|
|
data = []
|
|
j = 6
|
|
for i in range(65535):
|
|
j = ((j*5+1) % 65535)
|
|
data.append(str(j))
|
|
|
|
for i in range(len(data)):
|
|
z = data[i]
|
|
a[z] = i
|
|
b.append(z)
|
|
if i % 3 == 0:
|
|
y = b.pop()
|
|
del a[y]
|
|
|
|
a = {1: 2, 3: 4}
|
|
assert a.pop(1) == 2
|
|
|
|
assert a.pop(1, None) is None
|
|
|
|
# test getitem
|
|
d = {}
|
|
for i in range(-1000, 1000):
|
|
d[i] = i
|
|
assert d[i] == i
|
|
|
|
e = {}
|
|
for i in range(-10000, 10000, 3):
|
|
e[i] = i
|
|
assert e[i] == i
|
|
|
|
# test iter
|
|
d = {'1': 1, 222: 2, '333': 3}
|
|
assert list(d) == ['1', 222, '333']
|
|
assert list(d.keys()) == ['1', 222, '333']
|
|
assert list(d.values()) == [1, 2, 3]
|
|
assert list(d.items()) == [('1', 1), (222, 2), ('333', 3)]
|
|
|
|
# test del
|
|
n = 2 ** 17
|
|
a = {}
|
|
for i in range(n):
|
|
a[str(i)] = i
|
|
for i in range(n):
|
|
del a[str(i)]
|
|
assert len(a) == 0
|
|
|
|
# test del with int keys
|
|
if 0:
|
|
n = 2 ** 17
|
|
a = {}
|
|
for i in range(n):
|
|
a[i] = i
|
|
for i in range(n):
|
|
del a[i]
|
|
assert len(a) == 0
|
|
|
|
#######################
|
|
|
|
# namedict delete test
|
|
class A: pass
|
|
a = A()
|
|
b = ['0', '1']
|
|
|
|
for i in range(len(data)):
|
|
z = data[i]
|
|
setattr(a, str(z), i)
|
|
b.append(z)
|
|
if i % 3 == 0:
|
|
y = b.pop()
|
|
delattr(a, y)
|
|
|
|
# bug test
|
|
d = {
|
|
'__name__': '__main__',
|
|
'__package__': '',
|
|
'__path__': '__main__',
|
|
'a': [],
|
|
'gc': 1,
|
|
}
|
|
|
|
del d['a']
|
|
assert 'a' not in d
|
|
assert d['gc'] == 1 |