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

Method test_sum

Lib/test/test_builtin.py:2024–2094  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

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)]

Callers

nothing calls this directly

Calls 9

listClass · 0.85
assertTrueMethod · 0.80
SquaresClass · 0.70
BadSeqClass · 0.70
assertEqualMethod · 0.45
assertIsMethod · 0.45
assertRaisesMethod · 0.45
randomMethod · 0.45

Tested by

no test coverage detected