Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(434)

Side by Side Diff: tools/json_schema_compiler/ordered_dict_test.py

Issue 11079010: Extensions Docs Server: Preserve JSON declaration order in extensions documentation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: more efficient ordered_dict Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 import copy
7 import unittest
8
9 from ordered_dict import OrderedDict
10
11 class OrderedDictTest(unittest.TestCase):
12 def setUp(self):
13 self.items = [
14 ('a', 1),
15 ('b', 2),
16 ('c', 3),
17 ('d', 4)
18 ]
19
20 def testGetSetPop(self):
21 od = OrderedDict(self.items)
22 self.assertEqual(1, od['a'])
23 self.assertEqual(2, od.get('b'))
24 self.assertEqual(None, od.get('z'))
25 self.assertEqual([], od.get('z', default=[]))
26 self.assertTrue('a' in od)
27 self.assertEqual(4, len(od))
28 del od['a']
29 self.assertEqual(3, len(od))
30 self.assertFalse('a' in od)
31 self.assertEqual(None, od.get('a'))
32 self.assertTrue('b' in od)
33 self.assertEqual(2, od.pop('b'))
34 self.assertFalse('b' in od)
35 self.assertEqual(None, od.get('b'))
36 od['b'] = 100
37 self.assertEqual(100, od.get('b'))
38 self.assertEqual(100, od['b'])
39 self.assertEqual(3, od['c'])
40 od['c'] = 5
41 self.assertEqual(5, od['c'])
42 od['od'] = od
43 self.assertEqual(5, od['od']['c'])
44 self.assertEqual(5, od['od']['od']['c'])
45 self.assertEqual(od, od.pop('od'))
46 self.assertEqual(None, od.get('od'))
47
48 def testKeysValuesItems(self):
49 od = OrderedDict(self.items)
50 self.assertEqual(self.items, od.items())
51 self.assertEqual([i[0] for i in self.items], od.keys())
52 self.assertEqual([i[1] for i in self.items], od.values())
53 for i, v in enumerate(od.iteritems()):
54 self.assertEqual(self.items[i], v)
55
56 items2 = [('%s2' % k, v + 1) for k, v in self.items]
57 od2 = OrderedDict(items2)
58 self.items.extend(items2)
59 self.assertEqual(4, len(od))
60 od.update(od2)
61 self.assertEqual(8, len(od))
62 self.assertEqual(self.items, od.items())
63 self.assertEqual([i[0] for i in self.items], od.keys())
64 self.assertEqual([i[1] for i in self.items], od.values())
65 for i, v in enumerate(od.iteritems()):
66 self.assertEqual(self.items[i], v)
67
68 def testEquals(self):
69 od = OrderedDict(self.items)
70 od2 = OrderedDict(self.items)
71 d = dict(self.items)
72 self.assertEqual(d, od)
73 self.assertEqual(od, od2)
74 d['e'] = 5
75 od['e'] = 5
76 self.assertEqual(d, od)
77 self.assertNotEqual(od, od2)
78 self.assertNotEqual(d, od2)
79 del d['e']
80 del od['e']
81 self.assertEqual(d, od)
82 self.assertEqual(d, od2)
83 self.assertEqual(od, od2)
84 d.update(od2)
85 od.update(od2)
86 self.assertEqual(d, od)
87 d['dict'] = od2
88 od['dict'] = od2
89 self.assertNotEqual(d, od2)
90 self.assertNotEqual(od, od2)
91 self.assertEqual(d, od)
92
93 od3 = copy.deepcopy(od2)
94 self.assertEqual(od2, od3)
95 item = od3.pop('a')
96 od3['a'] = item
97 self.assertNotEqual(od2, od3)
98 od2['a'] = item
99 self.assertNotEqual(od2, od3)
100 del od2['a']
101 od2['a'] = item
102 self.assertEqual(od2, od3)
103
104 def testAll(self):
105 d = dict(self.items)
106 od = OrderedDict(self.items)
107 self.assertEqual(d, od)
108
109 od2 = copy.deepcopy(od)
110 item = od2.pop('a')
111 self.assertFalse('a' in od2)
112 od2['a'] = item
113 self.assertTrue('a' in od2)
114 self.assertNotEqual(od, od2)
115 self.assertEqual(d, od2)
116
117 od['dict'] = od2
118 od2 = copy.deepcopy(od)
119 self.assertEquals(od, od2)
120 d['dict'] = dict(self.items)
121 self.assertEquals(d, od)
122 od['dict']['a'] = 5
123 self.assertNotEquals(od, od2)
124
125 if __name__ == '__main__':
126 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698