Exemplo n.º 1
0
        public void EmptyNullEnumerators(bool skipsBasedOnEndTime)
        {
            var time = new DateTime(2020, 1, 1);
            // empty enumerators
            var enumerator1 = new List <BaseData>().GetEnumerator();
            var enumerator2 = new List <BaseData>().GetEnumerator();

            var enumerator3 = new List <BaseData>
            {
                new Tick(time, Symbols.SPY, 10, 10),
                new Tick(time.AddSeconds(-1), Symbols.SPY, 20, 20),
                new Tick(time.AddSeconds(1), Symbols.SPY, 30, 30)
            }.GetEnumerator();

            var concat = new ConcatEnumerator(skipsBasedOnEndTime, enumerator1, null, enumerator2, enumerator3);

            Assert.IsTrue(concat.MoveNext());
            Assert.AreEqual(10, (concat.Current as Tick).AskPrice);

            Assert.IsTrue(concat.MoveNext());
            Assert.AreEqual(20, (concat.Current as Tick).AskPrice);

            Assert.IsTrue(concat.MoveNext());
            Assert.AreEqual(30, (concat.Current as Tick).AskPrice);

            Assert.IsFalse(concat.MoveNext());
            Assert.IsNull(concat.Current);

            concat.Dispose();
        }
Exemplo n.º 2
0
        public void SkipsBasedOnEndTime(bool skipsBasedOnEndTime)
        {
            var time = new DateTime(2020, 1, 1);
            var enumerator1 = new List <BaseData> {
                new Tick(time, Symbols.SPY, 10, 10)
            }.GetEnumerator();
            var enumerator2 = new List <BaseData>
            {
                new Tick(time.AddSeconds(-1), Symbols.SPY, 20, 20), //should be skipped because end time is before previous tick
                new Tick(time.AddSeconds(1), Symbols.SPY, 30, 30)
            }.GetEnumerator();

            var concat = new ConcatEnumerator(skipsBasedOnEndTime, enumerator1, enumerator2);

            Assert.IsTrue(concat.MoveNext());
            Assert.AreEqual(10, (concat.Current as Tick).AskPrice);

            if (!skipsBasedOnEndTime)
            {
                Assert.IsTrue(concat.MoveNext());
                Assert.AreEqual(20, (concat.Current as Tick).AskPrice);
            }

            Assert.IsTrue(concat.MoveNext());
            Assert.AreEqual(30, (concat.Current as Tick).AskPrice);

            Assert.IsFalse(concat.MoveNext());
            Assert.IsNull(concat.Current);

            concat.Dispose();
        }
Exemplo n.º 3
0
        public void DropsEnumeratorsReturningNullAndTrue(bool skipsBasedOnEndTime)
        {
            var enumerator1 = new TestEnumerator();
            var enumerator2 = new TestEnumerator();

            var concat = new ConcatEnumerator(skipsBasedOnEndTime, enumerator1, null, enumerator2);

            Assert.IsTrue(concat.MoveNext());

            Assert.IsNull(concat.Current);
            Assert.IsTrue(enumerator1.Disposed);
            Assert.IsFalse(enumerator2.Disposed);
            Assert.AreEqual(1, enumerator2.MoveNextCount);

            Assert.IsTrue(concat.MoveNext());

            // we assert it just keeps the last enumerator and drops the rest
            Assert.IsTrue(enumerator1.Disposed);
            Assert.IsFalse(enumerator2.Disposed);
            Assert.IsNull(concat.Current);
            Assert.AreEqual(2, enumerator2.MoveNextCount);

            concat.Dispose();
        }