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