Refactor iteration.

This commit is contained in:
Roman Zeyde
2014-07-04 08:37:55 +03:00
committed by Roman Zeyde
parent 4f5678f687
commit 40915f4f15
3 changed files with 40 additions and 10 deletions

18
test_common.py Normal file
View File

@@ -0,0 +1,18 @@
import common
import numpy as np
def iterlist(x, *args, **kwargs):
x = np.array(x)
return [(offset, list(buf)) for offset, buf in common.iterate(x, *args, **kwargs)]
def test_iterate():
N = 10
assert iterlist(range(N), 1) == [(i, [i]) for i in range(N)]
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(N-1)]
assert iterlist(range(N), 3) == [(i, [i, i+1, i+2]) for i in range(N-2)]
assert iterlist(range(N), 3, advance=2) == [(i, [i, i+1, i+2]) for i in range(0, N-2, 2)]
assert iterlist(range(N), 3, advance=3) == [(i, [i, i+1, i+2]) for i in range(0, N-2, 3)]
assert iterlist(range(N), 2, offset=5) == [(i, [i, i+1]) for i in range(5, N-1)]
assert iterlist(range(N), 1, func=lambda b: -b) == [(i, [-i]) for i in range(N)]