public static IEnumerable <Item> ReturnItems(int noOfItems, IRandomNextProvider randomNextProvider) { for (var q = 0; q < noOfItems; q++) { yield return(new Item(randomNextProvider.NextWgt(), randomNextProvider.NextStr())); } }
public static IEnumerable <Tuple <double, double> > Calculations(int count, IRandomNextProvider randomNextProvider, IStopWatchProvider stopWatchProvider) { var enumerable = new List <Tuple <double, double> >(); var rand = new Random(); for (var i = 0; i < count; i++) { try { var items = ReturnItems(rand.Next(1, 5), randomNextProvider).ToArray(); MakeSafe(items.ToArray(), out var elapsedMsNormal, stopWatchProvider); var resultStrength = CalculateTimings(e => e.OrderBy(y => y.Strength), items, stopWatchProvider); var resultStrengthCalc = resultStrength.Item1.Ticks / 1000d / ((elapsedMsNormal.Ticks == 0 ? 1 : elapsedMsNormal.Ticks) / 1000d); var resultWeight = CalculateTimings(e => e.OrderBy(y => y.Weight), items, stopWatchProvider); var resultWeightCalc = resultWeight.Item1.Ticks / 1000d / ((elapsedMsNormal.Ticks == 0 ? 1 : elapsedMsNormal.Ticks) / 1000d); enumerable.Add(new Tuple <double, double>(resultStrengthCalc, resultWeightCalc)); } catch (OverflowException) { } } return(enumerable); }