public void IsReadyAfterPeriodUpdates()
        {
            var indicator = new WindowIdentity(3);

            indicator.Update(DateTime.UtcNow, 1m);
            indicator.Update(DateTime.UtcNow, 1m);
            Assert.IsFalse(indicator.IsReady);
            indicator.Update(DateTime.UtcNow, 1m);
            Assert.IsTrue(indicator.IsReady);
        }
        public void IsReadyAfterPeriodUpdates()
        {
            var indicator = new WindowIdentity(3);

            indicator.Update(DateTime.UtcNow, 1m);
            indicator.Update(DateTime.UtcNow, 1m);
            Assert.IsFalse(indicator.IsReady);
            indicator.Update(DateTime.UtcNow, 1m);
            Assert.IsTrue(indicator.IsReady);
        }
        public void WarmsUpProperly()
        {
            var windowIdentityIndicator = new WindowIdentity("Example", 13);
            var time   = new DateTime(2020, 8, 1);
            var period = ((IIndicatorWarmUpPeriodProvider)windowIdentityIndicator).WarmUpPeriod;

            for (var i = 0; i < period; i++)
            {
                windowIdentityIndicator.Update(time.AddDays(i), i);
                Assert.AreEqual(i == period - 1, windowIdentityIndicator.IsReady);
            }
        }
        public void WindowIdentityComputesCorrectly()
        {
            var indicator = new WindowIdentity(4);
            var data = new[] {1m, 10m, 100m, 1000m, 10000m, 1234m, 56789m};

            var seen = new List<decimal>();
            for (int i = 0; i < data.Length; i++)
            {
                var datum = data[i];
                seen.Add(datum);
                indicator.Update(new IndicatorDataPoint(DateTime.Now.AddSeconds(i), datum));
                Assert.AreEqual(seen.LastOrDefault(), indicator.Current.Value);
            }
        }
        public void WindowIdentityComputesCorrectly()
        {
            var indicator = new WindowIdentity(4);
            var data      = new[] { 1m, 10m, 100m, 1000m, 10000m, 1234m, 56789m };

            var seen = new List <decimal>();

            for (int i = 0; i < data.Length; i++)
            {
                var datum = data[i];
                seen.Add(datum);
                indicator.Update(new IndicatorDataPoint(DateTime.Now.AddSeconds(i), datum));
                Assert.AreEqual(seen.LastOrDefault(), indicator.Current.Value);
            }
        }
        public void ResetsProperly()
        {
            var indicator = new WindowIdentity(3);

            foreach (var data in TestHelper.GetDataStream(4))
            {
                indicator.Update(data);
            }
            Assert.IsTrue(indicator.IsReady);

            indicator.Reset();

            TestHelper.AssertIndicatorIsInDefaultState(indicator);
            indicator.Update(DateTime.UtcNow, 2.0m);
            Assert.AreEqual(indicator.Current.Value, 2.0m);
        }
        public void ResetsProperly()
        {
            var indicator = new WindowIdentity(3);

            foreach (var data in TestHelper.GetDataStream(4))
            {
                indicator.Update(data);
            }
            Assert.IsTrue(indicator.IsReady);
            
            indicator.Reset();

            TestHelper.AssertIndicatorIsInDefaultState(indicator);
            indicator.Update(DateTime.UtcNow, 2.0m);
            Assert.AreEqual(indicator.Current.Value, 2.0m);
        }
        public void CompareAgainstExternalData()
        {
            var indicator = new WindowIdentity(14);

            TestHelper.TestIndicator(indicator, "Close", 1e-2); // test file only has
        }
 public void CompareAgainstExternalData()
 {
     var indicator = new WindowIdentity(14);
     TestHelper.TestIndicator(indicator, "Close", 1e-2); // test file only has
 }