def test_lru_with_maxsize_none(self): @functools.lru_cache(maxsize=None) def fib(n): if n < 2: return n return fib(n - 1) + fib(n - 2) self.assertEqual([fib(n) for n in range(16)], [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]) self.assertEqual(fib.cache_info(), functools._CacheInfo(hits=28, misses=16, maxsize=None, currsize=16)) fib.cache_clear() self.assertEqual(fib.cache_info(), functools._CacheInfo(hits=0, misses=0, maxsize=None, currsize=0))
def test_lru_with_maxsize_none(self): @functools.lru_cache(maxsize=None) def fib(n): if n < 2: return n return fib(n-1) + fib(n-2) self.assertEqual([fib(n) for n in range(16)], [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]) self.assertEqual(fib.cache_info(), functools._CacheInfo(hits=28, misses=16, maxsize=None, currsize=16)) fib.cache_clear() self.assertEqual(fib.cache_info(), functools._CacheInfo(hits=0, misses=0, maxsize=None, currsize=0))
def test_lru_with_keyword_args_maxsize_none(self): @fastcache.clru_cache(maxsize=None) def fib(n): if n < 2: return n return fib(n=n-1) + fib(n=n-2) self.assertEqual([fib(n=number) for number in range(16)], [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]) self.assertEqual(fib.cache_info(), _CacheInfo(hits=28, misses=16, maxsize=None, currsize=16)) fib.cache_clear() self.assertEqual(fib.cache_info(), _CacheInfo(hits=0, misses=0, maxsize=None, currsize=0))
def test_cache_usage(self, depth): """Test that the right number of cachings have been executed after clearing the cache""" pu.pauli_eigs.cache_clear() pu.pauli_eigs(depth) total_runs = sum([2**x for x in range(depth)]) assert functools._CacheInfo(depth - 1, depth, 128, depth) == pu.pauli_eigs.cache_info()
def _cache_info(wrapped, maxsize): return _CacheInfo( wrapped.hits, wrapped.misses, maxsize, len(wrapped._cache), )
def test_lru_with_keyword_args(self): @fastcache.clru_cache() def fib(n): if n < 2: return n return fib(n=n - 1) + fib(n=n - 2) self.assertEqual( [fib(n=number) for number in range(16)], [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]) self.assertEqual( fib.cache_info(), _CacheInfo(hits=28, misses=16, maxsize=128, currsize=16)) fib.cache_clear() self.assertEqual(fib.cache_info(), _CacheInfo(hits=0, misses=0, maxsize=128, currsize=0))
def decorator(func): t = TinyLFU(size=cache_size, sample=sample_size, false_positive=false_positive) def search(*args, **kargs): key = str(functools._make_key(args, kargs, True)) if key in t: search.__hits += 1 start = time.time() value = t.get(key) end = time.time() timeit = int(end * 1000000 - start * 1000000) return t.get(key) else: search.__misses += 1 result = func(*args, **kargs) start = time.time() t.set(key, result) end = time.time() timeit = int(end * 1000000 - start * 1000000) return result search.__hits = search.__misses = 0 search.cache_info = lambda: functools._CacheInfo( search.__hits, search.__misses, cache_size, len(t)) return search
def test_cache_usage(depth): """Test that the right number of cachings have been executed after clearing the cache""" operation_helpers.pauli_eigenvalues.cache_clear() operation_helpers.pauli_eigenvalues(depth) assert (functools._CacheInfo( depth - 1, depth, 128, depth) == operation_helpers.pauli_eigenvalues.cache_info())
def _cache_info(wrapped, maxsize): # pylint: disable=protected-access return _CacheInfo( wrapped.hits, wrapped.misses, maxsize, len(wrapped._cache), )
def test_lru_with_keyword_args_maxsize_none(self): class C: @per_instance_lru_cache(maxsize=None) def fib(self, n): if n < 2: return n return self.fib(n=n-1) + self.fib(n=n-2) instance = C() self.assertEqual([instance.fib(n=number) for number in range(16)], [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610]) self.assertEqual(instance.fib.cache_info(instance), functools._CacheInfo(hits=28, misses=16, maxsize=None, currsize=16)) instance.fib.cache_clear(instance) self.assertEqual(instance.fib.cache_info(instance), functools._CacheInfo(hits=0, misses=0, maxsize=None, currsize=0))
def test_lru_with_maxsize_negative(self): class C: @per_instance_lru_cache(maxsize=-10) def eq(self, n): return n instance = C() for _ in (0, 1): self.assertEqual([instance.eq(n) for n in range(150)], list(range(150))) self.assertEqual(C.eq.cache_info(instance), functools._CacheInfo(hits=0, misses=300, maxsize=-10, currsize=1))
def test_kwargs_order(self): # PEP 468: Preserving Keyword Argument Order class C: @per_instance_lru_cache(maxsize=10) def f(self, **kwargs): return list(kwargs.items()) instance = C() self.assertEqual(instance.f(a=1, b=2), [('a', 1), ('b', 2)]) self.assertEqual(instance.f(b=2, a=1), [('b', 2), ('a', 1)]) self.assertEqual(C.f.cache_info(instance), functools._CacheInfo(hits=0, misses=2, maxsize=10, currsize=2))
def cache_info(instance): with lock: instance_wrapper = get_instance_wrapper(id(instance)) if instance_wrapper is not None: return instance_wrapper.cache_info() return functools._CacheInfo(0, 0, maxsize, 0)
def test_get_pauli_eigenvalues_cache_usage(depth): """Test that the right number of cachings have been executed after clearing the cache""" get_pauli_eigenvalues.cache_clear() get_pauli_eigenvalues(depth) assert functools._CacheInfo(depth - 1, depth, 128, depth) == get_pauli_eigenvalues.cache_info()
def cache_info(): """Report cache statistics""" return functools._CacheInfo(hits, misses, None, cache_len())
def cache_info(): """Report cache statistics""" with lock: return _CacheInfo(stat[HITS], stat[MISSES], maxsize, cache_len())
def cache_info(): """Report cache statistics""" with lock: return _CacheInfo(hits, misses, maxsize, len(cache))