/// <summary>
        /// This method starts a RollDie method and captures start/end times
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        TimeData StartRollDie(long n)
        {
            // create a TimeData object to store start/end times
            var result = new TimeData();

            AppendText($"Calculating Factorial({n})");
            result.StartTime = DateTime.Now;
            RollDie(n);
            result.EndTime = DateTime.Now;

            double minutes = (result.EndTime - result.StartTime).TotalMinutes;

            AppendText($"Calculation time = {minutes:F6} minutes\r\n");

            return(result);
        }
        /// <summary>
        /// This method starts a Factorial method and captures start/end times
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        TimeData StartFactorial(BigInteger n)
        {
            // create a TimeData object to store start/end times
            var result = new TimeData();

            AppendText($"Calculating Factorial({n})\r\n");
            result.StartTime = DateTime.Now;
            BigInteger factorialValue = CalculateFactorial(n);

            result.EndTime = DateTime.Now;

            AppendText($"Factorial({n}) = {factorialValue}");
            double minutes = (result.EndTime - result.StartTime).TotalMinutes;

            AppendText($"Calculation time = {minutes:F6} minutes\r\n");

            return(result);
        }
        } // end CalculateFactorial

        #endregion

        #region Fibonacci
        /// <summary>
        /// This method starts a Fibonacci method and captures start/end times
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        TimeData StartFibonacci(int n)
        {
            // create a TimeData object to store start/end times
            var result = new TimeData();

            AppendText($"Calculating Fibonacci({n})");
            result.StartTime = DateTime.Now;
            long fibonacciValue = Fibonacci(n);

            result.EndTime = DateTime.Now;

            AppendText($"Fibonacci({n}) = {fibonacciValue}");
            double minutes = (result.EndTime - result.StartTime).TotalMinutes;

            AppendText($"Calculation time = {minutes:F6} minutes\r\n");

            return(result);
        }