Skip to content

Commit 3eac935

Browse files
committed
added test_generators to test_itertools.py
1 parent 618064f commit 3eac935

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

graalpython/com.oracle.graal.python.test/src/tests/test_itertools.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,32 @@ def keyfunc(obj):
101101

102102
data = [None, None, None, 20]
103103
assert list(map(lambda x: x[0], list(groupby(data)))) == [None, 20]
104+
105+
def test_generators(self):
106+
# test that generators are accepted like input values
107+
108+
def g(seqn):
109+
for i in seqn:
110+
yield i
111+
112+
def g2(seqn):
113+
for i in seqn:
114+
yield (i, i)
115+
116+
self.assertEqual(list(accumulate(g([1,2]))), [1, 3])
117+
self.assertEqual(list(chain(g([1,2]), g([3,4]))), [1, 2, 3, 4])
118+
self.assertEqual(list(combinations(g([1,2]), 2)), [(1, 2)])
119+
self.assertEqual(list(combinations_with_replacement(g([1,2]), 2)), [(1, 1), (1, 2), (2, 2)])
120+
self.assertEqual(list(dropwhile(lambda a:0, g([1,2]))), [1, 2])
121+
self.assertEqual(list(filterfalse(lambda a:0, g([1,2]))), [1, 2])
122+
self.assertEqual(list(groupby(g([1,2])))[0][0], 1)
123+
self.assertEqual(list(islice(g([1,2,3]),2)), [1, 2])
124+
self.assertEqual(list(permutations(g([1,2]), 2)), [(1, 2), (2, 1)])
125+
self.assertEqual(list(product(g([1,2]), repeat=2)), [(1, 1), (1, 2), (2, 1), (2, 2)])
126+
self.assertEqual(list(starmap(pow, g2([2,3]))), [4, 27])
127+
c = cycle(g([1,2]))
128+
self.assertEqual(next(c), 1)
129+
self.assertEqual(list(takewhile(lambda a:a, g([1,2]))), [1, 2])
130+
self.assertEqual(list(tee(g([1, 2]))[0]), [1, 2])
131+
self.assertEqual(list(zip_longest(g2([2,3]))), [((2, 2),), ((3, 3),)])
132+

0 commit comments

Comments
 (0)