Ejemplo n.º 1
0
        /// <summary>
        /// Helper method that performs an Add test using HashSet, List and Dictionary
        /// </summary>
        private static void DoAddTest <T>(int testNumber, string description, List <T> inputs)
        {
            var hashsetResult = PerfTest.DoTest(
                inputs, () => new HashSet <T>(), (hs, i) => hs.Add(i), NumberOfTestRuns);

            var listResult = PerfTest.DoTest(
                inputs, () => new List <T>(), (l, i) => l.Add(i), NumberOfTestRuns);

            var dictResult = PerfTest.DoTest(
                inputs, () => new Dictionary <T, T>(), (dict, i) => dict.Add(i, i), NumberOfTestRuns);

            var dictResult2 = PerfTest.DoTest(
                inputs, () => new Dictionary <T, T>(), (dict, i) => dict[i] = i, NumberOfTestRuns);

            Console.WriteLine(@"
Test {0} ({1}) Result:
------------------------------------------------
HashSet.Add              : {2}
            
List.Add                 : {3}
            
Dictionary.Add           : {4}
            
Dictionary[n] = n        : {5}
------------------------------------------------",
                              testNumber,
                              description,
                              hashsetResult,
                              listResult,
                              dictResult,
                              dictResult2);
        }
Ejemplo n.º 2
0
        private static void DoRemoveTest <T>(
            int testNumber, string description, List <T> inputs, List <T> targets)
        {
            var hashsetResult = PerfTest.DoTest(
                targets, () => new HashSet <T>(inputs), (hs, t) => hs.Remove(t), NumberOfTestRuns);

            var listResult = PerfTest.DoTest(
                targets, () => new List <T>(inputs), (l, t) => l.Remove(t), NumberOfTestRuns);

            var dictResult = PerfTest.DoTest(
                targets, () => inputs.ToDictionary(i => i, i => i), (dict, t) => dict.Remove(t), NumberOfTestRuns);

            Console.WriteLine(@"
Test {0} ({1}) Result:
------------------------------------------------
HashSet.Remove      : {2}
            
List.Remove         : {3}
            
Dictionary.Remove   : {4}
------------------------------------------------",
                              testNumber,
                              description,
                              hashsetResult,
                              listResult,
                              dictResult);
        }