/// <summary>
        ///
        /// </summary>
        /// <param name="data"></param>
        /// <param name="allowedVersionNumbers"></param>
        protected static void TestSavePerformance(PrimeDataDto data, int[] allowedVersionNumbers = null)
        {
            Type[] findPrimesBetweenTypes = PerformanceTests.GetTestingTypes("PrimeNumbers.Model", "PrimeDataV", allowedVersionNumbers);

            if ((findPrimesBetweenTypes != null) &&
                (findPrimesBetweenTypes.Any()))
            {
                Console.WriteLine($"SavingPrimes Testing with {data.StartNumber.ToString("#,##0")} - {data.EndNumber.ToString("#,##0")}");

                foreach (Type type in findPrimesBetweenTypes)
                {
                    ISavePrimes savePrimesTester = (ISavePrimes)Activator.CreateInstance(type);

                    PerformanceTests.SavePrimesTimer(savePrimesTester, data);
                }
            }
            else
            {
                Console.WriteLine("No FindPrimesBetween Classes found to test with");
            }

            Console.WriteLine();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="numberOfPrimesToFind"></param>
        /// <param name="isPrimeTester"></param>
        /// <param name="allowedVersionNumbers"></param>
        protected static void TestFindPrimesToPerformance(int numberOfPrimesToFind, IIsPrime isPrimeTester, int[] allowedVersionNumbers = null)
        {
            Type[] findPrimesToTypes = PerformanceTests.GetTestingTypes("PrimeNumbers.Model", "FindPrimesToV", allowedVersionNumbers);

            if ((findPrimesToTypes != null) &&
                (findPrimesToTypes.Any()))
            {
                Console.WriteLine($"FindPrimesTo Testing with {numberOfPrimesToFind.ToString("#,##0")}");

                foreach (Type type in findPrimesToTypes)
                {
                    IFindPrimesTo findPrimesToTester = (IFindPrimesTo)Activator.CreateInstance(type);

                    PerformanceTests.FindPrimesToTimer(findPrimesToTester, isPrimeTester, numberOfPrimesToFind);
                }
            }
            else
            {
                Console.WriteLine("No FindPrimesTo Classes found to test with");
            }

            Console.WriteLine();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="startNumber"></param>
        /// <param name="endNumber"></param>
        /// <param name="isPrimeTester"></param>
        /// <param name="allowedVersionNumbers"></param>
        protected static void TestFindPrimesBetweenPerformance(ulong startNumber, ulong endNumber, IIsPrime isPrimeTester, int[] allowedVersionNumbers = null)
        {
            Type[] findPrimesBetweenTypes = PerformanceTests.GetTestingTypes("PrimeNumbers.Model", "FindPrimesBetweenV", allowedVersionNumbers);

            if ((findPrimesBetweenTypes != null) &&
                (findPrimesBetweenTypes.Any()))
            {
                Console.WriteLine($"FindPrimesBetween Testing with {startNumber.ToString("#,##0")} - {endNumber.ToString("#,##0")}");

                foreach (Type type in findPrimesBetweenTypes)
                {
                    IFindPrimesBetween findPrimesBetweenTester = (IFindPrimesBetween)Activator.CreateInstance(type);

                    PerformanceTests.FindPrimesBetweenTimer(findPrimesBetweenTester, isPrimeTester, startNumber, endNumber);
                }
            }
            else
            {
                Console.WriteLine("No FindPrimesBetween Classes found to test with");
            }

            Console.WriteLine();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="numberToTestWith"></param>
        /// <param name="allowedVersionNumbers"></param>
        protected static void TestIsPrimePerformance(ulong numberToTestWith, int[] allowedVersionNumbers = null)
        {
            Type[] isPrimeTypes = PerformanceTests.GetTestingTypes("PrimeNumbers.Model", "IsPrimeV", allowedVersionNumbers);

            if ((isPrimeTypes != null) &&
                (isPrimeTypes.Any()))
            {
                Console.WriteLine($"IsPrime Testing with {numberToTestWith.ToString("#,##0")}");

                foreach (Type type in isPrimeTypes)
                {
                    IIsPrime isPrimeTester = (IIsPrime)Activator.CreateInstance(type);

                    PerformanceTests.IsPrimeTimer(isPrimeTester, numberToTestWith);
                }
            }
            else
            {
                Console.WriteLine("No IsPrime Classes found to test with");
            }

            Console.WriteLine();
        }