public void PaceCalculator_MileTest()
 {
     // test from 210 seconds (3:30min/mile to 600 seconds (10min/mile).  Result shoudl equal input time.
     for (int seconds = 210; seconds <= 600; seconds++)
     {
         Assert.AreEqual(TimeSpan.FromSeconds(seconds), PaceCalculator.RunMinuteMiles(MILE_IN_METRES, TimeSpan.FromSeconds(seconds)));
     }
 }
 public void PaceCalculator_TwoHundredMetreTestMinPerMile()
 {
     Assert.AreEqual(new TimeSpan(0, 4, 1), PaceCalculator.RunMinuteMiles(TWO_HUNDRED_M, new TimeSpan(0, 0, 30)));
     Assert.AreEqual(new TimeSpan(0, 4, 42), PaceCalculator.RunMinuteMiles(TWO_HUNDRED_M, new TimeSpan(0, 0, 35)));
     Assert.AreEqual(new TimeSpan(0, 5, 22), PaceCalculator.RunMinuteMiles(TWO_HUNDRED_M, new TimeSpan(0, 0, 40)));
     Assert.AreEqual(new TimeSpan(0, 6, 2), PaceCalculator.RunMinuteMiles(TWO_HUNDRED_M, new TimeSpan(0, 0, 45)));
     Assert.AreEqual(new TimeSpan(0, 6, 42), PaceCalculator.RunMinuteMiles(TWO_HUNDRED_M, new TimeSpan(0, 0, 50)));
     Assert.AreEqual(new TimeSpan(0, 7, 23), PaceCalculator.RunMinuteMiles(TWO_HUNDRED_M, new TimeSpan(0, 0, 55)));
     Assert.AreEqual(new TimeSpan(0, 8, 3), PaceCalculator.RunMinuteMiles(TWO_HUNDRED_M, new TimeSpan(0, 1, 00)));
 }
        private Tuple <Distance, PaceData, string> DistanceAndPaceOfLogEvent(dynamic runLogEvent)
        {
            var route    = ((object)runLogEvent).Route(dataCache);
            var distance = ((object)route).Distance().ConvertTo(HttpContext.UserDistanceUnits(dataCache));
            var paceData = new PaceData {
                Distance = distance, Time = runLogEvent.TimeTaken, Calc = "Pace"
            };
            var paceCalc = new PaceCalculator();

            paceCalc.Calculate(paceData);
            return(Tuple.Create(distance, paceData, route.Name.Replace('"', '\'')));
        }
 public void PaceCalculator_TenKmTestMinPerMile()
 {
     Assert.AreEqual(new TimeSpan(0, 5, 0), PaceCalculator.RunMinuteMiles(TEN_KM, new TimeSpan(0, 31, 04)));
     Assert.AreEqual(new TimeSpan(0, 5, 30), PaceCalculator.RunMinuteMiles(TEN_KM, new TimeSpan(0, 34, 11)));
     Assert.AreEqual(new TimeSpan(0, 6, 0), PaceCalculator.RunMinuteMiles(TEN_KM, new TimeSpan(0, 37, 17)));
     Assert.AreEqual(new TimeSpan(0, 6, 30), PaceCalculator.RunMinuteMiles(TEN_KM, new TimeSpan(0, 40, 22)));
     Assert.AreEqual(new TimeSpan(0, 7, 0), PaceCalculator.RunMinuteMiles(TEN_KM, new TimeSpan(0, 43, 30)));
     Assert.AreEqual(new TimeSpan(0, 7, 30), PaceCalculator.RunMinuteMiles(TEN_KM, new TimeSpan(0, 46, 36)));
     Assert.AreEqual(new TimeSpan(0, 8, 0), PaceCalculator.RunMinuteMiles(TEN_KM, new TimeSpan(0, 49, 43)));
     Assert.AreEqual(new TimeSpan(0, 9, 0), PaceCalculator.RunMinuteMiles(TEN_KM, new TimeSpan(0, 55, 55)));
     Assert.AreEqual(new TimeSpan(0, 10, 0), PaceCalculator.RunMinuteMiles(TEN_KM, new TimeSpan(1, 02, 08)));
 }
 public void PaceCalculator_MarathonTestMinPerMile()
 {
     Assert.AreEqual(new TimeSpan(0, 5, 0), PaceCalculator.RunMinuteMiles(MARATHON_DISTANCE, new TimeSpan(2, 11, 6)));
     Assert.AreEqual(new TimeSpan(0, 5, 30), PaceCalculator.RunMinuteMiles(MARATHON_DISTANCE, new TimeSpan(2, 24, 12)));
     Assert.AreEqual(new TimeSpan(0, 6, 0), PaceCalculator.RunMinuteMiles(MARATHON_DISTANCE, new TimeSpan(2, 37, 19)));
     Assert.AreEqual(new TimeSpan(0, 6, 30), PaceCalculator.RunMinuteMiles(MARATHON_DISTANCE, new TimeSpan(2, 50, 25)));
     Assert.AreEqual(new TimeSpan(0, 7, 0), PaceCalculator.RunMinuteMiles(MARATHON_DISTANCE, new TimeSpan(3, 03, 32)));
     Assert.AreEqual(new TimeSpan(0, 7, 30), PaceCalculator.RunMinuteMiles(MARATHON_DISTANCE, new TimeSpan(3, 16, 38)));
     Assert.AreEqual(new TimeSpan(0, 8, 0), PaceCalculator.RunMinuteMiles(MARATHON_DISTANCE, new TimeSpan(3, 29, 45)));
     Assert.AreEqual(new TimeSpan(0, 9, 0), PaceCalculator.RunMinuteMiles(MARATHON_DISTANCE, new TimeSpan(3, 55, 58)));
     Assert.AreEqual(new TimeSpan(0, 10, 0), PaceCalculator.RunMinuteMiles(MARATHON_DISTANCE, new TimeSpan(4, 22, 12)));
 }
        public void Given_5_min_per_mile_should_convert_to_8_min_km()
        {
            var calc = new PaceCalculator();
            var pace = new PaceData {
                Pace = "5:00", Calc = "pacemilesunits"
            };

            calc.Calculate(pace);
            Assert.Equal("8:02", pace.Pace); // 5 min/mile is actually a little over 8 min/km

            pace.Calc = "pacekmunits";
            calc.Calculate(pace);
            Assert.Equal("4:59", pace.Pace); // and then due to rounding, converting back gives just under 5min/mile
        }
 public void PaceCalculator_FifteenHundredMetreTestMinPerMile()
 {
     Assert.AreEqual(new TimeSpan(0, 4, 0), PaceCalculator.RunMinuteMiles(FIFTEEN_HUNDRED_M, new TimeSpan(0, 3, 44)));
     Assert.AreEqual(new TimeSpan(0, 4, 30), PaceCalculator.RunMinuteMiles(FIFTEEN_HUNDRED_M, new TimeSpan(0, 4, 12)));
     Assert.AreEqual(new TimeSpan(0, 5, 0), PaceCalculator.RunMinuteMiles(FIFTEEN_HUNDRED_M, new TimeSpan(0, 4, 40)));
     Assert.AreEqual(new TimeSpan(0, 5, 30), PaceCalculator.RunMinuteMiles(FIFTEEN_HUNDRED_M, new TimeSpan(0, 5, 08)));
     Assert.AreEqual(new TimeSpan(0, 6, 0), PaceCalculator.RunMinuteMiles(FIFTEEN_HUNDRED_M, new TimeSpan(0, 5, 36)));
     Assert.AreEqual(new TimeSpan(0, 6, 31), PaceCalculator.RunMinuteMiles(FIFTEEN_HUNDRED_M, new TimeSpan(0, 6, 04)));
     Assert.AreEqual(new TimeSpan(0, 7, 0), PaceCalculator.RunMinuteMiles(FIFTEEN_HUNDRED_M, new TimeSpan(0, 6, 31)));
     Assert.AreEqual(new TimeSpan(0, 7, 30), PaceCalculator.RunMinuteMiles(FIFTEEN_HUNDRED_M, new TimeSpan(0, 6, 59)));
     Assert.AreEqual(new TimeSpan(0, 8, 0), PaceCalculator.RunMinuteMiles(FIFTEEN_HUNDRED_M, new TimeSpan(0, 7, 27)));
     Assert.AreEqual(new TimeSpan(0, 9, 0), PaceCalculator.RunMinuteMiles(FIFTEEN_HUNDRED_M, new TimeSpan(0, 8, 23)));
     Assert.AreEqual(new TimeSpan(0, 10, 0), PaceCalculator.RunMinuteMiles(FIFTEEN_HUNDRED_M, new TimeSpan(0, 09, 19)));
 }
Beispiel #8
0
            public RunLogModel(HttpContext context, dynamic runLogEvent, IDataCache dataCache)
            {
                this.context   = context;
                RunLogEvent    = runLogEvent;
                this.dataCache = dataCache;
                TimeTaken      = runLogEvent.TimeTaken;
                Route          = ((object)RunLogEvent).Route(dataCache);
                Distance       = ((object)Route).Distance().ConvertTo(context.UserDistanceUnits(dataCache));

                var paceData = new PaceData {
                    Distance = Distance, Time = TimeTaken, Calc = "Pace"
                };
                var paceCalc = new PaceCalculator();

                paceCalc.Calculate(paceData);
                Pace = paceData;
            }
Beispiel #9
0
        internal IEnumerable <LapDto> GetBestEffort(long id)
        {
            var results = _context.BestEffort
                          .Include(b => b.Activity)
                          .Where(b => b.ActivityId == id)
                          .OrderBy(b => b.Distance)
                          .ToList();

            return(results.Select(l => new LapDto
            {
                Id = l.Id,
                Type = PeakStreamType.PaceByDistance,
                Selected = false,
                Name = l.Name,
                Value = PaceCalculator.RunMinuteMiles(l.Distance, l.ElapsedTime).ToMinSec(),
                StartIndex = l.StartIndex,
                EndIndex = l.EndIndex,
                StreamStep = l.Activity.StreamStep,
                SteppedStartIndex = l.StartIndex / l.Activity.StreamStep,
                SteppedEndIndex = l.EndIndex / l.Activity.StreamStep,
            }).ToList());
        }
 public void PaceCalculator_NoTime()
 {
     Assert.AreEqual(new TimeSpan(0, 0, 0), PaceCalculator.RunMinuteMiles(TEN_KM, new TimeSpan(0, 0, 0)));
     Assert.AreEqual(new TimeSpan(0, 0, 0), PaceCalculator.RunMinuteMiles(MILE_IN_METRES, new TimeSpan(0, 0, 0)));
     Assert.AreEqual(new TimeSpan(0, 0, 0), PaceCalculator.RunMinuteMiles(TWO_HUNDRED_M, new TimeSpan(0, 0, 0)));
 }
 public void PaceCalculator_NoDistance()
 {
     Assert.AreEqual(new TimeSpan(0, 0, 0), PaceCalculator.RunMinuteMiles(NO_DISTANCE, new TimeSpan(0, 1, 00)));
     Assert.AreEqual(new TimeSpan(0, 0, 0), PaceCalculator.RunMinuteMiles(NO_DISTANCE, new TimeSpan(1, 0, 00)));
     Assert.AreEqual(new TimeSpan(0, 0, 0), PaceCalculator.RunMinuteMiles(NO_DISTANCE, new TimeSpan(0, 0, 30)));
 }