Exemple #1
0
        public static void Init()
        {
            etComparer          = EnumComparer.For <DayOfWeek>();
            lcgComparer         = LCG.EnumComparer.For <DayOfWeek>();
            lcg2Comparer        = LCG.EnumComparer2 <DayOfWeek> .Instance;
            handWrittenComparer = new DayOfWeekComparer();

            lcgDict     = new Dictionary <DayOfWeek, int>(MAX_DAY_OF_WEEK, lcgComparer);
            lcg2Dict    = new Dictionary <DayOfWeek, int>(MAX_DAY_OF_WEEK, lcg2Comparer);
            etDict      = new Dictionary <DayOfWeek, int>(MAX_DAY_OF_WEEK, etComparer);
            handDict    = new Dictionary <DayOfWeek, int>(MAX_DAY_OF_WEEK, handWrittenComparer);
            defaultDict = new Dictionary <DayOfWeek, int>(MAX_DAY_OF_WEEK);
            intDict     = new Dictionary <int, int>(MAX_DAY_OF_WEEK);
        }
Exemple #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);
        }