mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Add two new functions, any() and all().
This commit is contained in:
parent
26e512a04f
commit
96229b1918
4 changed files with 129 additions and 0 deletions
|
@ -92,6 +92,14 @@ if have_unicode:
|
|||
(unichr(0x200), ValueError),
|
||||
]
|
||||
|
||||
class TestFailingBool:
|
||||
def __nonzero__(self):
|
||||
raise RuntimeError
|
||||
|
||||
class TestFailingIter:
|
||||
def __iter__(self):
|
||||
raise RuntimeError
|
||||
|
||||
class BuiltinTest(unittest.TestCase):
|
||||
|
||||
def test_import(self):
|
||||
|
@ -117,6 +125,34 @@ class BuiltinTest(unittest.TestCase):
|
|||
# str
|
||||
self.assertRaises(TypeError, abs, 'a')
|
||||
|
||||
def test_all(self):
|
||||
self.assertEqual(all([2, 4, 6]), True)
|
||||
self.assertEqual(all([2, None, 6]), False)
|
||||
self.assertRaises(RuntimeError, all, [2, TestFailingBool(), 6])
|
||||
self.assertRaises(RuntimeError, all, TestFailingIter())
|
||||
self.assertRaises(TypeError, all, 10) # Non-iterable
|
||||
self.assertRaises(TypeError, all) # No args
|
||||
self.assertRaises(TypeError, all, [2, 4, 6], []) # Too many args
|
||||
self.assertEqual(all([]), True) # Empty iterator
|
||||
S = [50, 60]
|
||||
self.assertEqual(all(x > 42 for x in S), True)
|
||||
S = [50, 40, 60]
|
||||
self.assertEqual(all(x > 42 for x in S), False)
|
||||
|
||||
def test_any(self):
|
||||
self.assertEqual(any([None, None, None]), False)
|
||||
self.assertEqual(any([None, 4, None]), True)
|
||||
self.assertRaises(RuntimeError, any, [None, TestFailingBool(), 6])
|
||||
self.assertRaises(RuntimeError, all, TestFailingIter())
|
||||
self.assertRaises(TypeError, any, 10) # Non-iterable
|
||||
self.assertRaises(TypeError, any) # No args
|
||||
self.assertRaises(TypeError, any, [2, 4, 6], []) # Too many args
|
||||
self.assertEqual(any([]), False) # Empty iterator
|
||||
S = [40, 60, 30]
|
||||
self.assertEqual(any(x > 42 for x in S), True)
|
||||
S = [10, 20, 30]
|
||||
self.assertEqual(any(x > 42 for x in S), False)
|
||||
|
||||
def test_apply(self):
|
||||
def f0(*args):
|
||||
self.assertEqual(args, ())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue