mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Implement __contains__ for dict_keys and dict_items.
(Not for dict_values, where it can't be done faster than the default implementation which just iterates the elements.)
This commit is contained in:
parent
83825acd1b
commit
3ac6741f79
2 changed files with 78 additions and 26 deletions
|
@ -3,17 +3,39 @@ from test import test_support
|
|||
|
||||
class DictSetTest(unittest.TestCase):
|
||||
|
||||
def test_constructors_not_callable(self):
|
||||
kt = type({}.KEYS())
|
||||
self.assertRaises(TypeError, kt, {})
|
||||
self.assertRaises(TypeError, kt)
|
||||
it = type({}.ITEMS())
|
||||
self.assertRaises(TypeError, it, {})
|
||||
self.assertRaises(TypeError, it)
|
||||
vt = type({}.VALUES())
|
||||
self.assertRaises(TypeError, vt, {})
|
||||
self.assertRaises(TypeError, vt)
|
||||
|
||||
def test_dict_keys(self):
|
||||
d = {1: 10, "a": "ABC"}
|
||||
keys = d.KEYS()
|
||||
self.assertEqual(set(keys), {1, "a"})
|
||||
self.assertEqual(len(keys), 2)
|
||||
self.assert_(1 in keys)
|
||||
self.assert_("a" in keys)
|
||||
self.assert_(10 not in keys)
|
||||
self.assert_("Z" not in keys)
|
||||
|
||||
def test_dict_items(self):
|
||||
d = {1: 10, "a": "ABC"}
|
||||
items = d.ITEMS()
|
||||
self.assertEqual(set(items), {(1, 10), ("a", "ABC")})
|
||||
self.assertEqual(len(items), 2)
|
||||
self.assert_((1, 10) in items)
|
||||
self.assert_(("a", "ABC") in items)
|
||||
self.assert_((1, 11) not in items)
|
||||
self.assert_(1 not in items)
|
||||
self.assert_(() not in items)
|
||||
self.assert_((1,) not in items)
|
||||
self.assert_((1, 2, 3) not in items)
|
||||
|
||||
def test_dict_values(self):
|
||||
d = {1: 10, "a": "ABC"}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue