MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_genexps

Method test_genexps

Lib/test/test_grammar.py:1733–1766  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1731 ('Macdonalds', 'Cheeseburger')])
1732
1733 def test_genexps(self):
1734 # generator expression tests
1735 g = ([x for x in range(10)] for x in range(1))
1736 self.assertEqual(next(g), [x for x in range(10)])
1737 try:
1738 next(g)
1739 self.fail('should produce StopIteration exception')
1740 except StopIteration:
1741 pass
1742
1743 a = 1
1744 try:
1745 g = (a for d in a)
1746 next(g)
1747 self.fail('should produce TypeError')
1748 except TypeError:
1749 pass
1750
1751 self.assertEqual(list((x, y) for x in 'abcd' for y in 'abcd'), [(x, y) for x in 'abcd' for y in 'abcd'])
1752 self.assertEqual(list((x, y) for x in 'ab' for y in 'xy'), [(x, y) for x in 'ab' for y in 'xy'])
1753
1754 a = [x for x in range(10)]
1755 b = (x for x in (y for y in a))
1756 self.assertEqual(sum(b), sum([x for x in range(10)]))
1757
1758 self.assertEqual(sum(x**2 for x in range(10)), sum([x**2 for x in range(10)]))
1759 self.assertEqual(sum(x*x for x in range(10) if x%2), sum([x*x for x in range(10) if x%2]))
1760 self.assertEqual(sum(x for x in (y for y in range(10))), sum([x for x in range(10)]))
1761 self.assertEqual(sum(x for x in (y for y in (z for z in range(10)))), sum([x for x in range(10)]))
1762 self.assertEqual(sum(x for x in [y for y in (z for z in range(10))]), sum([x for x in range(10)]))
1763 self.assertEqual(sum(x for x in (y for y in (z for z in range(10) if True)) if True), sum([x for x in range(10)]))
1764 self.assertEqual(sum(x for x in (y for y in (z for z in range(10) if True) if False) if True), 0)
1765 check_syntax_error(self, "foo(x for x in range(10), 100)")
1766 check_syntax_error(self, "foo(100, x for x in range(10))")
1767
1768 def test_comprehension_specials(self):
1769 # test for outmost iterable precomputation

Callers

nothing calls this directly

Calls 6

check_syntax_errorFunction · 0.90
nextFunction · 0.85
listClass · 0.85
sumFunction · 0.50
assertEqualMethod · 0.45
failMethod · 0.45

Tested by

no test coverage detected