Create an in-memory cache (for caching Objects) with configurable max size and eviction strategy.
Two strategies should be implemented: LRU and LFU.
For this task it is assumed that only one thread will access the cache, so there is no need to make it thread-safe.
Please provide an example of usage of the cache as a unit test(s).