public void FindBestFlattening() { BenchmarkResult best = BenchmarkResult.FindBest <BenchmarkResult[]>(new[] { new[] { SlowResult }, new[] { FastResult }, new[] { SlowResult } }); Assert.AreEqual(FastResult, best); }
public static void Main(string[] args) { try { iterations = int.Parse(args[0]); } catch { } Random rng = new Random(); //goto ints; var dayOfWeekList = new List <DayOfWeek>(iterations); for (int i = 0; i < iterations; i++) { dayOfWeekList.Add((DayOfWeek)(rng.Next() % MAX_DAY_OF_WEEK)); } var dayOfWeekArray = dayOfWeekList.ToArray(); var buildComparerSuite = TestSuite.Create("build comparer", 0, 0) .Add(input => { //lcgComparer = LCG.EnumComparer.For<DayOfWeek>(); lcgComparer = new LCG.EnumComparer <DayOfWeek>(); return(0); }, "LCG EnumComparer") .Add(input => { //etComparer = EnumComparer.For<DayOfWeek>(); etComparer = new EnumComparer <DayOfWeek>(); return(0); }, "Expression Tree EnumComparer") .Add(input => { handWrittenComparer = new DayOfWeekComparer(); return(0); }, "Hand-Written EnumComparer") /*.RunTests()*/; Init(); var addToDictSuite = TestSuite.Create("add to dict", dayOfWeekArray, 0) .Add(input => { for (int i = 0; i < input.Length; i++) { var dayOfWeek = input[i]; lcgDict[dayOfWeek] = i; } return(0); }, "LCG EnumComparer") .Add(input => { for (int i = 0; i < input.Length; i++) { var dayOfWeek = input[i]; lcg2Dict[dayOfWeek] = i; } return(0); }, "LCG2 EnumComparer") .Add(input => { for (int i = 0; i < input.Length; i++) { var dayOfWeek = input[i]; etDict[dayOfWeek] = i; } return(0); }, "Expression Tree EnumComparer") .Add(input => { for (int i = 0; i < input.Length; i++) { var dayOfWeek = input[i]; handDict[dayOfWeek] = i; } return(0); }, "Hand-Written EnumComparer") .Add(input => { for (int i = 0; i < input.Length; i++) { var dayOfWeek = input[i]; defaultDict[dayOfWeek] = i; } return(0); }, "Default Comparer") .Add(input => { for (int i = 0; i < input.Length; i++) { int dayOfWeek = (int)input[i]; intDict[dayOfWeek] = i; } return(0); }, "Int Dictionary") .RunTests(); var best = BenchmarkResult.FindBest(/*buildComparerSuite, */ addToDictSuite); /* * Console.WriteLine("-------------------- Build --------------------"); * buildComparerSuite.Display(ResultColumns.NameAndScore, best); * */ Console.WriteLine("-------------------- Add --------------------"); addToDictSuite.Display(ResultColumns.NameAndScore, best); }
public void FindBestEmptySequenceRejected() { BenchmarkResult.FindBest(); }
public void FindBestNullSequenceRejected() { BenchmarkResult.FindBest((IEnumerable <BenchmarkResult>)null); }
public void FindBestNullElementRejected() { BenchmarkResult.FindBest(new BenchmarkResult[] { null }); }
public void FindBestNonFlattening() { BenchmarkResult best = BenchmarkResult.FindBest(new[] { SlowResult, FastResult, SlowResult }); Assert.AreEqual(FastResult, best); }
public void FindBestFlatteningNullElementRejected() { BenchmarkResult.FindBest(new IEnumerable <BenchmarkResult>[] { null }); }