Memoization testing
Testing the memoization higher-order function poses an interesting problem – just how would you go about it? The first idea would be to look into the cache – but that's private and not visible. Of course, we could change memoize() so that it uses a global cache or somehow allows external access to the cache, but doing that sort of internal exam is frowned upon: you should try to do your tests based on external properties only.
Accepting that we shouldn't try to examine the cache, we could go for a time control: calling a function such as fib(), for a large value of n, should take longer if the function isn't memoized. This is certainly possible, but it's also prone to possible failures: something external to your tests ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access