(self)
| 2022 | # test_str(): see test_str.py and test_bytes.py for str() tests. |
| 2023 | |
| 2024 | def test_sum(self): |
| 2025 | self.assertEqual(sum([]), 0) |
| 2026 | self.assertEqual(sum(list(range(2,8))), 27) |
| 2027 | self.assertEqual(sum(iter(list(range(2,8)))), 27) |
| 2028 | self.assertEqual(sum(Squares(10)), 285) |
| 2029 | self.assertEqual(sum(iter(Squares(10))), 285) |
| 2030 | self.assertEqual(sum([[1], [2], [3]], []), [1, 2, 3]) |
| 2031 | |
| 2032 | self.assertEqual(sum(range(10), 1000), 1045) |
| 2033 | self.assertEqual(sum(range(10), start=1000), 1045) |
| 2034 | self.assertEqual(sum(range(10), 2**31-5), 2**31+40) |
| 2035 | self.assertEqual(sum(range(10), 2**63-5), 2**63+40) |
| 2036 | |
| 2037 | self.assertEqual(sum(i % 2 != 0 for i in range(10)), 5) |
| 2038 | self.assertEqual(sum((i % 2 != 0 for i in range(10)), 2**31-3), |
| 2039 | 2**31+2) |
| 2040 | self.assertEqual(sum((i % 2 != 0 for i in range(10)), 2**63-3), |
| 2041 | 2**63+2) |
| 2042 | self.assertIs(sum([], False), False) |
| 2043 | |
| 2044 | self.assertEqual(sum(i / 2 for i in range(10)), 22.5) |
| 2045 | self.assertEqual(sum((i / 2 for i in range(10)), 1000), 1022.5) |
| 2046 | self.assertEqual(sum((i / 2 for i in range(10)), 1000.25), 1022.75) |
| 2047 | self.assertEqual(sum([0.5, 1]), 1.5) |
| 2048 | self.assertEqual(sum([1, 0.5]), 1.5) |
| 2049 | self.assertEqual(repr(sum([-0.0])), '0.0') |
| 2050 | self.assertEqual(repr(sum([-0.0], -0.0)), '-0.0') |
| 2051 | self.assertEqual(repr(sum([], -0.0)), '-0.0') |
| 2052 | self.assertTrue(math.isinf(sum([float("inf"), float("inf")]))) |
| 2053 | self.assertTrue(math.isinf(sum([1e308, 1e308]))) |
| 2054 | |
| 2055 | self.assertRaises(TypeError, sum) |
| 2056 | self.assertRaises(TypeError, sum, 42) |
| 2057 | self.assertRaises(TypeError, sum, ['a', 'b', 'c']) |
| 2058 | self.assertRaises(TypeError, sum, ['a', 'b', 'c'], '') |
| 2059 | self.assertRaises(TypeError, sum, [b'a', b'c'], b'') |
| 2060 | values = [bytearray(b'a'), bytearray(b'b')] |
| 2061 | self.assertRaises(TypeError, sum, values, bytearray(b'')) |
| 2062 | self.assertRaises(TypeError, sum, [[1], [2], [3]]) |
| 2063 | self.assertRaises(TypeError, sum, [{2:3}]) |
| 2064 | self.assertRaises(TypeError, sum, [{2:3}]*2, {2:3}) |
| 2065 | self.assertRaises(TypeError, sum, [], '') |
| 2066 | self.assertRaises(TypeError, sum, [], b'') |
| 2067 | self.assertRaises(TypeError, sum, [], bytearray()) |
| 2068 | self.assertRaises(OverflowError, sum, [1.0, 10**1000]) |
| 2069 | self.assertRaises(OverflowError, sum, [1j, 10**1000]) |
| 2070 | |
| 2071 | class BadSeq: |
| 2072 | def __getitem__(self, index): |
| 2073 | raise ValueError |
| 2074 | self.assertRaises(ValueError, sum, BadSeq()) |
| 2075 | |
| 2076 | empty = [] |
| 2077 | sum(([x] for x in range(10)), empty) |
| 2078 | self.assertEqual(empty, []) |
| 2079 | |
| 2080 | xs = [complex(random.random() - .5, random.random() - .5) |
| 2081 | for _ in range(10000)] |
nothing calls this directly
no test coverage detected