I am trying to write unit tests to ensure the correctness of the various decorators I wrote. Here is the beginning of the code I'm trying to write:
import unittest from memoizer import Memoizer from strategies.mru import MRU @Memoizer(strategy=MRU(maxsize=10)) def fib(x): if x < 2: return 1 else: return fib(x-1) + fib(x-2) class TestMemoizer(unittest.TestCase): def test_simple(self): self.assertEqual(fib(0), 1) self.assertEqual(fib(1), 1) self.assertEqual(fib(10), 89) if __name__ == '__main__': unittest.main()
Although this works decently for the MRU strategy described above, I plan to write additional strategies, in which case I will need to decorate the fib function differently. (Recall that since fib calls fib, setting fib2 = memoize (fib) does not remember intermediate values, so this will not work.) What is the correct way to test other decorators?
Ceasar bautista
source share