diff options
Diffstat (limited to 'tests/test_lfu.py')
-rw-r--r-- | tests/test_lfu.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/test_lfu.py b/tests/test_lfu.py new file mode 100644 index 0000000..6679a88 --- /dev/null +++ b/tests/test_lfu.py @@ -0,0 +1,50 @@ +import unittest + +from cachetools import LFUCache + +from . import CacheTestMixin + + +class LFUCacheTest(unittest.TestCase, CacheTestMixin): + + Cache = LFUCache + + def test_lfu(self): + cache = LFUCache(maxsize=2) + + cache[1] = 1 + cache[1] + cache[2] = 2 + cache[3] = 3 + + self.assertEqual(len(cache), 2) + self.assertEqual(cache[1], 1) + self.assertTrue(2 in cache or 3 in cache) + self.assertTrue(2 not in cache or 3 not in cache) + + cache[4] = 4 + self.assertEqual(len(cache), 2) + self.assertEqual(cache[4], 4) + self.assertEqual(cache[1], 1) + + def test_lfu_getsizeof(self): + cache = LFUCache(maxsize=3, getsizeof=lambda x: x) + + cache[1] = 1 + cache[2] = 2 + + self.assertEqual(len(cache), 2) + self.assertEqual(cache[1], 1) + self.assertEqual(cache[2], 2) + + cache[3] = 3 + + self.assertEqual(len(cache), 1) + self.assertEqual(cache[3], 3) + self.assertNotIn(1, cache) + self.assertNotIn(2, cache) + + with self.assertRaises(ValueError): + cache[4] = 4 + self.assertEqual(len(cache), 1) + self.assertEqual(cache[3], 3) |