public void DebugFibonacci()
        {
            for (int n = 0; n < 10; n++)
            {
                BigInteger result0 = BigIntegerMathLib.Fibonacci0(n);
                BigInteger result1 = BigIntegerMathLib.Fibonacci1(n);
                BigInteger result2 = BigIntegerMathLib.Fibonacci2(n);

                string message = string.Format("{0},  {1},  {2},  {3}", n, result0, result1, result2);
                Debug.WriteLine(message);
            }
        }
        public void TestFibonacciBigIntegerEqualsFibonacciInt()
        {
            for (int n = 0; n < 10; n++)
            {
                // arrange
                int        fibonacci0 = BigIntegerMathLib.Fibonacci0(n);
                BigInteger fibonacci1 = BigIntegerMathLib.Fibonacci1(n);

                // assert
                Assert.AreEqual((BigInteger)fibonacci0, fibonacci1);
            }
        }
 public void TestFibonacci1OfNegativeNumberThrowsArgumentException()
 {
     // assert
     Assert.That(() => BigIntegerMathLib.Fibonacci0(-1), Throws.TypeOf <ArgumentException>());
 }