/// <summary> /// /// </summary> /// <param name="tester"></param> /// <param name="trier"></param> /// <param name="startNumber"></param> /// <param name="endNumber"></param> /// <returns></returns> protected static PrimeDataDto FindPrimesBetweenTimer(IFindPrimesBetween tester, IIsPrime trier, ulong startNumber, ulong endNumber) { PrimeDataDto results = null; System.Diagnostics.Debug.WriteLine($"{tester.GetType().Name} : {trier.GetType().Name} : {startNumber.ToString("#,##0")} - {endNumber.ToString("#,##0")}"); Console.Write($"{DateTime.Now.ToString()} : {tester.GetType().Name} : {trier.GetType().Name} : {startNumber.ToString("#,##0")} - {endNumber.ToString("#,##0")} : "); Stopwatch sw = new Stopwatch(); sw.Restart(); tester.Execute(startNumber, endNumber, trier); sw.Stop(); results = tester.Data; //Console.WriteLine($"{DateTime.Now.ToString()} {Environment.NewLine}{tester.GetType().Name} : {trier.GetType().Name}{Environment.NewLine}{startNumber.ToString("#,##0")} - {endNumber.ToString("#,##0")}{Environment.NewLine} Time Taken : {PrimeNumbers.Model.Utilities.ElaspedTimeFormatter(sw.Elapsed)}{Environment.NewLine}Result : {result.Count.ToString("#,##0")}{Environment.NewLine}"); Console.Write($"Result = {results.PrimeNumbers.Count().ToString("#,##0")} : Time Taken : {PrimeNumbers.Model.Utilities.ElaspedTimeFormatter(sw.Elapsed)}"); Console.WriteLine(); return(results); }
/// <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(); }
public FindPrimesBetweenTestBase(IFindPrimesBetween tester, IIsPrime primeTester) { this.Tester = tester; this.PrimeTester = primeTester; }
/// <summary> /// /// </summary> /// <param name="startNumber"></param> /// <param name="endNumber"></param> /// <param name="primeChecker"></param> /// <param name="primeFinder"></param> /// <param name="primeFileManagement"></param> public FindPrimesBetweenGenerator(ulong startNumber, ulong endNumber, IIsPrime primeChecker, IFindPrimesBetween primeFinder, ISavePrimes primeFileManagement) : base(startNumber, endNumber) { if (primeChecker == null) { throw new ArgumentNullException("primeChecker"); } if (primeFinder == null) { throw new ArgumentNullException("primeFinder"); } if (primeFileManagement == null) { throw new ArgumentNullException("primeFileManagement"); } this.PrimeChecker = primeChecker; this.PrimeFinder = primeFinder; this.PrimeFileSaver = primeFileManagement; }