[pypy-svn] r10023 - in pypy/dist/pypy/lib: . test2
hpk at codespeak.net
hpk at codespeak.net
Mon Mar 21 21:31:40 CET 2005
Author: hpk
Date: Mon Mar 21 21:31:40 2005
New Revision: 10023
Modified:
pypy/dist/pypy/lib/itertools.py
pypy/dist/pypy/lib/test2/test_itertools.py
Log:
use the plain test_itertools but with slower contants
Modified: pypy/dist/pypy/lib/itertools.py
==============================================================================
--- pypy/dist/pypy/lib/itertools.py (original)
+++ pypy/dist/pypy/lib/itertools.py Mon Mar 21 21:31:40 2005
@@ -356,20 +356,20 @@
s = slice(*args)
self.start, self.stop, self.step = s.start or 0, s.stop, s.step or 1
self.donext = iter(iterable).next
+ self.cnt = 0
def __iter__(self):
- cnt = 0
- while cnt < self.start:
+ return self
+
+ def next(self):
+ while self.cnt < self.start:
self.donext()
- cnt += 1
- while self.stop is None or cnt < self.stop:
- yield self.donext()
- cnt += 1
- skip = self.step - 1
- while skip:
- self.donext()
- cnt += 1
- skip -= 1
+ self.cnt += 1
+ if self.stop is None or self.cnt < self.stop:
+ self.start += self.step
+ self.cnt += 1
+ return self.donext()
+ raise StopIteration
class izip:
"""Make an iterator that aggregates elements from each of the
Modified: pypy/dist/pypy/lib/test2/test_itertools.py
==============================================================================
--- pypy/dist/pypy/lib/test2/test_itertools.py (original)
+++ pypy/dist/pypy/lib/test2/test_itertools.py Mon Mar 21 21:31:40 2005
@@ -95,9 +95,8 @@
zip('abc', 'def'))
self.assertEqual([pair for pair in izip('abc', 'def')],
zip('abc', 'def'))
-
- # ids = map(id, izip('abc', 'def'))
- # self.assertEqual(min(ids), max(ids)) ## NOT FEASIBLE IN PYPY
+ ids = map(id, izip('abc', 'def'))
+ self.assertEqual(min(ids), max(ids))
ids = map(id, list(izip('abc', 'def')))
self.assertEqual(len(dict.fromkeys(ids)), len(ids))
@@ -334,7 +333,7 @@
class TestVariousIteratorArgs(unittest.TestCase):
def test_chain(self):
- for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)):
+ for s in ("123", "", range(6), ('do', 1.2), xrange(2000,2030,5)):
for g in (G, I, Ig, S, L, R):
self.assertEqual(list(chain(g(s))), list(g(s)))
self.assertEqual(list(chain(g(s), g(s))), list(g(s))+list(g(s)))
@@ -343,7 +342,7 @@
self.assertRaises(ZeroDivisionError, list, chain(E(s)))
def test_cycle(self):
- for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)):
+ for s in ("123", "", range(6), ('do', 1.2), xrange(2000,2030,5)):
for g in (G, I, Ig, S, L, R):
tgtlen = len(s) * 3
expected = list(g(s))*3
@@ -354,7 +353,7 @@
self.assertRaises(ZeroDivisionError, list, cycle(E(s)))
def test_ifilter(self):
- for s in (range(10), range(0), range(1000), (7,11), xrange(2000,2200,5)):
+ for s in (range(10), range(0), range(6), (7,11), xrange(2000,2030,5)):
for g in (G, I, Ig, S, L, R):
self.assertEqual(list(ifilter(isEven, g(s))), filter(isEven, g(s)))
self.assertRaises(TypeError, ifilter, isEven, X(s))
@@ -362,7 +361,7 @@
self.assertRaises(ZeroDivisionError, list, ifilter(isEven, E(s)))
def test_ifilterfalse(self):
- for s in (range(10), range(0), range(1000), (7,11), xrange(2000,2200,5)):
+ for s in (range(10), range(0), range(10), (7,11), xrange(2000,2030,5)):
for g in (G, I, Ig, S, L, R):
self.assertEqual(list(ifilterfalse(isEven, g(s))), filter(isOdd, g(s)))
self.assertRaises(TypeError, ifilterfalse, isEven, X(s))
@@ -370,7 +369,7 @@
self.assertRaises(ZeroDivisionError, list, ifilterfalse(isEven, E(s)))
def test_izip(self):
- for s in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5)):
+ for s in ("123", "", range(10), ('do', 1.2), xrange(2000,2030,5)):
for g in (G, I, Ig, S, L, R):
self.assertEqual(list(izip(g(s))), zip(g(s)))
self.assertEqual(list(izip(g(s), g(s))), zip(g(s), g(s)))
@@ -388,7 +387,7 @@
self.assertRaises(ZeroDivisionError, list, imap(onearg, E(s)))
def test_islice(self):
- for s in ("12345", "", range(1000), ('do', 1.2), xrange(2000,2200,5)):
+ for s in ("12345", "", range(10), ('do', 1.2), xrange(2000,2030,5)):
for g in (G, I, Ig, S, L, R):
self.assertEqual(list(islice(g(s),1,None,2)), list(g(s))[1::2])
self.assertRaises(TypeError, islice, X(s), 10)
@@ -405,7 +404,7 @@
self.assertRaises(ZeroDivisionError, list, starmap(operator.pow, E(ss)))
def test_takewhile(self):
- for s in (range(10), range(0), range(1000), (7,11), xrange(2000,2200,5)):
+ for s in (range(10), range(0), range(10), (7,11), xrange(2000,2030,5)):
for g in (G, I, Ig, S, L, R):
tgt = []
for elem in g(s):
@@ -417,7 +416,7 @@
self.assertRaises(ZeroDivisionError, list, takewhile(isEven, E(s)))
def test_dropwhile(self):
- for s in (range(10), range(0), range(1000), (7,11), xrange(2000,2200,5)):
+ for s in (range(10), range(0), range(10), (7,11), xrange(2000,2030,5)):
for g in (G, I, Ig, S, L, R):
tgt = []
for elem in g(s):
More information about the Pypy-commit
mailing list