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; }
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); }); }
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); }); }
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()); }