diff --git a/TailRecursiveFibonacci/src/TailRecursiveFibonacci.jl b/TailRecursiveFibonacci/src/TailRecursiveFibonacci.jl index 8c0375f..5add682 100644 --- a/TailRecursiveFibonacci/src/TailRecursiveFibonacci.jl +++ b/TailRecursiveFibonacci/src/TailRecursiveFibonacci.jl @@ -1,6 +1,11 @@ module TailRecursiveFibonacci -src = [] +export + Benitor + +src = [ + "benitor", +] for s = src include("$(s).jl") diff --git a/TailRecursiveFibonacci/src/benitor.jl b/TailRecursiveFibonacci/src/benitor.jl new file mode 100644 index 0000000..8db94df --- /dev/null +++ b/TailRecursiveFibonacci/src/benitor.jl @@ -0,0 +1,11 @@ +module Benitor + +function fibonacciTail(n::Int,a,b) + if n <= 0 + return b + end + return fibonacciTail(n-1 , b, a+b) +end + + +end # module diff --git a/TailRecursiveFibonacci/test/benitor.jl b/TailRecursiveFibonacci/test/benitor.jl new file mode 100644 index 0000000..70563fe --- /dev/null +++ b/TailRecursiveFibonacci/test/benitor.jl @@ -0,0 +1,7 @@ +@test Benitor.fibonacciTail(0,1,0) == 0 +@test Benitor.fibonacciTail(1,1,0) == 1 +@test Benitor.fibonacciTail(2,1,0) == 1 +@test Benitor.fibonacciTail(4,1,0) == 3 +@test Benitor.fibonacciTail(10,1,0) == 55 +@test Benitor.fibonacciTail(50,1,0) == 12586269025 +@test Benitor.fibonacciTail(100,1,0) == 3736710778780434371 diff --git a/TailRecursiveFibonacci/test/runtests.jl b/TailRecursiveFibonacci/test/runtests.jl index a1152a5..6f45892 100644 --- a/TailRecursiveFibonacci/test/runtests.jl +++ b/TailRecursiveFibonacci/test/runtests.jl @@ -1,7 +1,9 @@ using TailRecursiveFibonacci using Test -tests = [] +tests = [ + "benitor", +] @testset "TailRecursiveFibonacci.jl" begin for t in tests