1
2-module(fib).
3-export([fib/1]).
4-include_lib("eunit/include/eunit.hrl").
5
6fib(0) -> 1;
7fib(1) -> 1;
8fib(N) when N > 1 -> fib(N-1) + fib(N-2).
9
10fib_test_() ->
11    [?_assert(fib(0) =:= 1),
12     ?_assert(fib(1) =:= 1),
13     ?_assert(fib(2) =:= 2),
14     ?_assert(fib(3) =:= 3),
15     ?_assert(fib(4) =:= 5),
16     ?_assert(fib(5) =:= 8),
17     ?_assertException(error, function_clause, fib(-1)),
18     ?_assert(fib(31) =:= 2178309)
19    ].
20