示例#1
0
        private void UpdateActivityDetails()
        {
            // update details missing from summary activity.
            _fvActivity.Calories    = Convert.ToDecimal(_stravaActivity.Calories);
            _fvActivity.Description = _stravaActivity.Description;
            // gear??
            _fvActivity.EmbedToken  = _stravaActivity.EmbedToken;
            _fvActivity.DeviceName  = _stravaActivity.DeviceName;
            _fvActivity.MapPolyline = _stravaActivity.Map.Polyline;
            // splits_metric
            // splits_standard

            if ((_fvActivity.HasPowerMeter) && (_convertedStream.HasIndividualStream(StreamType.Watts)))
            {
                ZoneValueOnDay value = new ZoneValueOnDay();
                var            ftp   = value.GetUserZoneValueOnGivenDate(_userId, enums.ZoneType.BikePower, _fvActivity.Start);

                if (ftp != null)
                {
                    BikePower calc = new BikePower(_convertedStream.GetIndividualStream <int?>(enums.StreamType.Watts), ftp.Value);

                    _fvActivity.TSS             = calc.TSS();
                    _fvActivity.IntensityFactor = calc.IntensityFactor();
                }
            }

            if (_streamSize != null)
            {
                _fvActivity.StreamSize = _streamSize;
            }

            _fvActivity.DetailsDownloaded = true;

            _unitOfWork.Complete();
        }
示例#2
0
        public void ActivityAnalytics_ActivityTest()
        {
            int        ftp      = 295; // ftp at time of activity;
            List <int> testData = FindPeakTest.GetActivityPowerStream();

            // results rounded to match values shown on Training Peaks.
            BikePower cal = new BikePower(testData, ftp);

            Assert.AreEqual(227, Math.Round(cal.NP(), 0));
            Assert.AreEqual(52.8M, Math.Round(cal.TSS(), 1));
            Assert.AreEqual(0.77M, Math.Round(cal.IntensityFactor(), 2));
        }
示例#3
0
        public void ActivityAnalytics_OneHourAtFTPTest()
        {
            int ftp = 300;

            List <int> testData = new List <int>();

            for (int x = 1; x <= 60 * 60; x++)
            {
                testData.Add(ftp);
            }

            Assert.AreEqual(60 * 60, testData.Count);

            BikePower cal = new BikePower(testData, ftp);

            Assert.AreEqual(ftp, cal.NP());
            Assert.AreEqual(100, cal.TSS());
            Assert.AreEqual(1.00M, cal.IntensityFactor());
        }
示例#4
0
        public void ActivityAnalytics_NormalisedPowerSpreadsheetTest()
        {
            List <int> testData = new List <int>();

            for (int x = 1; x <= 4000; x++)
            {
                if (x > 31 && x <= 39)
                {
                    testData.Add(300);
                }
                else
                {
                    testData.Add(200);
                }
            }

            Assert.AreEqual(4000, testData.Count);
            BikePower cal = new BikePower(testData, 295);

            Assert.AreEqual(200.241M, cal.NP());
        }