diff options
author | Thomas Kemmer <tkemmer@computer.org> | 2014-03-27 06:23:04 +0100 |
---|---|---|
committer | Thomas Kemmer <tkemmer@computer.org> | 2014-04-02 20:38:40 +0200 |
commit | 3b9d81924ae6b4011048096cf12a7cdad5508f30 (patch) | |
tree | 6c4979659e97c4fe4d448574903c51f9863ca9ee /tests | |
parent | 35f85f2f78f842b15609c5973f1fdd261c0a6476 (diff) | |
download | cachetools-3b9d81924ae6b4011048096cf12a7cdad5508f30.tar.gz |
Prepare v0.2.0
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_cache.py | 41 | ||||
-rw-r--r-- | tests/test_lfucache.py | 21 | ||||
-rw-r--r-- | tests/test_lrucache.py | 22 | ||||
-rw-r--r-- | tests/test_rrcache.py | 21 |
4 files changed, 105 insertions, 0 deletions
diff --git a/tests/test_cache.py b/tests/test_cache.py new file mode 100644 index 0000000..5c32f2b --- /dev/null +++ b/tests/test_cache.py @@ -0,0 +1,41 @@ +import unittest + +import cachetools +import collections + + +@cachetools.cache +class DictCache(dict): + pass + + +@cachetools.cache +class OrderedDictCache(collections.OrderedDict): + pass + + +class CacheTest(unittest.TestCase): + + def test_dict_cache(self): + cache = DictCache(maxsize=2) + + cache['a'] = 1 + cache['b'] = 2 + cache['c'] = 3 + + self.assertEqual(len(cache), 2) + self.assertTrue('a' in cache or ('b' in cache and 'c' in cache)) + self.assertTrue('b' in cache or ('a' in cache and 'c' in cache)) + self.assertTrue('c' in cache or ('a' in cache and 'b' in cache)) + + def test_ordered_dict_cache(self): + cache = OrderedDictCache(maxsize=2) + + cache['a'] = 1 + cache['b'] = 2 + cache['c'] = 3 + + self.assertEqual(len(cache), 2) + self.assertNotIn('a', cache) + self.assertEqual(cache['b'], 2) + self.assertEqual(cache['c'], 3) diff --git a/tests/test_lfucache.py b/tests/test_lfucache.py index 9f0de48..d414e20 100644 --- a/tests/test_lfucache.py +++ b/tests/test_lfucache.py @@ -8,6 +8,11 @@ def cached(n): return n +@lfu_cache(maxsize=2, typed=True) +def cached_typed(n): + return n + + class LFUCacheTest(unittest.TestCase): def test_insert(self): @@ -33,3 +38,19 @@ class LFUCacheTest(unittest.TestCase): self.assertEqual(cached.cache_info(), (0, 1, 2, 1)) self.assertEqual(cached(1), 1) self.assertEqual(cached.cache_info(), (1, 1, 2, 1)) + self.assertEqual(cached(1.0), 1.0) + self.assertEqual(cached.cache_info(), (2, 1, 2, 1)) + + cached.cache_clear() + self.assertEqual(cached(1), 1) + self.assertEqual(cached.cache_info(), (2, 2, 2, 1)) + + def test_typed_decorator(self): + self.assertEqual(cached_typed(1), 1) + self.assertEqual(cached_typed.cache_info(), (0, 1, 2, 1)) + self.assertEqual(cached_typed(1), 1) + self.assertEqual(cached_typed.cache_info(), (1, 1, 2, 1)) + self.assertEqual(cached_typed(1.0), 1.0) + self.assertEqual(cached_typed.cache_info(), (1, 2, 2, 2)) + self.assertEqual(cached_typed(1.0), 1.0) + self.assertEqual(cached_typed.cache_info(), (2, 2, 2, 2)) diff --git a/tests/test_lrucache.py b/tests/test_lrucache.py index da1104d..a4ceb6e 100644 --- a/tests/test_lrucache.py +++ b/tests/test_lrucache.py @@ -8,6 +8,11 @@ def cached(n): return n +@lru_cache(maxsize=2, typed=True) +def cached_typed(n): + return n + + class LRUCacheTest(unittest.TestCase): def test_insert(self): @@ -36,7 +41,24 @@ class LRUCacheTest(unittest.TestCase): self.assertNotIn('b', cache) def test_decorator(self): + self.assertEqual(cached.cache_info(), (0, 0, 2, 0)) self.assertEqual(cached(1), 1) self.assertEqual(cached.cache_info(), (0, 1, 2, 1)) self.assertEqual(cached(1), 1) self.assertEqual(cached.cache_info(), (1, 1, 2, 1)) + self.assertEqual(cached(1.0), 1.0) + self.assertEqual(cached.cache_info(), (2, 1, 2, 1)) + + cached.cache_clear() + self.assertEqual(cached(1), 1) + self.assertEqual(cached.cache_info(), (2, 2, 2, 1)) + + def test_typed_decorator(self): + self.assertEqual(cached_typed(1), 1) + self.assertEqual(cached_typed.cache_info(), (0, 1, 2, 1)) + self.assertEqual(cached_typed(1), 1) + self.assertEqual(cached_typed.cache_info(), (1, 1, 2, 1)) + self.assertEqual(cached_typed(1.0), 1.0) + self.assertEqual(cached_typed.cache_info(), (1, 2, 2, 2)) + self.assertEqual(cached_typed(1.0), 1.0) + self.assertEqual(cached_typed.cache_info(), (2, 2, 2, 2)) diff --git a/tests/test_rrcache.py b/tests/test_rrcache.py index c4bb7d2..f8eb534 100644 --- a/tests/test_rrcache.py +++ b/tests/test_rrcache.py @@ -8,6 +8,11 @@ def cached(n): return n +@rr_cache(maxsize=2, typed=True) +def cached_typed(n): + return n + + class RRCacheTest(unittest.TestCase): def test_insert(self): @@ -27,3 +32,19 @@ class RRCacheTest(unittest.TestCase): self.assertEqual(cached.cache_info(), (0, 1, 2, 1)) self.assertEqual(cached(1), 1) self.assertEqual(cached.cache_info(), (1, 1, 2, 1)) + self.assertEqual(cached(1.0), 1.0) + self.assertEqual(cached.cache_info(), (2, 1, 2, 1)) + + cached.cache_clear() + self.assertEqual(cached(1), 1) + self.assertEqual(cached.cache_info(), (2, 2, 2, 1)) + + def test_typed_decorator(self): + self.assertEqual(cached_typed(1), 1) + self.assertEqual(cached_typed.cache_info(), (0, 1, 2, 1)) + self.assertEqual(cached_typed(1), 1) + self.assertEqual(cached_typed.cache_info(), (1, 1, 2, 1)) + self.assertEqual(cached_typed(1.0), 1.0) + self.assertEqual(cached_typed.cache_info(), (1, 2, 2, 2)) + self.assertEqual(cached_typed(1.0), 1.0) + self.assertEqual(cached_typed.cache_info(), (2, 2, 2, 2)) |