Ejemplo n.º 1
0
 def f():
     d = prebuilt
     if d is None:
         d = RWeakKeyDictionary(KX, VX)
     k1, k3, v1, v2, v3 = g(d)
     rgc.collect()
     rgc.collect()
     assert d.get(k1) is v1
     assert d.get(k3) is v3
     assert d.get(k1) is not v2
     assert d.get(k3) is not v2
     assert d.length() == 2
     d.set(k1, None)
     assert d.get(k1) is None
     assert d.get(k3) is v3
     assert d.length() == 1
     # resizing should also work
     lots_of_keys = [KX() for i in range(loop)]
     for k in lots_of_keys:
         d.set(k, v1)
     for k in lots_of_keys:
         assert d.get(k) is v1
     assert d.get(k1) is None
     assert d.get(k3) is v3
     assert d.length() == loop + 1
     # a subclass
     ky = KY()
     vy = VY()
     d.set(ky, vy)
     assert d.get(ky) is vy
     assert d.length() == loop + 2
     # deleting by storing Nones
     for k in lots_of_keys:
         d.set(k, None)
     for k in lots_of_keys:
         assert d.get(k) is None
     assert d.get(k1) is None
     assert d.get(k3) is v3
     assert d.get(ky) is vy
     assert d.length() == 2
Ejemplo n.º 2
0
 def f():
     d = prebuilt
     if d is None:
         d = RWeakKeyDictionary(KX, VX)
     k1, k3, v1, v2, v3 = g(d)
     rgc.collect(); rgc.collect()
     assert d.get(k1) is v1
     assert d.get(k3) is v3
     assert d.get(k1) is not v2
     assert d.get(k3) is not v2
     assert d.length() == 2
     d.set(k1, None)
     assert d.get(k1) is None
     assert d.get(k3) is v3
     assert d.length() == 1
     # resizing should also work
     lots_of_keys = [KX() for i in range(loop)]
     for k in lots_of_keys:
         d.set(k, v1)
     for k in lots_of_keys:
         assert d.get(k) is v1
     assert d.get(k1) is None
     assert d.get(k3) is v3
     assert d.length() == loop + 1
     # a subclass
     ky = KY()
     vy = VY()
     d.set(ky, vy)
     assert d.get(ky) is vy
     assert d.length() == loop + 2
     # deleting by storing Nones
     for k in lots_of_keys:
         d.set(k, None)
     for k in lots_of_keys:
         assert d.get(k) is None
     assert d.get(k1) is None
     assert d.get(k3) is v3
     assert d.get(ky) is vy
     assert d.length() == 2