public IEnumerable <Tuple <int, TimeSpan> > Test(IAlgorithm <int[], int[]> algo) { foreach (var array in _generator.GenerateTestArrays()) { var watch = Stopwatch.StartNew(); algo.Process(array); watch.Stop(); yield return(new Tuple <int, TimeSpan>(array.Length, watch.Elapsed)); } }
public void TestRandomArray() { var dataGenerator = new ArrayGenerator(100, 1000, 1, 0, 10); foreach (var array in dataGenerator.GenerateTestArrays()) { var expectedResult = array.GroupBy(i => i).Select(gb => new Tuple <int, int>(gb.Key, gb.Count())).ToArray(); var inputRdd = new FromMemoryRdd <int>(array); var mapRdd = inputRdd.MapToPair((i) => new Tuple <int, int>(i, 1)); var reduceRdd = mapRdd.ReduceByKey((i1, i2) => i1 + i2); var result = new RDDProcessor <int, Tuple <int, int> >().Process(reduceRdd).ToArray(); CollectionAssert.AreEquivalent(expectedResult, result); } }