ai-content-maker/.venv/Lib/site-packages/preshed/tests/test_hashing.py

77 lines
1.4 KiB
Python

import pytest
from preshed.maps import PreshMap
import random
def test_insert():
h = PreshMap()
assert h[1] is None
h[1] = 5
assert h[1] == 5
h[2] = 6
assert h[1] == 5
assert h[2] == 6
def test_resize():
h = PreshMap(4)
h[4] = 12
for i in range(10, 100):
value = int(i * (random.random() + 1))
h[i] = value
assert h[4] == 12
def test_zero_key():
h = PreshMap()
h[0] = 6
h[5] = 12
assert h[0] == 6
assert h[5] == 12
for i in range(500, 1000):
h[i] = i * random.random()
assert h[0] == 6
assert h[5] == 12
def test_iter():
key_sum = 0
val_sum = 0
h = PreshMap()
for i in range(56, 24, -3):
h[i] = i * 2
key_sum += i
val_sum += i * 2
for key, value in h.items():
key_sum -= key
val_sum -= value
assert key_sum == 0
assert val_sum == 0
def test_one_and_empty():
# See Issue #21
table = PreshMap()
for i in range(100, 110):
table[i] = i
del table[i]
assert table[0] == None
def test_many_and_empty():
# See Issue #21
table = PreshMap()
for i in range(100, 110):
table[i] = i
for i in range(100, 110):
del table[i]
assert table[0] == None
def test_zero_values():
table = PreshMap()
table[10] = 0
assert table[10] == 0
assert table[11] is None