def test_setdefault(self): DICT = self._get_str_dict() ll_d = rordereddict.ll_newdict(DICT) rordereddict.ll_dict_setitem(ll_d, llstr("k"), 1) assert rordereddict.ll_dict_setdefault(ll_d, llstr("j"), 42) == 42 assert rordereddict.ll_dict_getitem(ll_d, llstr("j")) == 42 assert rordereddict.ll_dict_setdefault(ll_d, llstr("k"), 42) == 1 assert rordereddict.ll_dict_getitem(ll_d, llstr("k")) == 1
def test_dict_store_get(self): DICT = self._get_str_dict() ll_d = rordereddict.ll_newdict(DICT) for i in range(20): for j in range(i): assert rordereddict.ll_dict_getitem(ll_d, llstr(str(j))) == j rordereddict.ll_dict_setitem(ll_d, llstr(str(i)), i) assert ll_d.num_live_items == 20 for i in range(20): assert rordereddict.ll_dict_getitem(ll_d, llstr(str(i))) == i
def test_dict_creation(self): DICT = self._get_str_dict() ll_d = rordereddict.ll_newdict(DICT) lls = llstr("abc") rordereddict.ll_dict_setitem(ll_d, lls, 13) assert count_items(ll_d, rordereddict.FREE) == rordereddict.DICT_INITSIZE - 1 assert rordereddict.ll_dict_getitem(ll_d, llstr("abc")) == 13 assert rordereddict.ll_dict_getitem(ll_d, lls) == 13 rordereddict.ll_dict_setitem(ll_d, lls, 42) assert rordereddict.ll_dict_getitem(ll_d, lls) == 42 rordereddict.ll_dict_setitem(ll_d, llstr("abc"), 43) assert rordereddict.ll_dict_getitem(ll_d, lls) == 43
def test_dict_store_get_del(self): DICT = self._get_str_dict() ll_d = rordereddict.ll_newdict(DICT) for i in range(20): for j in range(0, i, 2): assert rordereddict.ll_dict_getitem(ll_d, llstr(str(j))) == j rordereddict.ll_dict_setitem(ll_d, llstr(str(i)), i) if i % 2 != 0: rordereddict.ll_dict_delitem(ll_d, llstr(str(i))) assert ll_d.num_live_items == 10 for i in range(0, 20, 2): assert rordereddict.ll_dict_getitem(ll_d, llstr(str(i))) == i
def test_dict_creation_2(self): DICT = self._get_str_dict() ll_d = rordereddict.ll_newdict(DICT) llab = llstr("ab") llb = llstr("b") rordereddict.ll_dict_setitem(ll_d, llab, 1) rordereddict.ll_dict_setitem(ll_d, llb, 2) assert rordereddict.ll_dict_getitem(ll_d, llb) == 2
def test_copy(self): DICT = self._get_str_dict() ll_d = rordereddict.ll_newdict(DICT) rordereddict.ll_dict_setitem(ll_d, llstr("k"), 1) rordereddict.ll_dict_setitem(ll_d, llstr("j"), 2) ll_d2 = rordereddict.ll_dict_copy(ll_d) for ll_d3 in [ll_d, ll_d2]: assert rordereddict.ll_dict_getitem(ll_d3, llstr("k")) == 1 assert rordereddict.ll_dict_get(ll_d3, llstr("j"), 42) == 2 assert rordereddict.ll_dict_get(ll_d3, llstr("i"), 42) == 42
def test_update(self): DICT = self._get_str_dict() ll_d1 = rordereddict.ll_newdict(DICT) ll_d2 = rordereddict.ll_newdict(DICT) rordereddict.ll_dict_setitem(ll_d1, llstr("k"), 5) rordereddict.ll_dict_setitem(ll_d1, llstr("j"), 6) rordereddict.ll_dict_setitem(ll_d2, llstr("i"), 7) rordereddict.ll_dict_setitem(ll_d2, llstr("k"), 8) rordereddict.ll_dict_update(ll_d1, ll_d2) for key, value in [("k", 8), ("i", 7), ("j", 6)]: assert rordereddict.ll_dict_getitem(ll_d1, llstr(key)) == value
def test_dict_resize(self): DICT = self._get_str_dict() ll_d = rordereddict.ll_newdict(DICT) rordereddict.ll_dict_setitem(ll_d, llstr("a"), 1) rordereddict.ll_dict_setitem(ll_d, llstr("b"), 2) rordereddict.ll_dict_setitem(ll_d, llstr("c"), 3) rordereddict.ll_dict_setitem(ll_d, llstr("d"), 4) assert len(get_indexes(ll_d)) == 8 rordereddict.ll_dict_setitem(ll_d, llstr("e"), 5) rordereddict.ll_dict_setitem(ll_d, llstr("f"), 6) assert len(get_indexes(ll_d)) == 32 for item in ['a', 'b', 'c', 'd', 'e', 'f']: assert rordereddict.ll_dict_getitem(ll_d, llstr(item)) == ord(item) - ord('a') + 1
def test_dict_resize(self): DICT = self._get_str_dict() ll_d = rordereddict.ll_newdict(DICT) rordereddict.ll_dict_setitem(ll_d, llstr("a"), 1) rordereddict.ll_dict_setitem(ll_d, llstr("b"), 2) rordereddict.ll_dict_setitem(ll_d, llstr("c"), 3) rordereddict.ll_dict_setitem(ll_d, llstr("d"), 4) rordereddict.ll_dict_setitem(ll_d, llstr("e"), 5) rordereddict.ll_dict_setitem(ll_d, llstr("f"), 6) rordereddict.ll_dict_setitem(ll_d, llstr("g"), 7) rordereddict.ll_dict_setitem(ll_d, llstr("h"), 8) rordereddict.ll_dict_setitem(ll_d, llstr("i"), 9) rordereddict.ll_dict_setitem(ll_d, llstr("j"), 10) assert len(get_indexes(ll_d)) == 16 rordereddict.ll_dict_setitem(ll_d, llstr("k"), 11) rordereddict.ll_dict_setitem(ll_d, llstr("l"), 12) rordereddict.ll_dict_setitem(ll_d, llstr("m"), 13) assert len(get_indexes(ll_d)) == 64 for item in 'abcdefghijklm': assert rordereddict.ll_dict_getitem(ll_d, llstr(item)) == ord(item) - ord('a') + 1