Exemplo n.º 1
0
 public PerfTestEnumeration(TreeFactory makeTree, int count, TestBase.TreeKind treeKind, TestBase.EnumKind enumKind, bool forward)
 {
     this.makeTree = makeTree;
     this.count    = count;
     this.treeKind = treeKind;
     this.enumKind = enumKind;
     this.forward  = forward;
 }
Exemplo n.º 2
0
 private static TestInfo <TreeType> .PerfTestFactoryMaker MakePerfTestEnumerationMakerBinder <TreeType, EntryType>(TestBase.TreeKind treeKind, TestBase.EnumKind enumKind, bool forward)
 {
     return(delegate(TreeFactory <TreeType> _treeFactory, int _count)
     {
         return MakePerfTestEnumerationMaker <TreeType, EntryType>(_treeFactory, _count, treeKind, enumKind, forward);
     });
 }
Exemplo n.º 3
0
 private static Measurement.MakePerfTest MakePerfTestEnumerationMaker <TreeType, EntryType>(TreeFactory <TreeType> treeFactory, int count, TestBase.TreeKind treeKind, TestBase.EnumKind enumKind, bool forward)
 {
     return(delegate()
     {
         return new PerfTestEnumeration <TreeType, EntryType>(delegate(int _count) { return treeFactory.Create(_count); }, count, treeKind, enumKind, forward);
     });
 }
Exemplo n.º 4
0
        private static TestInfo <TreeType>[] GetEnumerationTests <TreeType, EntryType>(TestBase.TreeKind treeKind, TrialInfo[] trialInfos)
        {
            List <TestInfo <TreeType> > list = new List <TestInfo <TreeType> >();

            foreach (TrialInfo trialInfo in trialInfos)
            {
                TestBase.EnumKind enumKind;
                switch (trialInfo.EnumKind)
                {
                default:
                    throw new ArgumentException();

                case EnumKind.Fast:
                    if ((treeKind & TestBase.TreeKind.AllIndexed2) != 0)
                    {
                        enumKind = TestBase.EnumKind.Indexed2EnumerableFastBidir;
                    }
                    else if ((treeKind & TestBase.TreeKind.AllKeyed) != 0)
                    {
                        enumKind = TestBase.EnumKind.KeyedEnumerableFastBidir;
                    }
                    else
                    {
                        throw new ArgumentException();
                    }
                    break;

                case EnumKind.Robust:
                    if ((treeKind & TestBase.TreeKind.AllIndexed2) != 0)
                    {
                        enumKind = TestBase.EnumKind.Indexed2EnumerableRobustBidir;
                    }
                    else if ((treeKind & TestBase.TreeKind.AllKeyed) != 0)
                    {
                        enumKind = TestBase.EnumKind.KeyedEnumerableRobustBidir;
                    }
                    else
                    {
                        throw new ArgumentException();
                    }
                    break;
                }

                list.Add(
                    new TestInfo <TreeType>(
                        trialInfo.Label,
                        trialInfo.Group,
                        trialInfo.Multiplier,
                        trialInfo.Count,
                        trialInfo.NumTrials,
                        MakePerfTestEnumerationMakerBinder <TreeType, EntryType>(
                            treeKind,
                            enumKind,
                            trialInfo.Forward)));
            }
            return(list.ToArray());
        }