diff --git a/tests/test_memoize.py b/tests/test_memoize.py index 09003acee0496a0eec7c713d19ead15f7948025d..9b885d0fd7d2c739fddd1d7bc15bb8eb753f5ba0 100644 --- a/tests/test_memoize.py +++ b/tests/test_memoize.py @@ -51,6 +51,72 @@ def test_memoize(): assert timesCalled[0] == 7 +def test_memoize_create(): + + timesCalled = { + 'without_brackets' : 0, + 'with_brackets' : 0 + } + + @memoize.memoize + def without_brackets(): + timesCalled['without_brackets'] += 1 + return 5 + + @memoize.memoize() + def with_brackets(): + timesCalled['with_brackets'] += 1 + return 10 + + + for i in range(10): + assert without_brackets() == 5 + assert with_brackets() == 10 + assert timesCalled['without_brackets'] == 1 + assert timesCalled['with_brackets'] == 1 + + +def test_memoize_invalidate(): + + timesCalled = collections.defaultdict(lambda: 0) + + @memoize.memoize + def func(arg): + timesCalled[arg] += 1 + return arg * 5 + + + for i in range(5): + assert func(5) == 25 + assert func(10) == 50 + assert timesCalled[5] == 1 + assert timesCalled[10] == 1 + + func.invalidate() + + for i in range(5): + assert func(5) == 25 + assert func(10) == 50 + assert timesCalled[5] == 2 + assert timesCalled[10] == 2 + + func.invalidate(5) + for i in range(5): + assert func(5) == 25 + assert func(10) == 50 + assert timesCalled[5] == 3 + assert timesCalled[10] == 2 + + func.invalidate(10) + for i in range(5): + assert func(5) == 25 + assert func(10) == 50 + assert timesCalled[5] == 3 + assert timesCalled[10] == 3 + + + + def test_memoizeMD5(): timesCalled = [0]