+++ /dev/null
-import unittest\r
-from test import test_support\r
-\r
-class DictSetTest(unittest.TestCase):\r
-\r
- def test_constructors_not_callable(self):\r
- kt = type({}.viewkeys())\r
- self.assertRaises(TypeError, kt, {})\r
- self.assertRaises(TypeError, kt)\r
- it = type({}.viewitems())\r
- self.assertRaises(TypeError, it, {})\r
- self.assertRaises(TypeError, it)\r
- vt = type({}.viewvalues())\r
- self.assertRaises(TypeError, vt, {})\r
- self.assertRaises(TypeError, vt)\r
-\r
- def test_dict_keys(self):\r
- d = {1: 10, "a": "ABC"}\r
- keys = d.viewkeys()\r
- self.assertEqual(len(keys), 2)\r
- self.assertEqual(set(keys), set([1, "a"]))\r
- self.assertEqual(keys, set([1, "a"]))\r
- self.assertNotEqual(keys, set([1, "a", "b"]))\r
- self.assertNotEqual(keys, set([1, "b"]))\r
- self.assertNotEqual(keys, set([1]))\r
- self.assertNotEqual(keys, 42)\r
- self.assertIn(1, keys)\r
- self.assertIn("a", keys)\r
- self.assertNotIn(10, keys)\r
- self.assertNotIn("Z", keys)\r
- self.assertEqual(d.viewkeys(), d.viewkeys())\r
- e = {1: 11, "a": "def"}\r
- self.assertEqual(d.viewkeys(), e.viewkeys())\r
- del e["a"]\r
- self.assertNotEqual(d.viewkeys(), e.viewkeys())\r
-\r
- def test_dict_items(self):\r
- d = {1: 10, "a": "ABC"}\r
- items = d.viewitems()\r
- self.assertEqual(len(items), 2)\r
- self.assertEqual(set(items), set([(1, 10), ("a", "ABC")]))\r
- self.assertEqual(items, set([(1, 10), ("a", "ABC")]))\r
- self.assertNotEqual(items, set([(1, 10), ("a", "ABC"), "junk"]))\r
- self.assertNotEqual(items, set([(1, 10), ("a", "def")]))\r
- self.assertNotEqual(items, set([(1, 10)]))\r
- self.assertNotEqual(items, 42)\r
- self.assertIn((1, 10), items)\r
- self.assertIn(("a", "ABC"), items)\r
- self.assertNotIn((1, 11), items)\r
- self.assertNotIn(1, items)\r
- self.assertNotIn((), items)\r
- self.assertNotIn((1,), items)\r
- self.assertNotIn((1, 2, 3), items)\r
- self.assertEqual(d.viewitems(), d.viewitems())\r
- e = d.copy()\r
- self.assertEqual(d.viewitems(), e.viewitems())\r
- e["a"] = "def"\r
- self.assertNotEqual(d.viewitems(), e.viewitems())\r
-\r
- def test_dict_mixed_keys_items(self):\r
- d = {(1, 1): 11, (2, 2): 22}\r
- e = {1: 1, 2: 2}\r
- self.assertEqual(d.viewkeys(), e.viewitems())\r
- self.assertNotEqual(d.viewitems(), e.viewkeys())\r
-\r
- def test_dict_values(self):\r
- d = {1: 10, "a": "ABC"}\r
- values = d.viewvalues()\r
- self.assertEqual(set(values), set([10, "ABC"]))\r
- self.assertEqual(len(values), 2)\r
-\r
- def test_dict_repr(self):\r
- d = {1: 10, "a": "ABC"}\r
- self.assertIsInstance(repr(d), str)\r
- r = repr(d.viewitems())\r
- self.assertIsInstance(r, str)\r
- self.assertTrue(r == "dict_items([('a', 'ABC'), (1, 10)])" or\r
- r == "dict_items([(1, 10), ('a', 'ABC')])")\r
- r = repr(d.viewkeys())\r
- self.assertIsInstance(r, str)\r
- self.assertTrue(r == "dict_keys(['a', 1])" or\r
- r == "dict_keys([1, 'a'])")\r
- r = repr(d.viewvalues())\r
- self.assertIsInstance(r, str)\r
- self.assertTrue(r == "dict_values(['ABC', 10])" or\r
- r == "dict_values([10, 'ABC'])")\r
-\r
- def test_keys_set_operations(self):\r
- d1 = {'a': 1, 'b': 2}\r
- d2 = {'b': 3, 'c': 2}\r
- d3 = {'d': 4, 'e': 5}\r
- self.assertEqual(d1.viewkeys() & d1.viewkeys(), {'a', 'b'})\r
- self.assertEqual(d1.viewkeys() & d2.viewkeys(), {'b'})\r
- self.assertEqual(d1.viewkeys() & d3.viewkeys(), set())\r
- self.assertEqual(d1.viewkeys() & set(d1.viewkeys()), {'a', 'b'})\r
- self.assertEqual(d1.viewkeys() & set(d2.viewkeys()), {'b'})\r
- self.assertEqual(d1.viewkeys() & set(d3.viewkeys()), set())\r
-\r
- self.assertEqual(d1.viewkeys() | d1.viewkeys(), {'a', 'b'})\r
- self.assertEqual(d1.viewkeys() | d2.viewkeys(), {'a', 'b', 'c'})\r
- self.assertEqual(d1.viewkeys() | d3.viewkeys(), {'a', 'b', 'd', 'e'})\r
- self.assertEqual(d1.viewkeys() | set(d1.viewkeys()), {'a', 'b'})\r
- self.assertEqual(d1.viewkeys() | set(d2.viewkeys()), {'a', 'b', 'c'})\r
- self.assertEqual(d1.viewkeys() | set(d3.viewkeys()),\r
- {'a', 'b', 'd', 'e'})\r
-\r
- self.assertEqual(d1.viewkeys() ^ d1.viewkeys(), set())\r
- self.assertEqual(d1.viewkeys() ^ d2.viewkeys(), {'a', 'c'})\r
- self.assertEqual(d1.viewkeys() ^ d3.viewkeys(), {'a', 'b', 'd', 'e'})\r
- self.assertEqual(d1.viewkeys() ^ set(d1.viewkeys()), set())\r
- self.assertEqual(d1.viewkeys() ^ set(d2.viewkeys()), {'a', 'c'})\r
- self.assertEqual(d1.viewkeys() ^ set(d3.viewkeys()),\r
- {'a', 'b', 'd', 'e'})\r
-\r
- def test_items_set_operations(self):\r
- d1 = {'a': 1, 'b': 2}\r
- d2 = {'a': 2, 'b': 2}\r
- d3 = {'d': 4, 'e': 5}\r
- self.assertEqual(\r
- d1.viewitems() & d1.viewitems(), {('a', 1), ('b', 2)})\r
- self.assertEqual(d1.viewitems() & d2.viewitems(), {('b', 2)})\r
- self.assertEqual(d1.viewitems() & d3.viewitems(), set())\r
- self.assertEqual(d1.viewitems() & set(d1.viewitems()),\r
- {('a', 1), ('b', 2)})\r
- self.assertEqual(d1.viewitems() & set(d2.viewitems()), {('b', 2)})\r
- self.assertEqual(d1.viewitems() & set(d3.viewitems()), set())\r
-\r
- self.assertEqual(d1.viewitems() | d1.viewitems(),\r
- {('a', 1), ('b', 2)})\r
- self.assertEqual(d1.viewitems() | d2.viewitems(),\r
- {('a', 1), ('a', 2), ('b', 2)})\r
- self.assertEqual(d1.viewitems() | d3.viewitems(),\r
- {('a', 1), ('b', 2), ('d', 4), ('e', 5)})\r
- self.assertEqual(d1.viewitems() | set(d1.viewitems()),\r
- {('a', 1), ('b', 2)})\r
- self.assertEqual(d1.viewitems() | set(d2.viewitems()),\r
- {('a', 1), ('a', 2), ('b', 2)})\r
- self.assertEqual(d1.viewitems() | set(d3.viewitems()),\r
- {('a', 1), ('b', 2), ('d', 4), ('e', 5)})\r
-\r
- self.assertEqual(d1.viewitems() ^ d1.viewitems(), set())\r
- self.assertEqual(d1.viewitems() ^ d2.viewitems(),\r
- {('a', 1), ('a', 2)})\r
- self.assertEqual(d1.viewitems() ^ d3.viewitems(),\r
- {('a', 1), ('b', 2), ('d', 4), ('e', 5)})\r
-\r
-\r
-\r
-\r
-def test_main():\r
- test_support.run_unittest(DictSetTest)\r
-\r
-if __name__ == "__main__":\r
- test_main()\r