def test_cache(): """Testing that call to function was cached.""" def func(arg1, arg2): return arg1 * arg2 first = cache(func)(100, 200) second = cache(func)(100, 200) assert first is second
def test_positive_case(): """Testing that 2 calls of function are 1 object in memory""" def func(a, b): return (a**b)**2 cache_func = cache(func) some = 100, 200 val_1 = cache_func(*some) val_2 = cache_func(*some) assert val_1 is val_2
def test_cache_4(): def foo(a=10) -> int: return 3 + a cache_func = cache(foo) val1 = cache_func(a=1) val2 = cache_func(a=1) assert val1 is val2
def test_cache_1(): def func(a: int, b: int) -> int: return a * b cache_func = cache(func) some = 100, 200 val1 = cache_func(*some) val2 = cache_func(*some) assert val1 is val2
def test_cache_3(): def boo(nums: List[int]) -> int: return sum(x + 1 for x in nums) cache_func = cache(boo) nums_list = [1, 2, 3] val1 = cache_func(nums_list) val2 = cache_func(nums_list) assert val1 is val2