コード例 #1
0
        public void TestSimpleDOMUpdate()
        {
            lastUpdatedSots = null;

            IDOM dom = new K2Depth.K2DOM();
            Assert.IsNotNull(dom);

            // wire up the handlers
            dom.DOMImage += DOMImage;
            dom.DOMUpdate += DOMUpdate;

            IDOMData domData = dom.Create(100.00M, 20M, 1);
            Assert.IsNotNull(domData);

            lastUpdatedSots = new List<IDOMSlot>();

            dom.Update(101M, 5, 4);

            System.Threading.Thread.Sleep(1000);

            int slotIndex = dom.GetSlotIndex(101M);

            Assert.AreNotEqual(-1, slotIndex);

            IDOMSlot slot = dom.DOMData.K2DOMSlots[slotIndex];

            Assert.IsNotNull(slot);

            Assert.AreEqual(101M, slot.Price);
            Assert.AreEqual(5M, slot.BidSize);
            Assert.AreEqual(4M, slot.AskSize);

            Assert.IsNotNull(lastUpdatedSots);
            Assert.AreEqual(1, lastUpdatedSots.Count);
            Assert.AreEqual(101M, lastUpdatedSots[0].Price);
            Assert.AreEqual(5M, lastUpdatedSots[0].BidSize.Value);
            Assert.AreEqual(4M, lastUpdatedSots[0].AskSize.Value);

            lastUpdatedSots = new List<IDOMSlot>();

            dom.Update(99M, 3, 5);
            System.Threading.Thread.Sleep(1000);

            // make sure 101 is not affected
            slotIndex = dom.GetSlotIndex(101M);

            Assert.AreNotEqual(-1, slotIndex);

            slot = dom.DOMData.K2DOMSlots[slotIndex];

            Assert.IsNotNull(slot);

            Assert.AreEqual(101M, slot.Price);
            Assert.AreEqual(5M, slot.BidSize);
            Assert.AreEqual(4M, slot.AskSize);

            // make sure 99 is updated
            slotIndex = dom.GetSlotIndex(99M);

            Assert.AreNotEqual(-1, slotIndex);

            slot = dom.DOMData.K2DOMSlots[slotIndex];

            Assert.IsNotNull(slot);

            Assert.AreEqual(99M, slot.Price);
            Assert.AreEqual(3M, slot.BidSize);
            Assert.AreEqual(5M, slot.AskSize);

            // Update existing
            lastUpdatedSots = new List<IDOMSlot>();
            dom.Update(99M, 101, 5);
            System.Threading.Thread.Sleep(1000);
            // make sure 99 is updated
            slotIndex = dom.GetSlotIndex(99M);

            Assert.AreNotEqual(-1, slotIndex);

            slot = dom.DOMData.K2DOMSlots[slotIndex];

            Assert.IsNotNull(slot);

            Assert.AreEqual(99M, slot.Price);
            Assert.AreEqual(101M, slot.BidSize);
            Assert.AreEqual(5M, slot.AskSize);

            Assert.AreEqual(99M, lastUpdatedSots[0].Price);
            Assert.AreEqual(101M, lastUpdatedSots[0].BidSize);
            Assert.AreEqual(5M, lastUpdatedSots[0].AskSize);

            // Apply simple update
        }