MCPcopy Index your code
hub / github.com/python/cpython / test_genexps

Method test_genexps

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

Source from the content-addressed store, hash-verified

1808 ('Macdonalds', 'Cheeseburger')])
1809
1810 def test_genexps(self):
1811 # generator expression tests
1812 g = ([x for x in range(10)] for x in range(1))
1813 self.assertEqual(next(g), [x for x in range(10)])
1814 try:
1815 next(g)
1816 self.fail('should produce StopIteration exception')
1817 except StopIteration:
1818 pass
1819
1820 a = 1
1821 try:
1822 g = (a for d in a)
1823 next(g)
1824 self.fail('should produce TypeError')
1825 except TypeError:
1826 pass
1827
1828 self.assertEqual(list((x, y) for x in 'abcd' for y in 'abcd'), [(x, y) for x in 'abcd' for y in 'abcd'])
1829 self.assertEqual(list((x, y) for x in 'ab' for y in 'xy'), [(x, y) for x in 'ab' for y in 'xy'])
1830
1831 a = [x for x in range(10)]
1832 b = (x for x in (y for y in a))
1833 self.assertEqual(sum(b), sum([x for x in range(10)]))
1834
1835 self.assertEqual(sum(x**2 for x in range(10)), sum([x**2 for x in range(10)]))
1836 self.assertEqual(sum(x*x for x in range(10) if x%2), sum([x*x for x in range(10) if x%2]))
1837 self.assertEqual(sum(x for x in (y for y in range(10))), sum([x for x in range(10)]))
1838 self.assertEqual(sum(x for x in (y for y in (z for z in range(10)))), sum([x for x in range(10)]))
1839 self.assertEqual(sum(x for x in [y for y in (z for z in range(10))]), sum([x for x in range(10)]))
1840 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)]))
1841 self.assertEqual(sum(x for x in (y for y in (z for z in range(10) if True) if False) if True), 0)
1842 check_syntax_error(self, "foo(x for x in range(10), 100)")
1843 check_syntax_error(self, "foo(100, x for x in range(10))")
1844
1845 def test_comprehension_specials(self):
1846 # test for outmost iterable precomputation

Callers

nothing calls this directly

Calls 4

check_syntax_errorFunction · 0.90
listClass · 0.85
assertEqualMethod · 0.45
failMethod · 0.45

Tested by

no test coverage detected