Lines Matching full:cache
7 Cache = None variable in CacheTestMixin
10 cache = self.Cache(maxsize=1)
11 self.assertEqual(0, len(cache))
12 self.assertEqual(1, cache.maxsize)
13 self.assertEqual(0, cache.currsize)
14 self.assertEqual(1, cache.getsizeof(None))
15 self.assertEqual(1, cache.getsizeof(""))
16 self.assertEqual(1, cache.getsizeof(0))
17 self.assertTrue(repr(cache).startswith(cache.__class__.__name__))
20 cache = self.Cache(maxsize=2)
22 cache.update({1: 1, 2: 2})
23 self.assertEqual(2, len(cache))
24 self.assertEqual(1, cache[1])
25 self.assertEqual(2, cache[2])
27 cache[3] = 3
28 self.assertEqual(2, len(cache))
29 self.assertEqual(3, cache[3])
30 self.assertTrue(1 in cache or 2 in cache)
32 cache[4] = 4
33 self.assertEqual(2, len(cache))
34 self.assertEqual(4, cache[4])
35 self.assertTrue(1 in cache or 2 in cache or 3 in cache)
38 cache = self.Cache(maxsize=2)
40 cache.update({1: 1, 2: 2})
41 self.assertEqual(2, len(cache))
42 self.assertEqual(1, cache[1])
43 self.assertEqual(2, cache[2])
45 cache.update({1: 1, 2: 2})
46 self.assertEqual(2, len(cache))
47 self.assertEqual(1, cache[1])
48 self.assertEqual(2, cache[2])
50 cache.update({1: "a", 2: "b"})
51 self.assertEqual(2, len(cache))
52 self.assertEqual("a", cache[1])
53 self.assertEqual("b", cache[2])
56 cache = self.Cache(maxsize=2)
58 cache.update({1: 1, 2: 2})
59 self.assertEqual(2, len(cache))
60 self.assertEqual(1, cache[1])
61 self.assertEqual(2, cache[2])
63 del cache[2]
64 self.assertEqual(1, len(cache))
65 self.assertEqual(1, cache[1])
66 self.assertNotIn(2, cache)
68 del cache[1]
69 self.assertEqual(0, len(cache))
70 self.assertNotIn(1, cache)
71 self.assertNotIn(2, cache)
74 del cache[1]
75 self.assertEqual(0, len(cache))
76 self.assertNotIn(1, cache)
77 self.assertNotIn(2, cache)
80 cache = self.Cache(maxsize=2)
82 cache.update({1: 1, 2: 2})
83 self.assertEqual(2, cache.pop(2))
84 self.assertEqual(1, len(cache))
85 self.assertEqual(1, cache.pop(1))
86 self.assertEqual(0, len(cache))
89 cache.pop(2)
91 cache.pop(1)
93 cache.pop(0)
95 self.assertEqual(None, cache.pop(2, None))
96 self.assertEqual(None, cache.pop(1, None))
97 self.assertEqual(None, cache.pop(0, None))
100 cache = self.Cache(maxsize=2)
102 cache.update({1: 1, 2: 2})
103 self.assertIn(cache.pop(1), {1: 1, 2: 2})
104 self.assertEqual(1, len(cache))
105 self.assertIn(cache.pop(2), {1: 1, 2: 2})
106 self.assertEqual(0, len(cache))
109 cache.popitem()
117 self.Cache(maxsize=2).popitem()
124 class DefaultCache(self.Cache):
129 cache = DefaultCache(maxsize=2)
131 self.assertEqual(0, cache.currsize)
132 self.assertEqual(2, cache.maxsize)
133 self.assertEqual(0, len(cache))
134 self.assertEqual(1, cache[1])
135 self.assertEqual(2, cache[2])
136 self.assertEqual(2, len(cache))
137 self.assertTrue(1 in cache and 2 in cache)
139 self.assertEqual(3, cache[3])
140 self.assertEqual(2, len(cache))
141 self.assertTrue(3 in cache)
142 self.assertTrue(1 in cache or 2 in cache)
143 self.assertTrue(1 not in cache or 2 not in cache)
145 self.assertEqual(4, cache[4])
146 self.assertEqual(2, len(cache))
147 self.assertTrue(4 in cache)
148 self.assertTrue(1 in cache or 2 in cache or 3 in cache)
153 self.assertEqual(4, cache.get(4))
154 self.assertEqual(None, cache.get(5))
155 self.assertEqual(5 * 5, cache.get(5, 5 * 5))
156 self.assertEqual(2, len(cache))
158 self.assertEqual(4, cache.pop(4))
160 cache.pop(5)
161 self.assertEqual(None, cache.pop(5, None))
162 self.assertEqual(5 * 5, cache.pop(5, 5 * 5))
163 self.assertEqual(1, len(cache))
165 cache.clear()
166 cache[1] = 1 + 1
167 self.assertEqual(1 + 1, cache.setdefault(1))
168 self.assertEqual(1 + 1, cache.setdefault(1, 1))
169 self.assertEqual(1 + 1, cache[1])
170 self.assertEqual(2 + 2, cache.setdefault(2, 2 + 2))
171 self.assertEqual(2 + 2, cache.setdefault(2, None))
172 self.assertEqual(2 + 2, cache.setdefault(2))
173 self.assertEqual(2 + 2, cache[2])
174 self.assertEqual(2, len(cache))
175 self.assertTrue(1 in cache and 2 in cache)
176 self.assertEqual(None, cache.setdefault(3))
177 self.assertEqual(2, len(cache))
178 self.assertTrue(3 in cache)
179 self.assertTrue(1 in cache or 2 in cache)
180 self.assertTrue(1 not in cache or 2 not in cache)
183 class DefaultCache(self.Cache):
191 cache = DefaultCache(maxsize=2, getsizeof=lambda x: x)
193 self.assertEqual(0, cache.currsize)
194 self.assertEqual(2, cache.maxsize)
196 self.assertEqual(1, cache[1])
197 self.assertEqual(1, len(cache))
198 self.assertEqual(1, cache.currsize)
199 self.assertIn(1, cache)
201 self.assertEqual(2, cache[2])
202 self.assertEqual(1, len(cache))
203 self.assertEqual(2, cache.currsize)
204 self.assertNotIn(1, cache)
205 self.assertIn(2, cache)
207 self.assertEqual(3, cache[3]) # not stored
208 self.assertEqual(1, len(cache))
209 self.assertEqual(2, cache.currsize)
210 self.assertEqual(1, cache[1])
211 self.assertEqual(1, len(cache))
212 self.assertEqual(1, cache.currsize)
213 self.assertEqual((1, 1), cache.popitem())
215 def _test_getsizeof(self, cache): argument
216 self.assertEqual(0, cache.currsize)
217 self.assertEqual(3, cache.maxsize)
218 self.assertEqual(1, cache.getsizeof(1))
219 self.assertEqual(2, cache.getsizeof(2))
220 self.assertEqual(3, cache.getsizeof(3))
222 cache.update({1: 1, 2: 2})
223 self.assertEqual(2, len(cache))
224 self.assertEqual(3, cache.currsize)
225 self.assertEqual(1, cache[1])
226 self.assertEqual(2, cache[2])
228 cache[1] = 2
229 self.assertEqual(1, len(cache))
230 self.assertEqual(2, cache.currsize)
231 self.assertEqual(2, cache[1])
232 self.assertNotIn(2, cache)
234 cache.update({1: 1, 2: 2})
235 self.assertEqual(2, len(cache))
236 self.assertEqual(3, cache.currsize)
237 self.assertEqual(1, cache[1])
238 self.assertEqual(2, cache[2])
240 cache[3] = 3
241 self.assertEqual(1, len(cache))
242 self.assertEqual(3, cache.currsize)
243 self.assertEqual(3, cache[3])
244 self.assertNotIn(1, cache)
245 self.assertNotIn(2, cache)
248 cache[3] = 4
249 self.assertEqual(1, len(cache))
250 self.assertEqual(3, cache.currsize)
251 self.assertEqual(3, cache[3])
254 cache[4] = 4
255 self.assertEqual(1, len(cache))
256 self.assertEqual(3, cache.currsize)
257 self.assertEqual(3, cache[3])
260 self._test_getsizeof(self.Cache(maxsize=3, getsizeof=lambda x: x))
263 class Cache(self.Cache): class
267 self._test_getsizeof(Cache(maxsize=3))
272 source = self.Cache(maxsize=2)
275 cache = pickle.loads(pickle.dumps(source))
276 self.assertEqual(source, cache)
278 self.assertEqual(2, len(cache))
279 self.assertEqual(1, cache[1])
280 self.assertEqual(2, cache[2])
282 cache[3] = 3
283 self.assertEqual(2, len(cache))
284 self.assertEqual(3, cache[3])
285 self.assertTrue(1 in cache or 2 in cache)
287 cache[4] = 4
288 self.assertEqual(2, len(cache))
289 self.assertEqual(4, cache[4])
290 self.assertTrue(1 in cache or 2 in cache or 3 in cache)
292 self.assertEqual(cache, pickle.loads(pickle.dumps(cache)))
298 # test empty cache, single element, large cache (recursion limit)
300 source = self.Cache(maxsize=n)
302 cache = pickle.loads(pickle.dumps(source))
303 self.assertEqual(n, len(cache))
304 self.assertEqual(source, cache)