77 lines
1.4 KiB
Python
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
|