예제 #1
0
파일: test_hash.py 프로젝트: uternet/pycket
def test_persistent_hash_collisions2():
    HashTable = make_persistent_hash_type(hashfun=lambda x: r_uint(hash(x)) % 8)
    acc = HashTable.EMPTY

    for i in range(2048):
        validate_persistent_hash(acc)
        acc = acc.assoc(i % 128, i)

    assert len(acc) == 128
    assert len(list(acc.iteritems())) == 128
    for k, v in acc.iteritems():
        assert acc.val_at(k, None) is v
예제 #2
0
파일: test_hash.py 프로젝트: fenildf/pycket
def test_persistent_hash_collisions2():
    HashTable = make_persistent_hash_type(hashfun=lambda x: r_uint(hash(x)) % 8)
    acc = HashTable.EMPTY

    for i in range(2048):
        validate_persistent_hash(acc)
        acc = acc.assoc(i % 128, i)

    assert len(acc) == 128
    assert len(list(acc.iteritems())) == 128
    for k, v in acc.iteritems():
        assert acc.val_at(k, None) is v
예제 #3
0
파일: test_hash.py 프로젝트: uternet/pycket
def test_persistent_hash_collisions():
    HashTable = make_persistent_hash_type(hashfun=lambda x: r_uint(42))
    acc = HashTable.EMPTY

    for i in range(1000):
        validate_persistent_hash(acc)
        acc = acc.assoc(i % 10, i)

    assert len(acc) == 10
    assert len(list(acc.iteritems())) == 10
    for k, v in acc.iteritems():
        assert k <= 10
        assert v >= 990
        assert v % 10 == k
        assert acc.val_at(k, None) is v
예제 #4
0
파일: test_hash.py 프로젝트: vishesh/pycket
def test_persistent_hash_collisions():
    HashTable = make_persistent_hash_type(hashfun=lambda x: r_uint(42))
    acc = HashTable.EMPTY

    for i in range(1000):
        validate_persistent_hash(acc)
        acc = acc.assoc(i % 10, i)

    assert len(acc) == 10
    assert len(list(acc.iteritems())) == 10
    for k, v in acc.iteritems():
        assert k <= 10
        assert v >= 990
        assert v % 10 == k
        assert acc.val_at(k, None) is v
예제 #5
0
파일: test_hash.py 프로젝트: pycket/pycket
def test_persistent_hash2():
    HashTable = make_persistent_hash_type()
    acc = HashTable.EMPTY()

    for i in range(1000):
        validate_persistent_hash(acc)
        acc = acc.assoc(i % 10, i)

    for i in range(1000):
        validate_persistent_hash(acc)
        acc = acc.assoc(i % 10, i)

    assert len(acc) == 10
    assert len(list(acc.iteritems())) == 10
    for k, v in acc.iteritems():
        assert k <= 10
        assert v >= 990
        assert v % 10 == k
        assert acc.val_at(k, None) is v
예제 #6
0
파일: test_hash.py 프로젝트: pycket/pycket
def test_persistent_hash2():
    HashTable = make_persistent_hash_type()
    acc = HashTable.EMPTY()

    for i in range(1000):
        validate_persistent_hash(acc)
        acc = acc.assoc(i % 10, i)

    for i in range(1000):
        validate_persistent_hash(acc)
        acc = acc.assoc(i % 10, i)

    assert len(acc) == 10
    assert len(list(acc.iteritems())) == 10
    for k, v in acc.iteritems():
        assert k <= 10
        assert v >= 990
        assert v % 10 == k
        assert acc.val_at(k, None) is v
예제 #7
0
파일: test_hash.py 프로젝트: pycket/pycket
def test_persistent_hash__collisions_removal2():
    HashTable = make_persistent_hash_type(hashfun=lambda x: r_uint(hash(x) % 8))
    acc = HashTable.EMPTY()

    for i in range(1000):
        validate_persistent_hash(acc)
        acc = acc.assoc(i % 10, i).without(i % 10)

    assert len(acc) == 0
    assert list(acc.iteritems()) == []

    for i in range(1000):
        validate_persistent_hash(acc)
        acc = acc.assoc(i % 10, i).without(i % 10 + 1)

    assert len(acc) == 10
    assert len(list(acc.iteritems())) == 10
    for k, v in acc.iteritems():
        assert k <= 10
        assert v >= 990
        assert v % 10 == k
        assert acc.val_at(k, None) is v
예제 #8
0
파일: test_hash.py 프로젝트: pycket/pycket
def test_persistent_hash__collisions_removal2():
    HashTable = make_persistent_hash_type(
        hashfun=lambda x: r_uint(hash(x) % 8))
    acc = HashTable.EMPTY()

    for i in range(1000):
        validate_persistent_hash(acc)
        acc = acc.assoc(i % 10, i).without(i % 10)

    assert len(acc) == 0
    assert list(acc.iteritems()) == []

    for i in range(1000):
        validate_persistent_hash(acc)
        acc = acc.assoc(i % 10, i).without(i % 10 + 1)

    assert len(acc) == 10
    assert len(list(acc.iteritems())) == 10
    for k, v in acc.iteritems():
        assert k <= 10
        assert v >= 990
        assert v % 10 == k
        assert acc.val_at(k, None) is v