def test_traverse(): """To test the traverse implementation we call gc.collect() while instances of all the C objects are still valid.""" acc = iteration_utilities.accumulate([]) app = iteration_utilities.applyfunc(lambda x: x, 1) cha = iteration_utilities.chained(int, float) cla = iteration_utilities.clamp([], 0, 1) com = iteration_utilities.complement(int) con = iteration_utilities.constant(1) dee = iteration_utilities.deepflatten([]) dup = iteration_utilities.duplicates([]) fli = iteration_utilities.flip(int) gro = iteration_utilities.grouper([], 2) ine = iteration_utilities.intersperse([], 1) iik = iteration_utilities.ItemIdxKey(10, 2) ite = iteration_utilities.iter_except(int, TypeError) mer = iteration_utilities.merge([]) nth = iteration_utilities.nth(1) pac = iteration_utilities.packed(int) par = iteration_utilities.partial(int, 10) rep = iteration_utilities.replicate([], 3) rou = iteration_utilities.roundrobin([]) see = iteration_utilities.Seen() sid = iteration_utilities.sideeffects([], lambda x: x) spl = iteration_utilities.split([], lambda x: True) sta = iteration_utilities.starfilter(lambda x: True, []) suc = iteration_utilities.successive([]) tab = iteration_utilities.tabulate(int) une = iteration_utilities.unique_everseen([]) unj = iteration_utilities.unique_justseen([]) gc.collect()
def test_accumulate_lengthhint_failure1(): f_it = _hf.FailLengthHint(toT([1, 2, 3])) acc = accumulate(f_it) with pytest.raises(_hf.FailLengthHint.EXC_TYP, match=_hf.FailLengthHint.EXC_MSG): operator.length_hint(acc) with pytest.raises(_hf.FailLengthHint.EXC_TYP, match=_hf.FailLengthHint.EXC_MSG): list(acc)
def exec(cls, expr): if isinstance(expr, iterables): head = List iterable = expr else: head = expr.__class__ iterable = expr.args return head(*accumulate(iterable))
def test_accumulate_lengthhint_failure2(): of_it = _hf.OverflowLengthHint(toT([1, 2, 3]), sys.maxsize + 1) acc = accumulate(of_it) with pytest.raises(OverflowError): operator.length_hint(acc) with pytest.raises(OverflowError): list(acc)
def test_accumulate_attributes1(): it = accumulate(toT([1, 2, 3])) assert it.func is None with pytest.raises(AttributeError): it.current for item in it: assert item == it.current assert it.func is None
def nth_combine(cls, obj, perms, ns): _len = len(obj) crs = tuple(accumulate([cls.ncr(_len, x) for x in perms])) ret = [] try: for n in ns: b = bisect_left(crs, n) ret.append(List(*nth_combination(obj, perms[b], n - crs[b] - 1))) except (ValueError, IndexError): raise FunctionException("Subsets::lim") return List(*ret)
def test_accumulate_copy1(): _hf.iterator_copy(accumulate(toT([1, 2, 3])))
def test_accumulate_pickle2(protocol): acc = accumulate([T(1), T(2), T(3), T(4)]) x = pickle.dumps(acc, protocol=protocol) assert list(pickle.loads(x)) == [T(1), T(3), T(6), T(10)]
def test_accumulate_failure5(): with pytest.raises(_hf.FailIter.EXC_TYP, match=_hf.FailIter.EXC_MSG): accumulate(_hf.FailIter())
def test_accumulate_failure6(): # Too few arguments with pytest.raises(TypeError): accumulate()
def test_accumulate_failure3(): with pytest.raises(TypeError): list(accumulate([T('a'), T(2), T(3)]))
def test_accumulate_failure4(): # Test that a failing iterator doesn't raise a SystemError with pytest.raises(_hf.FailNext.EXC_TYP, match=_hf.FailNext.EXC_MSG): next(accumulate(_hf.FailNext()))
def test_accumulate_failure1(): with pytest.raises(TypeError): list(accumulate([T(1), T(2), T(3)], None, T('a')))
def test_accumulate_normal1(): assert list(accumulate([T(1), T(2), T(3)])) == [T(1), T(3), T(6)]
def test_accumulate_lengthhint1(): it = accumulate([1, 2, 3, 4]) _hf.check_lengthhint_iteration(it, 4)
def test_accumulate_attributes2(): it = accumulate(toT([1, 2, 3]), operator.add) for item in it: assert item == it.current assert it.func is operator.add
def test_accumulate_binop1(): assert list(accumulate([T(1), T(2), T(3), T(4)], operator.add)) == [T(1), T(3), T(6), T(10)]
def test_accumulate_normal3(): # binop=None is identical to no binop assert list(accumulate([T(1), T(2), T(3)], None)) == [T(1), T(3), T(6)]
def test_accumulate_normal2(): # binop=None is identical to no binop assert list(accumulate([], None)) == []
def test_accumulate_pickle3(protocol): acc = accumulate([T(1), T(2), T(3), T(4)], operator.mul) assert next(acc) == T(1) x = pickle.dumps(acc, protocol=protocol) assert list(pickle.loads(x)) == [T(2), T(6), T(24)]
def test_accumulate_failure2(): with pytest.raises(TypeError): list(accumulate([T(1), T(2), T(3)], operator.add, T('a')))
def test_accumulate_binop2(): assert list(accumulate([T(1), T(2), T(3), T(4)], operator.mul)) == [T(1), T(2), T(6), T(24)]
def test_accumulate_empty1(): assert list(accumulate([])) == []
def test_accumulate_initial1(): assert list(accumulate([T(1), T(2), T(3)], None, T(10))) == [T(11), T(13), T(16)]
def test_accumulate_pickle4(protocol): acc = accumulate([T(1), T(2), T(3), T(4)], None, T(4)) x = pickle.dumps(acc, protocol=protocol) assert list(pickle.loads(x)) == [T(5), T(7), T(10), T(14)]