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