#! /usr/bin/env/python
# -*- coding: iso-8859-1 -*-
## Copyright 2005/2006 by LivingLogic AG, Bayreuth/Germany.
## Copyright 2005/2006 by Walter Dörwald
##
## All Rights Reserved
##
## See __init__.py for the license
import py.test
from ll import misc
def test_item():
e = iter(range(10))
assert misc.item(e, 0) == 0
assert misc.item(e, 0) == 1
assert misc.item(e, -1) == 9
py.test.raises(IndexError, misc.item, e, -1)
assert misc.item(e, -1, 42) == 42
e = iter(range(10))
assert misc.item(e, 4) == 4
e = iter(range(10))
py.test.raises(IndexError, misc.item, e, 10)
e = iter(range(10))
assert misc.item(e, 10, 42) == 42
e = iter(range(10))
assert misc.item(e, -1) == 9
e = iter(range(10))
assert misc.item(e, -10) == 0
e = iter(range(10))
py.test.raises(IndexError, misc.item, e, -11)
e = iter(range(10))
assert misc.item(e, -11, 42) == 42
def test_first():
e = iter(range(10))
assert misc.first(e) == 0
assert misc.first(e) == 1
e = iter([])
py.test.raises(IndexError, misc.first, e)
e = iter([])
assert misc.first(e, 42) == 42
def test_count():
e = iter(range(10))
assert misc.count(e) == 10
assert misc.count(e) == 0
e = iter([])
assert misc.count(e) == 0
def test_iterator_bool():
e = misc.Iterator(iter(range(10)))
assert e
e = misc.Iterator(iter([]))
assert not e
def test_iterator_next():
e = misc.Iterator(iter(range(2)))
assert e.next() == 0
assert e.next() == 1
py.test.raises(StopIteration, e.next)
def test_iterator_getitem():
e = misc.Iterator(iter(range(10)))
assert e[0] == 0
assert e[0] == 1
assert e[-1] == 9
py.test.raises(IndexError, e.__getitem__, -1)
syntax highlighted by Code2HTML, v. 0.9.1