def f(): keys.append(K()) d = RWeakValueDictionary(K, X) x1, x3 = g(d) rgc.collect(); rgc.collect() assert d.get(keys[0]) is x1 assert d.get(keys[1]) is None assert d.get(keys[2]) is x3 assert d.get(keys[3]) is None d.set(keys[0], None) assert d.get(keys[0]) is None assert d.get(keys[1]) is None assert d.get(keys[2]) is x3 assert d.get(keys[3]) is None
def f(): keys.append(K()) d = RWeakValueDictionary(K, X) x1, x3 = g(d) rgc.collect(); rgc.collect() assert d.get(keys[0]) is x1 assert d.get(keys[1]) is None assert d.get(keys[2]) is x3 assert d.get(keys[3]) is None d.set(keys[0], None) assert d.get(keys[0]) is None assert d.get(keys[1]) is None assert d.get(keys[2]) is x3 assert d.get(keys[3]) is None
def f(n): x = X() if n: d = empty else: d = RWeakValueDictionary(str, X) d.set("a", x) return d.get("a") is x
def f(n): x = X() if n: d = empty else: d = RWeakValueDictionary(str, X) d.set("a", x) return d.get("a") is x
def f(): d = RWeakValueDictionary(keyclass, X) x1, x3 = g(d) rgc.collect() rgc.collect() assert d.get(keys[0]) is x1 assert d.get(keys[1]) is None assert d.get(keys[2]) is x3 assert d.get(keys[3]) is None d.set(keys[0], None) assert d.get(keys[0]) is None assert d.get(keys[1]) is None assert d.get(keys[2]) is x3 assert d.get(keys[3]) is None # resizing should also work for i in range(loop): d.set(make_key(i), x1) for i in range(loop): assert d.get(make_key(i)) is x1 assert d.get(keys[0]) is None assert d.get(keys[1]) is None assert d.get(keys[2]) is x3 assert d.get(keys[3]) is None # a subclass y = Y() d.set(keys[3], y) assert d.get(keys[3]) is y # storing a lot of Nones for i in range(loop, loop * 2 - 5): d.set(make_key(1000 + i), x1) for i in range(loop): d.set(make_key(i), None) for i in range(loop): assert d.get(make_key(i)) is None assert d.get(keys[0]) is None assert d.get(keys[1]) is None assert d.get(keys[2]) is x3 assert d.get(keys[3]) is y for i in range(loop, loop * 2 - 5): assert d.get(make_key(1000 + i)) is x1
def f(): d = RWeakValueDictionary(keyclass, X) x1, x3 = g(d) rgc.collect() rgc.collect() assert d.get(keys[0]) is x1 assert d.get(keys[1]) is None assert d.get(keys[2]) is x3 assert d.get(keys[3]) is None d.set(keys[0], None) assert d.get(keys[0]) is None assert d.get(keys[1]) is None assert d.get(keys[2]) is x3 assert d.get(keys[3]) is None # resizing should also work for i in range(loop): d.set(make_key(i), x1) for i in range(loop): assert d.get(make_key(i)) is x1 assert d.get(keys[0]) is None assert d.get(keys[1]) is None assert d.get(keys[2]) is x3 assert d.get(keys[3]) is None # a subclass y = Y() d.set(keys[3], y) assert d.get(keys[3]) is y # storing a lot of Nones for i in range(loop, loop * 2 - 5): d.set(make_key(1000 + i), x1) for i in range(loop): d.set(make_key(i), None) for i in range(loop): assert d.get(make_key(i)) is None assert d.get(keys[0]) is None assert d.get(keys[1]) is None assert d.get(keys[2]) is x3 assert d.get(keys[3]) is y for i in range(loop, loop * 2 - 5): assert d.get(make_key(1000 + i)) is x1