(self)
| 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 |
nothing calls this directly
no test coverage detected