package aspectjhw.fib;

import junit.framework.TestCase;

/** A test class for Fibonacci.
 * @author Gary T. Leavens
 */
public class FibonacciTest extends TestCase {

    /**
     * Constructor for FibonacciTest.
     * @param name
     */
    public FibonacciTest(String name) {
        super(name);
    }

    public static void main(String[] args) {
        junit.textui.TestRunner.run(FibonacciTest.class);
    }

    /** Initialize the test fixture variables.
     * @see TestCase#setUp()
     */
    protected void setUp() throws Exception {
        super.setUp();
    }

    /** Test the fib method */
    public void testFib() {
        assertEquals(0L, Fibonacci.fib(0L));
        assertEquals(1L, Fibonacci.fib(1L));
        assertEquals(1L, Fibonacci.fib(2L));
        assertEquals(2L, Fibonacci.fib(3L));
//      assertEquals(3L, Fibonacci.fib(4L));
//      assertEquals(5L, Fibonacci.fib(5L));
//      assertEquals(8L, Fibonacci.fib(6L));
//      assertEquals(13L, Fibonacci.fib(7L));
        assertEquals(21L, Fibonacci.fib(8L));
//      assertEquals(34L, Fibonacci.fib(9L));
//      assertEquals(55L, Fibonacci.fib(10L));
//      assertEquals(89L, Fibonacci.fib(11L));
//      assertEquals(144L, Fibonacci.fib(12L));
//      assertEquals(233L, Fibonacci.fib(13L));
//      assertEquals(377L, Fibonacci.fib(14L));
//      assertEquals(610L, Fibonacci.fib(15L));
    }

}
