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

Method test_max

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

Source from the content-addressed store, hash-verified

1530 self.assertEqual(l8, [(2, "A"), (1, "B")])
1531
1532 def test_max(self):
1533 self.assertEqual(max('123123'), '3')
1534 self.assertEqual(max(1, 2, 3), 3)
1535 self.assertEqual(max((1, 2, 3, 1, 2, 3)), 3)
1536 self.assertEqual(max([1, 2, 3, 1, 2, 3]), 3)
1537
1538 self.assertEqual(max(1, 2, 3.0), 3.0)
1539 self.assertEqual(max(1, 2.0, 3), 3)
1540 self.assertEqual(max(1.0, 2, 3), 3)
1541
1542 with self.assertRaisesRegex(
1543 TypeError,
1544 'max expected at least 1 argument, got 0'
1545 ):
1546 max()
1547
1548 self.assertRaises(TypeError, max, 42)
1549 with self.assertRaisesRegex(
1550 ValueError,
1551 r'max\(\) iterable argument is empty'
1552 ):
1553 max(())
1554 class BadSeq:
1555 def __getitem__(self, index):
1556 raise ValueError
1557 self.assertRaises(ValueError, max, BadSeq())
1558
1559 for stmt in (
1560 "max(key=int)", # no args
1561 "max(default=None)",
1562 "max(1, 2, default=None)", # require container for default
1563 "max(default=None, key=int)",
1564 "max(1, key=int)", # single arg not iterable
1565 "max(1, 2, keystone=int)", # wrong keyword
1566 "max(1, 2, key=int, abc=int)", # two many keywords
1567 "max(1, 2, key=1)", # keyfunc is not callable
1568 ):
1569 try:
1570 exec(stmt, globals())
1571 except TypeError:
1572 pass
1573 else:
1574 self.fail(stmt)
1575
1576 self.assertEqual(max((1,), key=neg), 1) # one elem iterable
1577 self.assertEqual(max((1,2), key=neg), 1) # two elem iterable
1578 self.assertEqual(max(1, 2, key=neg), 1) # two elems
1579
1580 self.assertEqual(max((), default=None), None) # zero elem iterable
1581 self.assertEqual(max((1,), default=None), 1) # one elem iterable
1582 self.assertEqual(max((1,2), default=None), 2) # two elem iterable
1583
1584 self.assertEqual(max((), default=1, key=neg), 1)
1585 self.assertEqual(max((1, 2), default=3, key=neg), 1)
1586
1587 self.assertEqual(max((1, 2), key=None), 2)
1588
1589 data = [random.randrange(200) for i in range(100)]

Callers

nothing calls this directly

Calls 6

assertRaisesRegexMethod · 0.80
randrangeMethod · 0.80
BadSeqClass · 0.70
assertEqualMethod · 0.45
assertRaisesMethod · 0.45
failMethod · 0.45

Tested by

no test coverage detected