Files
amodem/tests/test_common.py
2015-01-16 10:51:11 +02:00

62 lines
1.3 KiB
Python

from amodem import common
import numpy as np
def iterlist(x, *args, **kwargs):
x = np.array(x)
return list(
(i, list(x))
for i, x in common.iterate(x, index=True, *args, **kwargs)
)
def test_iterate():
N = 10
assert iterlist(range(N), 1) == [
(i, [i]) for i in range(N)]
assert iterlist(range(N), 2) == [
(i, [i, i+1]) for i in range(0, N-1, 2)]
assert iterlist(range(N), 3) == [
(i, [i, i+1, i+2]) for i in range(0, N-2, 3)]
assert iterlist(range(N), 1, func=lambda b: -np.array(b)) == [
(i, [-i]) for i in range(N)]
def test_split():
L = [(i*2, i*2+1) for i in range(10)]
iters = common.split(L, n=2)
assert list(zip(*iters)) == L
def test_icapture():
x = range(100)
y = []
z = []
for i in common.icapture(x, result=y):
z.append(i)
assert list(x) == y
assert list(x) == z
def test_dumps_loads():
x = np.array([.1, .4, .2, .6, .3, .5])
y = common.loads(common.dumps(x))
assert all(x == y)
def test_izip():
x = range(10)
y = range(-10, 0)
assert list(common.izip([x, y])) == list(zip(x, y))
def test_holder():
d = {'x': 1, 'y': 2.3}
a = common.AttributeHolder(d)
assert a.x == d['x']
assert a.y == d['y']
assert repr(a) == 'AttributeHolder(x=1, y=2.3)'