def f(n): x = X() if n: d = empty else: d = RWeakValueDictionary(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(X) x1, x3 = g(d) rgc.collect(); rgc.collect() assert d.get("abc") is x1 assert d.get("def") is None assert d.get("ghi") is x3 assert d.get("hello") is None d.set("abc", None) assert d.get("abc") is None assert d.get("def") is None assert d.get("ghi") is x3 assert d.get("hello") is None # resizing should also work for i in range(loop): d.set(str(i), x1) for i in range(loop): assert d.get(str(i)) is x1 assert d.get("abc") is None assert d.get("def") is None assert d.get("ghi") is x3 assert d.get("hello") is None # a subclass y = Y() d.set("hello", y) assert d.get("hello") is y # storing a lot of Nones for i in range(loop, loop*2-5): d.set('%dfoobar' % i, x1) for i in range(loop): d.set(str(i), None) for i in range(loop): assert d.get(str(i)) is None assert d.get("abc") is None assert d.get("def") is None assert d.get("ghi") is x3 assert d.get("hello") is y for i in range(loop, loop*2-5): assert d.get('%dfoobar' % i) is x1