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