Package elisa :: Package plugins :: Package bad :: Package poblenou_frontend :: Package tests :: Module test_list_cache
[hide private]
[frames] | no frames]

Source Code for Module elisa.plugins.bad.poblenou_frontend.tests.test_list_cache

  1  from elisa.core.tests.elisa_test_case import ElisaTestCase 
  2  from elisa.plugins.bad.poblenou_frontend.list_cache import substract, \ 
  3                                                             cache, \ 
  4                                                             insert, \ 
  5                                                             remove, \ 
  6                                                             update_index, \ 
  7                                                             CacheList 
  8   
9 -class ListCacheTests(ElisaTestCase):
10
11 - def testSubstract(self):
12 r1 = (10, 20) 13 r2 = (15, 25) 14 15 r = substract(r1, r2) 16 self.assertEqual(r, (10, 14)) 17 r = substract(r2, r1) 18 self.assertEqual(r, (21, 25)) 19 20 r1 = (10, 20) 21 r2 = (25, 30) 22 23 r = substract(r1, r2) 24 self.assertEqual(r, r1) 25 r = substract(r2, r1) 26 self.assertEqual(r, r2) 27 28 r1 = (10, 20) 29 r2 = (20, 30) 30 31 r = substract(r1, r2) 32 self.assertEqual(r, (10, 19)) 33 r = substract(r2, r1) 34 self.assertEqual(r, (21, 30)) 35 36 r1 = (10, 10) 37 r2 = (10, 20) 38 39 r = substract(r1, r2) 40 self.assertEqual(r, None) 41 r = substract(r2, r1) 42 self.assertEqual(r, (11, 20)) 43 44 r1 = (20, 20) 45 r2 = (10, 20) 46 47 r = substract(r1, r2) 48 self.assertEqual(r, None) 49 r = substract(r2, r1) 50 self.assertEqual(r, (10, 19)) 51 52 r1 = (10, 20) 53 r2 = (13, 17) 54 55 self.assertRaises(IndexError, substract, r1, r2) 56 r = substract(r2, r1) 57 self.assertEqual(r, None)
58
59 - def testCachedOdd(self):
60 total = 10 61 cached = 5 62 63 c = cache(total, cached, 3) 64 self.assertEqual(c, (1, 5)) 65 66 c = cache(total, cached, 0) 67 self.assertEqual(c, (0, 2)) 68 69 c = cache(total, cached, 1) 70 self.assertEqual(c, (0, 3)) 71 72 c = cache(total, cached, 9) 73 self.assertEqual(c, (7, 9)) 74 75 c = cache(total, cached, 8) 76 self.assertEqual(c, (6, 9)) 77 78 total = 3 79 c = cache(total, cached, 0) 80 self.assertEqual(c, (0, 2)) 81 82 c = cache(total, cached, 1) 83 self.assertEqual(c, (0, 2)) 84 85 total = 0 86 c = cache(total, cached, 5) 87 self.assertEqual(c, None) 88 89 c = cache(total, cached, 0) 90 self.assertEqual(c, None)
91 92
93 - def testCachedEven(self):
94 total = 10 95 cached = 4 96 97 c = cache(total, cached, 3) 98 self.assertEqual(c, (1, 5)) 99 100 c = cache(total, cached, 0) 101 self.assertEqual(c, (0, 2)) 102 103 c = cache(total, cached, 1) 104 self.assertEqual(c, (0, 3)) 105 106 c = cache(total, cached, 9) 107 self.assertEqual(c, (7, 9)) 108 109 c = cache(total, cached, 8) 110 self.assertEqual(c, (6, 9))
111 112
113 - def testUnitMoveOdd(self):
114 total = 10 115 cached = 5 116 117 r, a = update_index(total, cached, 2, 3) 118 self.assertEqual(r, (0, 0)) 119 self.assertEqual(a, (5, 5)) 120 121 r, a = update_index(total, cached, 3, 4) 122 self.assertEqual(r, (1, 1)) 123 self.assertEqual(a, (6, 6)) 124 125 r, a = update_index(total, cached, 0, 1) 126 self.assertEqual(r, None) 127 self.assertEqual(a, (3, 3)) 128 129 r, a = update_index(total, cached, 9, 8) 130 self.assertEqual(r, None) 131 self.assertEqual(a, (6, 6))
132
133 - def testUnitMoveEven(self):
134 total = 10 135 cached = 2 136 137 r, a = update_index(total, cached, 2, 3) 138 self.assertEqual(r, (1, 1)) 139 self.assertEqual(a, (4, 4)) 140 141 r, a = update_index(total, cached, 3, 4) 142 self.assertEqual(r, (2, 2)) 143 self.assertEqual(a, (5, 5)) 144 145 r, a = update_index(total, cached, 0, 1) 146 self.assertEqual(r, None) 147 self.assertEqual(a, (2, 2)) 148 149 r, a = update_index(total, cached, 9, 8) 150 self.assertEqual(r, None) 151 self.assertEqual(a, (7, 7))
152
153 - def testMultipleMoveOdd(self):
154 total = 40 155 cached = 13 156 157 r, a = update_index(total, cached, 10, 30) 158 self.assertEqual(r, (4, 16)) 159 self.assertEqual(a, (24, 36)) 160 161 r, a = update_index(total, cached, 20, 25) 162 self.assertEqual(r, (14, 18)) 163 self.assertEqual(a, (27, 31)) 164 165 r, a = update_index(total, cached, 0, 5) 166 self.assertEqual(r, None) 167 self.assertEqual(a, (7, 11)) 168 169 r, a = update_index(total, cached, 0, 20) 170 self.assertEqual(r, (0, 6)) 171 self.assertEqual(a, (14, 26)) 172 173 r, a = update_index(total, cached, 39, 35) 174 self.assertEqual(r, None) 175 self.assertEqual(a, (29, 32)) 176 177 r, a = update_index(total, cached, 39, 20) 178 self.assertEqual(r, (33, 39)) 179 self.assertEqual(a, (14, 26))
180
181 - def testUnitInsertionOdd(self):
182 total = 10 183 cached = 5 184 185 index = 3 186 inserted = 8 187 188 r = insert(total, cached, index, inserted) 189 self.assertEqual(r, None) 190 191 inserted = 4 192 193 r = insert(total, cached, index, inserted) 194 self.assertEqual(r, 5) 195 196 inserted = 2 197 198 r = insert(total, cached, index, inserted) 199 self.assertEqual(r, 1) 200 201 inserted = 0 202 203 r = insert(total, cached, index, inserted) 204 self.assertEqual(r, None) 205 206 index = 0 207 inserted = 0 208 209 r = insert(total, cached, index, inserted) 210 self.assertEqual(r, 2) 211 212 total = 0 213 index = 0 214 inserted = 0 215 216 r = insert(total, cached, index, inserted) 217 self.assertEqual(r, None) 218 219 total = 1 220 index = 0 221 inserted = 0 222 223 r = insert(total, cached, index, inserted) 224 self.assertEqual(r, None) 225 226 total = 4 227 index = 0 228 inserted = 0 229 230 r = insert(total, cached, index, inserted) 231 self.assertEqual(r, 2)
232
233 - def testUnitRemovalOdd(self):
234 total = 10 235 cached = 5 236 237 index = 3 238 removed = 8 239 240 r = remove(total, cached, index, removed) 241 self.assertEqual(r, None) 242 243 removed = 4 244 245 r = remove(total, cached, index, removed) 246 self.assertEqual(r, 5) 247 248 removed = 2 249 250 r = remove(total, cached, index, removed) 251 self.assertEqual(r, 1) 252 253 removed = 0 254 255 r = remove(total, cached, index, removed) 256 self.assertEqual(r, None) 257 258 index = 0 259 removed = 0 260 261 r = remove(total, cached, index, removed) 262 self.assertEqual(r, 2) 263 264 total = 0 265 index = 0 266 removed = 0 267 268 r = remove(total, cached, index, removed) 269 self.assertEqual(r, None) 270 271 total = 1 272 index = 0 273 removed = 0 274 275 r = remove(total, cached, index, removed) 276 self.assertEqual(r, None) 277 278 total = 4 279 index = 0 280 removed = 0 281 282 r = remove(total, cached, index, removed) 283 self.assertEqual(r, 2)
284
285 - def testCacheListIndexZero(self):
286 real = [] 287 l = CacheList(5, real) 288 289 def generator(i): 290 def _pgen(): 291 return i
292 return _pgen
293 294 l.insert(0, generator(2)) 295 self.assertEqual(real, [2]) 296 297 l.append(generator(3)) 298 self.assertEqual(real, [2, 3]) 299 300 l.insert(0, generator(1)) 301 self.assertEqual(real, [1, 2, 3]) 302 303 l.insert(0, generator(0)) 304 self.assertEqual(real, [0, 1, 2]) 305 306 g = map(lambda i: generator(i), range(4, 10)) 307 l.extend(g) 308 self.assertEqual(real, [0, 1, 2]) 309 310 l.pop(0) 311 self.assertEqual(real, [1, 2, 3]) 312 313 l.pop(2) 314 self.assertEqual(real, [1, 2, 4]) 315 316 l.pop(3) 317 self.assertEqual(real, [1, 2, 4]) 318
319 - def testCacheListIndexChange(self):
320 real = [] 321 l = CacheList(5, real) 322 323 def generator(i): 324 def _pgen(): 325 return i
326 return _pgen 327 328 g = map(lambda i: generator(i), range(10)) 329 l.extend(g) 330 self.assertEqual(real, [0, 1, 2]) 331 332 l.current_index = 1 333 self.assertEqual(real, [0, 1, 2, 3]) 334 335 l.current_index = 2 336 self.assertEqual(real, [0, 1, 2, 3, 4]) 337 338 l.current_index = 3 339 self.assertEqual(real, [1, 2, 3, 4, 5]) 340 341 l.current_index = 6 342 self.assertEqual(real, [4, 5, 6, 7, 8]) 343 344 l.current_index = 7 345 self.assertEqual(real, [5, 6, 7, 8, 9]) 346 347 l.current_index = 8 348 self.assertEqual(real, [6, 7, 8, 9]) 349 350 l.current_index = 9 351 self.assertEqual(real, [7, 8, 9]) 352