tests/test-lrucachedict.py
changeset 39565 2dcc68c7d25b
parent 39564 5d75a3c16193
child 39566 bd9d3a89f07b
equal deleted inserted replaced
39564:5d75a3c16193 39565:2dcc68c7d25b
   116 
   116 
   117         self.assertEqual(list(iter(d)), ['d', 'c', 'b', 'a'])
   117         self.assertEqual(list(iter(d)), ['d', 'c', 'b', 'a'])
   118         for key in ('a', 'b', 'c', 'd'):
   118         for key in ('a', 'b', 'c', 'd'):
   119             self.assertEqual(d[key], 'v%s' % key)
   119             self.assertEqual(d[key], 'v%s' % key)
   120 
   120 
       
   121     def testcopydecreasecapacity(self):
       
   122         d = util.lrucachedict(5)
       
   123         d['a'] = 'va'
       
   124         d['b'] = 'vb'
       
   125         d['c'] = 'vc'
       
   126         d['d'] = 'vd'
       
   127 
       
   128         dc = d.copy(2)
       
   129         for key in ('a', 'b'):
       
   130             self.assertNotIn(key, dc)
       
   131         for key in ('c', 'd'):
       
   132             self.assertIn(key, dc)
       
   133             self.assertEqual(dc[key], 'v%s' % key)
       
   134 
       
   135         dc['e'] = 've'
       
   136         self.assertNotIn('c', dc)
       
   137         for key in ('d', 'e'):
       
   138             self.assertIn(key, dc)
       
   139             self.assertEqual(dc[key], 'v%s' % key)
       
   140 
       
   141         # Original should remain unchanged.
       
   142         for key in ('a', 'b', 'c', 'd'):
       
   143             self.assertIn(key, d)
       
   144             self.assertEqual(d[key], 'v%s' % key)
       
   145 
       
   146     def testcopyincreasecapacity(self):
       
   147         d = util.lrucachedict(5)
       
   148         d['a'] = 'va'
       
   149         d['b'] = 'vb'
       
   150         d['c'] = 'vc'
       
   151         d['d'] = 'vd'
       
   152 
       
   153         dc = d.copy(6)
       
   154         for key in ('a', 'b', 'c', 'd'):
       
   155             self.assertIn(key, dc)
       
   156             self.assertEqual(dc[key], 'v%s' % key)
       
   157 
       
   158         dc['e'] = 've'
       
   159         dc['f'] = 'vf'
       
   160         for key in ('a', 'b', 'c', 'd', 'e', 'f'):
       
   161             self.assertIn(key, dc)
       
   162             self.assertEqual(dc[key], 'v%s' % key)
       
   163 
       
   164         dc['g'] = 'vg'
       
   165         self.assertNotIn('a', dc)
       
   166         for key in ('b', 'c', 'd', 'e', 'f', 'g'):
       
   167             self.assertIn(key, dc)
       
   168             self.assertEqual(dc[key], 'v%s' % key)
       
   169 
       
   170         # Original should remain unchanged.
       
   171         for key in ('a', 'b', 'c', 'd'):
       
   172             self.assertIn(key, d)
       
   173             self.assertEqual(d[key], 'v%s' % key)
       
   174 
   121 if __name__ == '__main__':
   175 if __name__ == '__main__':
   122     silenttestrunner.main(__name__)
   176     silenttestrunner.main(__name__)