Пример #1
0
        public void FindBestFlattening()
        {
            BenchmarkResult best = BenchmarkResult.FindBest <BenchmarkResult[]>(new[]
            {
                new[] { SlowResult },
                new[] { FastResult },
                new[] { SlowResult }
            });

            Assert.AreEqual(FastResult, best);
        }
Пример #2
0
        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);
        }
Пример #3
0
 public void FindBestEmptySequenceRejected()
 {
     BenchmarkResult.FindBest();
 }
Пример #4
0
 public void FindBestNullSequenceRejected()
 {
     BenchmarkResult.FindBest((IEnumerable <BenchmarkResult>)null);
 }
Пример #5
0
 public void FindBestNullElementRejected()
 {
     BenchmarkResult.FindBest(new BenchmarkResult[] { null });
 }
Пример #6
0
        public void FindBestNonFlattening()
        {
            BenchmarkResult best = BenchmarkResult.FindBest(new[] { SlowResult, FastResult, SlowResult });

            Assert.AreEqual(FastResult, best);
        }
Пример #7
0
 public void FindBestFlatteningNullElementRejected()
 {
     BenchmarkResult.FindBest(new IEnumerable <BenchmarkResult>[] { null });
 }