import timeit

def make_setup_string(num):
    string = "import efficient_fibonacci as fib\n"
    string += f"num = {num}"

    return string

def main():
    print("\nLinear testing started")

    for num in range(15, 91, 15):  # We test 15, 30, 45, 60, 75, 90 as inputs
        comp_time = timeit.timeit('fib.linear_fibonacci(num)', setup=make_setup_string(num))
        print(f'\nLinear fibonacci calculation for n={num} took {comp_time} seconds')
        
    print("\nLogarithmic testing started")

    for num in range(15, 91, 15): # Again, test 15, 30 ... 90 as inputs
        comp_time = timeit.timeit('fib.log_fibonacci(num)', setup=make_setup_string(num))
        print(f'\nLogarithmic fibonacci calculation for n={num} took {comp_time} seconds')
        
    print()

if __name__ == '__main__':
    main()