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() to use a global cache, or to somehow allow 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 should omit trying 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 quite longer if the function were not memoized. This is certainly possible, but it's also prone to possible failures: something external to ...
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