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

Method test_min

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

Source from the content-addressed store, hash-verified

1593 sorted(reversed(data), key=f)[-1])
1594
1595 def test_min(self):
1596 self.assertEqual(min('123123'), '1')
1597 self.assertEqual(min(1, 2, 3), 1)
1598 self.assertEqual(min((1, 2, 3, 1, 2, 3)), 1)
1599 self.assertEqual(min([1, 2, 3, 1, 2, 3]), 1)
1600
1601 self.assertEqual(min(1, 2, 3.0), 1)
1602 self.assertEqual(min(1, 2.0, 3), 1)
1603 self.assertEqual(min(1.0, 2, 3), 1.0)
1604
1605 with self.assertRaisesRegex(
1606 TypeError,
1607 'min expected at least 1 argument, got 0'
1608 ):
1609 min()
1610
1611 self.assertRaises(TypeError, min, 42)
1612 with self.assertRaisesRegex(
1613 ValueError,
1614 r'min\(\) iterable argument is empty'
1615 ):
1616 min(())
1617 class BadSeq:
1618 def __getitem__(self, index):
1619 raise ValueError
1620 self.assertRaises(ValueError, min, BadSeq())
1621
1622 for stmt in (
1623 "min(key=int)", # no args
1624 "min(default=None)",
1625 "min(1, 2, default=None)", # require container for default
1626 "min(default=None, key=int)",
1627 "min(1, key=int)", # single arg not iterable
1628 "min(1, 2, keystone=int)", # wrong keyword
1629 "min(1, 2, key=int, abc=int)", # two many keywords
1630 "min(1, 2, key=1)", # keyfunc is not callable
1631 ):
1632 try:
1633 exec(stmt, globals())
1634 except TypeError:
1635 pass
1636 else:
1637 self.fail(stmt)
1638
1639 self.assertEqual(min((1,), key=neg), 1) # one elem iterable
1640 self.assertEqual(min((1,2), key=neg), 2) # two elem iterable
1641 self.assertEqual(min(1, 2, key=neg), 2) # two elems
1642
1643 self.assertEqual(min((), default=None), None) # zero elem iterable
1644 self.assertEqual(min((1,), default=None), 1) # one elem iterable
1645 self.assertEqual(min((1,2), default=None), 1) # two elem iterable
1646
1647 self.assertEqual(min((), default=1, key=neg), 1)
1648 self.assertEqual(min((1, 2), default=1, key=neg), 2)
1649
1650 self.assertEqual(min((1, 2), key=None), 1)
1651
1652 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