diff options
Diffstat (limited to 'Lib/test/test_functools.py')
-rw-r--r-- | Lib/test/test_functools.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Lib/test/test_functools.py b/Lib/test/test_functools.py index 70a8ad6..4dd6fab 100644 --- a/Lib/test/test_functools.py +++ b/Lib/test/test_functools.py @@ -482,6 +482,30 @@ class TestLRU(unittest.TestCase): self.assertEqual(f.hits, 0) self.assertEqual(f.misses, 1) + # test size zero (which means "never-cache") + f_cnt = 0 + @functools.lru_cache(0) + def f(): + nonlocal f_cnt + f_cnt += 1 + return 20 + self.assertEqual(f(), 20) + self.assertEqual(f(), 20) + self.assertEqual(f(), 20) + self.assertEqual(f_cnt, 3) + + # test size one + f_cnt = 0 + @functools.lru_cache(1) + def f(): + nonlocal f_cnt + f_cnt += 1 + return 20 + self.assertEqual(f(), 20) + self.assertEqual(f(), 20) + self.assertEqual(f(), 20) + self.assertEqual(f_cnt, 1) + def test_lfu(self): def orig(x, y): return 3*x+y @@ -503,6 +527,30 @@ class TestLRU(unittest.TestCase): self.assertEqual(f.hits, 0) self.assertEqual(f.misses, 1) + # test size zero (which means "never-cache") + f_cnt = 0 + @functools.lfu_cache(0) + def f(): + nonlocal f_cnt + f_cnt += 1 + return 20 + self.assertEqual(f(), 20) + self.assertEqual(f(), 20) + self.assertEqual(f(), 20) + self.assertEqual(f_cnt, 3) + + # test size one + f_cnt = 0 + @functools.lfu_cache(1) + def f(): + nonlocal f_cnt + f_cnt += 1 + return 20 + self.assertEqual(f(), 20) + self.assertEqual(f(), 20) + self.assertEqual(f(), 20) + self.assertEqual(f_cnt, 1) + def test_main(verbose=None): test_classes = ( TestPartial, |