Ejemplo n.º 1
0
 def test_popitem_first(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)
     rordereddict.ll_dict_setitem(ll_d, llstr("m"), 3)
     ITER = rordereddict.get_ll_dictiter(lltype.Ptr(DICT))
     for expected in ["k", "j", "m"]:
         ll_iter = rordereddict.ll_dictiter(ITER, ll_d)
         num = rordereddict._ll_dictnext(ll_iter)
         ll_key = ll_d.entries[num].key
         assert hlstr(ll_key) == expected
         rordereddict.ll_dict_delitem(ll_d, ll_key)
     ll_iter = rordereddict.ll_dictiter(ITER, ll_d)
     py.test.raises(StopIteration, rordereddict._ll_dictnext, ll_iter)
Ejemplo n.º 2
0
 def test_popitem_first(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)
     rordereddict.ll_dict_setitem(ll_d, llstr("m"), 3)
     ITER = rordereddict.get_ll_dictiter(lltype.Ptr(DICT))
     for expected in ["k", "j", "m"]:
         ll_iter = rordereddict.ll_dictiter(ITER, ll_d)
         num = rordereddict._ll_dictnext(ll_iter)
         ll_key = ll_d.entries[num].key
         assert hlstr(ll_key) == expected
         rordereddict.ll_dict_delitem(ll_d, ll_key)
     ll_iter = rordereddict.ll_dictiter(ITER, ll_d)
     py.test.raises(StopIteration, rordereddict._ll_dictnext, ll_iter)
Ejemplo n.º 3
0
 def _ll_iter(self, ll_d):
     ITER = rordereddict.get_ll_dictiter(lltype.typeOf(ll_d))
     ll_iter = rordereddict.ll_dictiter(ITER, ll_d)
     ll_dictnext = rordereddict._ll_dictnext
     while True:
         try:
             num = ll_dictnext(ll_iter)
         except StopIteration:
             break
         yield ll_d.entries[num]
Ejemplo n.º 4
0
 def get_keys(self):
     DICT = lltype.typeOf(self.l_dict).TO
     ITER = rordereddict.get_ll_dictiter(lltype.Ptr(DICT))
     ll_iter = rordereddict.ll_dictiter(ITER, self.l_dict)
     ll_dictnext = rordereddict._ll_dictnext
     keys_ll = []
     while True:
         try:
             num = ll_dictnext(ll_iter)
             keys_ll.append(self.l_dict.entries[num].key)
         except StopIteration:
             break
     return keys_ll
Ejemplo n.º 5
0
 def test_dict_iteration(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)
     ITER = rordereddict.get_ll_dictiter(lltype.Ptr(DICT))
     ll_iter = rordereddict.ll_dictiter(ITER, ll_d)
     ll_dictnext = rordereddict._ll_dictnext
     num = ll_dictnext(ll_iter)
     assert hlstr(ll_d.entries[num].key) == "k"
     num = ll_dictnext(ll_iter)
     assert hlstr(ll_d.entries[num].key) == "j"
     py.test.raises(StopIteration, ll_dictnext, ll_iter)
Ejemplo n.º 6
0
 def test_dict_iteration(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)
     ITER = rordereddict.get_ll_dictiter(lltype.Ptr(DICT))
     ll_iter = rordereddict.ll_dictiter(ITER, ll_d)
     ll_dictnext = rordereddict._ll_dictnext
     num = ll_dictnext(ll_iter)
     assert hlstr(ll_d.entries[num].key) == "k"
     num = ll_dictnext(ll_iter)
     assert hlstr(ll_d.entries[num].key) == "j"
     py.test.raises(StopIteration, ll_dictnext, ll_iter)
Ejemplo n.º 7
0
 def get_keys(self):
     DICT = lltype.typeOf(self.l_dict).TO
     ITER = rordereddict.get_ll_dictiter(lltype.Ptr(DICT))
     ll_iter = rordereddict.ll_dictiter(ITER, self.l_dict)
     ll_dictnext = rordereddict._ll_dictnext
     keys_ll = []
     while True:
         try:
             num = ll_dictnext(ll_iter)
             keys_ll.append(self.l_dict.entries[num].key)
         except StopIteration:
             break
     return keys_ll
Ejemplo n.º 8
0
 def test_dict_iteration(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)
     ITER = rordereddict.get_ll_dictiter(lltype.Ptr(DICT))
     ll_iter = rordereddict.ll_dictiter(ITER, ll_d)
     ll_iterkeys = rordereddict.ll_dictnext_group['keys']
     next = ll_iterkeys(lltype.Signed, ll_iter)
     assert hlstr(next) == "k"
     next = ll_iterkeys(lltype.Signed, ll_iter)
     assert hlstr(next) == "j"
     py.test.raises(StopIteration, ll_iterkeys, lltype.Signed, ll_iter)
Ejemplo n.º 9
0
 def test_popitem_first_bug(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"), 1)
     rordereddict.ll_dict_delitem(ll_d, llstr("k"))
     ITER = rordereddict.get_ll_dictiter(lltype.Ptr(DICT))
     ll_iter = rordereddict.ll_dictiter(ITER, ll_d)
     num = rordereddict._ll_dictnext(ll_iter)
     ll_key = ll_d.entries[num].key
     assert hlstr(ll_key) == "j"
     assert ll_d.lookup_function_no == 4    # 1 free item found at the start
     rordereddict.ll_dict_delitem(ll_d, llstr("j"))
     assert ll_d.num_ever_used_items == 0
     assert ll_d.lookup_function_no == 0    # reset
Ejemplo n.º 10
0
 def test_popitem_first_bug(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"), 1)
     rordereddict.ll_dict_delitem(ll_d, llstr("k"))
     ITER = rordereddict.get_ll_dictiter(lltype.Ptr(DICT))
     ll_iter = rordereddict.ll_dictiter(ITER, ll_d)
     num = rordereddict._ll_dictnext(ll_iter)
     ll_key = ll_d.entries[num].key
     assert hlstr(ll_key) == "j"
     assert ll_d.lookup_function_no == 4  # 1 free item found at the start
     rordereddict.ll_dict_delitem(ll_d, llstr("j"))
     assert ll_d.num_ever_used_items == 0
     assert ll_d.lookup_function_no == 0  # reset