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