| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- 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
|