Exemplo n.º 1
0
 public static IEnumerable <Item> ReturnItems(int noOfItems, IRandomNextProvider randomNextProvider)
 {
     for (var q = 0; q < noOfItems; q++)
     {
         yield return(new Item(randomNextProvider.NextWgt(), randomNextProvider.NextStr()));
     }
 }
Exemplo n.º 2
0
        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);
        }