Пример #1
0
        public async Task UpdateLocalOrderBook()
        {
            // Arrange
            var kucoinExchangeApi        = new KucoinExchangeTestApi(KucoinExchangeTestApiEnum.UpdateLocalOrderBookExample);
            var kucoinOrderBookHelper    = new KucoinOrderBookHelper(kucoinExchangeApi);
            var subscribeOrderBookReplay = TestHelper.KucoinOrderBook_Update_RestReplay;
            var subscribeOrderBookUpdate = TestHelper.KucoinOrderBook_Update;
            var symbol = new Symbol
            {
                BaseAsset = new Interface.Model.Asset {
                    Symbol = "BTC"
                },
                QuoteAsset = new Interface.Model.Asset {
                    Symbol = "USDT"
                },
                Price = new Interface.Model.InclusiveRange {
                    Increment = 0.00000001M
                },
                Quantity = new Interface.Model.InclusiveRange {
                    Increment = 1
                }
            };

            // Act
            var orderBook = await kucoinOrderBookHelper.CreateLocalOrderBook(symbol, subscribeOrderBookReplay, 10, 10);

            kucoinOrderBookHelper.UpdateLocalOrderBook(orderBook, subscribeOrderBookUpdate, symbol.PricePrecision, symbol.QuantityPrecision, 10, 10);

            // Assert
            Assert.AreEqual(orderBook.LastUpdateId, 120);

            // Asks
            Assert.AreEqual(orderBook.Asks.Count, 5);
            Assert.AreEqual(orderBook.Asks[0].Price, 0.15m);
            Assert.AreEqual(orderBook.Asks[0].Quantity, 15);
            Assert.AreEqual(orderBook.Asks[1].Price, 0.16m);
            Assert.AreEqual(orderBook.Asks[1].Quantity, 16);
            Assert.AreEqual(orderBook.Asks[2].Price, 0.17m);
            Assert.AreEqual(orderBook.Asks[2].Quantity, 17);
            Assert.AreEqual(orderBook.Asks[3].Price, 0.18m);
            Assert.AreEqual(orderBook.Asks[3].Quantity, 18);
            Assert.AreEqual(orderBook.Asks[4].Price, 0.19m);
            Assert.AreEqual(orderBook.Asks[4].Quantity, 19);

            // TopAsks
            Assert.AreEqual(orderBook.TopAsks.Count, 5);
            Assert.AreEqual(orderBook.TopAsks[0].Price, 0.19m);
            Assert.AreEqual(orderBook.TopAsks[0].Quantity, 19);
            Assert.AreEqual(orderBook.TopAsks[1].Price, 0.18m);
            Assert.AreEqual(orderBook.TopAsks[1].Quantity, 18);
            Assert.AreEqual(orderBook.TopAsks[2].Price, 0.17m);
            Assert.AreEqual(orderBook.TopAsks[2].Quantity, 17);
            Assert.AreEqual(orderBook.TopAsks[3].Price, 0.16m);
            Assert.AreEqual(orderBook.TopAsks[3].Quantity, 16);
            Assert.AreEqual(orderBook.TopAsks[4].Price, 0.15m);
            Assert.AreEqual(orderBook.TopAsks[4].Quantity, 15);

            // ChartAsks
            Assert.AreEqual(orderBook.ChartAsks.Count, 5);
            Assert.AreEqual(orderBook.ChartAsks[0].Price, 0.15m);
            Assert.AreEqual(orderBook.ChartAsks[0].Quantity, 15);
            Assert.AreEqual(orderBook.ChartAsks[1].Price, 0.16m);
            Assert.AreEqual(orderBook.ChartAsks[1].Quantity, 16);
            Assert.AreEqual(orderBook.ChartAsks[2].Price, 0.17m);
            Assert.AreEqual(orderBook.ChartAsks[2].Quantity, 17);
            Assert.AreEqual(orderBook.ChartAsks[3].Price, 0.18m);
            Assert.AreEqual(orderBook.ChartAsks[3].Quantity, 18);
            Assert.AreEqual(orderBook.ChartAsks[4].Price, 0.19m);
            Assert.AreEqual(orderBook.ChartAsks[4].Quantity, 19);

            // ChartAggregatedAsks
            Assert.AreEqual(orderBook.ChartAggregatedAsks.Count, 5);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[0].Price, 0.15m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[0].Quantity, 15);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[1].Price, 0.16m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[1].Quantity, 31);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[2].Price, 0.17m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[2].Quantity, 48);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[3].Price, 0.18m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[3].Quantity, 66);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[4].Price, 0.19m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[4].Quantity, 85);

            // Bids
            Assert.AreEqual(orderBook.Bids.Count, 5);
            Assert.AreEqual(orderBook.Bids[0].Price, 0.01m);
            Assert.AreEqual(orderBook.Bids[0].Quantity, 1);
            Assert.AreEqual(orderBook.Bids[1].Price, 0.02m);
            Assert.AreEqual(orderBook.Bids[1].Quantity, 2);
            Assert.AreEqual(orderBook.Bids[2].Price, 0.03m);
            Assert.AreEqual(orderBook.Bids[2].Quantity, 3);
            Assert.AreEqual(orderBook.Bids[3].Price, 0.04m);
            Assert.AreEqual(orderBook.Bids[3].Quantity, 4);
            Assert.AreEqual(orderBook.Bids[4].Price, 0.06m);
            Assert.AreEqual(orderBook.Bids[4].Quantity, 6);

            // TopBids
            Assert.AreEqual(orderBook.TopBids.Count, 5);
            Assert.AreEqual(orderBook.TopBids[0].Price, 0.06m);
            Assert.AreEqual(orderBook.TopBids[0].Quantity, 6);
            Assert.AreEqual(orderBook.TopBids[1].Price, 0.04m);
            Assert.AreEqual(orderBook.TopBids[1].Quantity, 4);
            Assert.AreEqual(orderBook.TopBids[2].Price, 0.03m);
            Assert.AreEqual(orderBook.TopBids[2].Quantity, 3);
            Assert.AreEqual(orderBook.TopBids[3].Price, 0.02m);
            Assert.AreEqual(orderBook.TopBids[3].Quantity, 2);
            Assert.AreEqual(orderBook.TopBids[4].Price, 0.01m);
            Assert.AreEqual(orderBook.TopBids[4].Quantity, 1);

            // ChartBids
            Assert.AreEqual(orderBook.ChartBids.Count, 5);
            Assert.AreEqual(orderBook.ChartBids[0].Price, 0.01m);
            Assert.AreEqual(orderBook.ChartBids[0].Quantity, 1);
            Assert.AreEqual(orderBook.ChartBids[1].Price, 0.02m);
            Assert.AreEqual(orderBook.ChartBids[1].Quantity, 2);
            Assert.AreEqual(orderBook.ChartBids[2].Price, 0.03m);
            Assert.AreEqual(orderBook.ChartBids[2].Quantity, 3);
            Assert.AreEqual(orderBook.ChartBids[3].Price, 0.04m);
            Assert.AreEqual(orderBook.ChartBids[3].Quantity, 4);
            Assert.AreEqual(orderBook.ChartBids[4].Price, 0.06m);
            Assert.AreEqual(orderBook.ChartBids[4].Quantity, 6);

            // ChartAggregatedBids
            Assert.AreEqual(orderBook.ChartAggregatedBids.Count, 5);
            Assert.AreEqual(orderBook.ChartAggregatedBids[0].Price, 0.01m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[0].Quantity, 16);
            Assert.AreEqual(orderBook.ChartAggregatedBids[1].Price, 0.02m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[1].Quantity, 15);
            Assert.AreEqual(orderBook.ChartAggregatedBids[2].Price, 0.03m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[2].Quantity, 13);
            Assert.AreEqual(orderBook.ChartAggregatedBids[3].Price, 0.04m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[3].Quantity, 10);
            Assert.AreEqual(orderBook.ChartAggregatedBids[4].Price, 0.06m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[4].Quantity, 6);
        }
Пример #2
0
        public async Task CreateLocalOrderBook_ReplayCache()
        {
            // Arrange
            var kucoinExchangeApi        = new KucoinExchangeTestApi(KucoinExchangeTestApiEnum.KucoinApiExample);
            var kucoinOrderBookHelper    = new KucoinOrderBookHelper(kucoinExchangeApi);
            var subscribeOrderBookUpdate = TestHelper.KucoinOrderBook_15_18;
            var symbol = new Symbol
            {
                BaseAsset = new Interface.Model.Asset {
                    Symbol = "BTC"
                },
                QuoteAsset = new Interface.Model.Asset {
                    Symbol = "USDT"
                },
                Price = new Interface.Model.InclusiveRange {
                    Increment = 0.00000001M
                },
                Quantity = new Interface.Model.InclusiveRange {
                    Increment = 1m
                }
            };

            // Act
            var orderBook = await kucoinOrderBookHelper.CreateLocalOrderBook(symbol, subscribeOrderBookUpdate, 10, 10);

            // Assert
            Assert.AreEqual(orderBook.LastUpdateId, 18);

            // Asks
            Assert.AreEqual(orderBook.Asks.Count, 3);
            Assert.AreEqual(orderBook.Asks[0].Price, 3988.59m);
            Assert.AreEqual(orderBook.Asks[0].Quantity, 3);
            Assert.AreEqual(orderBook.Asks[1].Price, 3988.60m);
            Assert.AreEqual(orderBook.Asks[1].Quantity, 47);
            Assert.AreEqual(orderBook.Asks[2].Price, 3988.62m);
            Assert.AreEqual(orderBook.Asks[2].Quantity, 8);

            // TopAsks
            Assert.AreEqual(orderBook.TopAsks.Count, 3);
            Assert.AreEqual(orderBook.TopAsks[0].Price, 3988.62m);
            Assert.AreEqual(orderBook.TopAsks[0].Quantity, 8);
            Assert.AreEqual(orderBook.TopAsks[1].Price, 3988.60m);
            Assert.AreEqual(orderBook.TopAsks[1].Quantity, 47);
            Assert.AreEqual(orderBook.TopAsks[2].Price, 3988.59m);
            Assert.AreEqual(orderBook.TopAsks[2].Quantity, 3);

            // ChartAsks
            Assert.AreEqual(orderBook.ChartAsks.Count, 3);
            Assert.AreEqual(orderBook.ChartAsks[0].Price, 3988.59m);
            Assert.AreEqual(orderBook.ChartAsks[0].Quantity, 3);
            Assert.AreEqual(orderBook.ChartAsks[1].Price, 3988.60m);
            Assert.AreEqual(orderBook.ChartAsks[1].Quantity, 47);
            Assert.AreEqual(orderBook.ChartAsks[2].Price, 3988.62m);
            Assert.AreEqual(orderBook.ChartAsks[2].Quantity, 8);

            // ChartAggregateAsks
            Assert.AreEqual(orderBook.ChartAggregatedAsks.Count, 3);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[0].Price, 3988.59m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[0].Quantity, 3);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[1].Price, 3988.60m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[1].Quantity, 50);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[2].Price, 3988.62m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[2].Quantity, 58);

            // Bids
            Assert.AreEqual(orderBook.Bids.Count, 4);
            Assert.AreEqual(orderBook.Bids[0].Price, 3988.48m);
            Assert.AreEqual(orderBook.Bids[0].Quantity, 10);
            Assert.AreEqual(orderBook.Bids[1].Price, 3988.49m);
            Assert.AreEqual(orderBook.Bids[1].Quantity, 100);
            Assert.AreEqual(orderBook.Bids[2].Price, 3988.50m);
            Assert.AreEqual(orderBook.Bids[2].Quantity, 44);
            Assert.AreEqual(orderBook.Bids[3].Price, 3988.51m);
            Assert.AreEqual(orderBook.Bids[3].Quantity, 56);

            // TopBids
            Assert.AreEqual(orderBook.TopBids.Count, 4);
            Assert.AreEqual(orderBook.TopBids[0].Price, 3988.51m);
            Assert.AreEqual(orderBook.TopBids[0].Quantity, 56);
            Assert.AreEqual(orderBook.TopBids[1].Price, 3988.50m);
            Assert.AreEqual(orderBook.TopBids[1].Quantity, 44);
            Assert.AreEqual(orderBook.TopBids[2].Price, 3988.49m);
            Assert.AreEqual(orderBook.TopBids[2].Quantity, 100);
            Assert.AreEqual(orderBook.TopBids[3].Price, 3988.48m);
            Assert.AreEqual(orderBook.TopBids[3].Quantity, 10);

            // ChartBids
            Assert.AreEqual(orderBook.ChartBids.Count, 4);
            Assert.AreEqual(orderBook.ChartBids[0].Price, 3988.48m);
            Assert.AreEqual(orderBook.ChartBids[0].Quantity, 10);
            Assert.AreEqual(orderBook.ChartBids[1].Price, 3988.49m);
            Assert.AreEqual(orderBook.ChartBids[1].Quantity, 100);
            Assert.AreEqual(orderBook.ChartBids[2].Price, 3988.50m);
            Assert.AreEqual(orderBook.ChartBids[2].Quantity, 44);
            Assert.AreEqual(orderBook.ChartBids[3].Price, 3988.51m);
            Assert.AreEqual(orderBook.ChartBids[3].Quantity, 56);

            // ChartAggregateBids
            Assert.AreEqual(orderBook.ChartAggregatedBids.Count, 4);
            Assert.AreEqual(orderBook.ChartAggregatedBids[0].Price, 3988.48m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[0].Quantity, 210);
            Assert.AreEqual(orderBook.ChartAggregatedBids[1].Price, 3988.49m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[1].Quantity, 200);
            Assert.AreEqual(orderBook.ChartAggregatedBids[2].Price, 3988.50m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[2].Quantity, 100);
            Assert.AreEqual(orderBook.ChartAggregatedBids[3].Price, 3988.51m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[3].Quantity, 56);
        }
Пример #3
0
        public async Task CreateLocalOrderBook_ReplayCache_RUIRRA()
        {
            // Arrange
            var kucoinExchangeApi        = new KucoinExchangeTestApi(KucoinExchangeTestApiEnum.CreateLocalOrderBookExample);
            var kucoinOrderBookHelper    = new KucoinOrderBookHelper(kucoinExchangeApi);
            var subscribeOrderBookUpdate = TestHelper.KucoinOrderBook_Create_RUIRRA;
            var symbol = new Symbol
            {
                BaseAsset = new Interface.Model.Asset {
                    Symbol = "BTC"
                },
                QuoteAsset = new Interface.Model.Asset {
                    Symbol = "USDT"
                },
                Price = new Interface.Model.InclusiveRange {
                    Increment = 0.00000001M
                },
                Quantity = new Interface.Model.InclusiveRange {
                    Increment = 1
                }
            };

            // Act
            var orderBook = await kucoinOrderBookHelper.CreateLocalOrderBook(symbol, subscribeOrderBookUpdate, 10, 10);

            // Assert
            Assert.AreEqual(orderBook.LastUpdateId, 112);

            // Asks
            Assert.AreEqual(orderBook.Asks.Count, 5);
            Assert.AreEqual(orderBook.Asks[0].Price, 123.21m);
            Assert.AreEqual(orderBook.Asks[0].Quantity, 211);
            Assert.AreEqual(orderBook.Asks[1].Price, 123.22m);
            Assert.AreEqual(orderBook.Asks[1].Quantity, 22);
            Assert.AreEqual(orderBook.Asks[2].Price, 123.26m);
            Assert.AreEqual(orderBook.Asks[2].Quantity, 26);
            Assert.AreEqual(orderBook.Asks[3].Price, 123.27m);
            Assert.AreEqual(orderBook.Asks[3].Quantity, 27);
            Assert.AreEqual(orderBook.Asks[4].Price, 123.28m);
            Assert.AreEqual(orderBook.Asks[4].Quantity, 28);

            // TopAsks
            Assert.AreEqual(orderBook.TopAsks.Count, 5);
            Assert.AreEqual(orderBook.TopAsks[0].Price, 123.28m);
            Assert.AreEqual(orderBook.TopAsks[0].Quantity, 28);
            Assert.AreEqual(orderBook.TopAsks[1].Price, 123.27m);
            Assert.AreEqual(orderBook.TopAsks[1].Quantity, 27);
            Assert.AreEqual(orderBook.TopAsks[2].Price, 123.26m);
            Assert.AreEqual(orderBook.TopAsks[2].Quantity, 26);
            Assert.AreEqual(orderBook.TopAsks[3].Price, 123.22m);
            Assert.AreEqual(orderBook.TopAsks[3].Quantity, 22);
            Assert.AreEqual(orderBook.TopAsks[4].Price, 123.21m);
            Assert.AreEqual(orderBook.TopAsks[4].Quantity, 211);

            // ChartAsks
            Assert.AreEqual(orderBook.ChartAsks.Count, 5);
            Assert.AreEqual(orderBook.ChartAsks[0].Price, 123.21m);
            Assert.AreEqual(orderBook.ChartAsks[0].Quantity, 211);
            Assert.AreEqual(orderBook.ChartAsks[1].Price, 123.22m);
            Assert.AreEqual(orderBook.ChartAsks[1].Quantity, 22);
            Assert.AreEqual(orderBook.ChartAsks[2].Price, 123.26m);
            Assert.AreEqual(orderBook.ChartAsks[2].Quantity, 26);
            Assert.AreEqual(orderBook.ChartAsks[3].Price, 123.27m);
            Assert.AreEqual(orderBook.ChartAsks[3].Quantity, 27);
            Assert.AreEqual(orderBook.ChartAsks[4].Price, 123.28m);
            Assert.AreEqual(orderBook.ChartAsks[4].Quantity, 28);

            // ChartAggregatedAsks
            Assert.AreEqual(orderBook.ChartAggregatedAsks.Count, 5);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[0].Price, 123.21m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[0].Quantity, 211);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[1].Price, 123.22m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[1].Quantity, 233);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[2].Price, 123.26m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[2].Quantity, 259);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[3].Price, 123.27m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[3].Quantity, 286);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[4].Price, 123.28m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[4].Quantity, 314);

            // Bids
            Assert.AreEqual(orderBook.Bids.Count, 5);
            Assert.AreEqual(orderBook.Bids[0].Price, 123.09m);
            Assert.AreEqual(orderBook.Bids[0].Quantity, 09);
            Assert.AreEqual(orderBook.Bids[1].Price, 123.10m);
            Assert.AreEqual(orderBook.Bids[1].Quantity, 10);
            Assert.AreEqual(orderBook.Bids[2].Price, 123.11m);
            Assert.AreEqual(orderBook.Bids[2].Quantity, 11);
            Assert.AreEqual(orderBook.Bids[3].Price, 123.15m);
            Assert.AreEqual(orderBook.Bids[3].Quantity, 15);
            Assert.AreEqual(orderBook.Bids[4].Price, 123.16m);
            Assert.AreEqual(orderBook.Bids[4].Quantity, 160);

            // TopBids
            Assert.AreEqual(orderBook.TopBids.Count, 5);
            Assert.AreEqual(orderBook.TopBids[0].Price, 123.16m);
            Assert.AreEqual(orderBook.TopBids[0].Quantity, 160);
            Assert.AreEqual(orderBook.TopBids[1].Price, 123.15m);
            Assert.AreEqual(orderBook.TopBids[1].Quantity, 15);
            Assert.AreEqual(orderBook.TopBids[2].Price, 123.11m);
            Assert.AreEqual(orderBook.TopBids[2].Quantity, 11);
            Assert.AreEqual(orderBook.TopBids[3].Price, 123.10m);
            Assert.AreEqual(orderBook.TopBids[3].Quantity, 10);
            Assert.AreEqual(orderBook.TopBids[4].Price, 123.09m);
            Assert.AreEqual(orderBook.TopBids[4].Quantity, 09);

            // ChartBids
            Assert.AreEqual(orderBook.ChartBids.Count, 5);
            Assert.AreEqual(orderBook.ChartBids[0].Price, 123.09m);
            Assert.AreEqual(orderBook.ChartBids[0].Quantity, 09);
            Assert.AreEqual(orderBook.ChartBids[1].Price, 123.10m);
            Assert.AreEqual(orderBook.ChartBids[1].Quantity, 10);
            Assert.AreEqual(orderBook.ChartBids[2].Price, 123.11m);
            Assert.AreEqual(orderBook.ChartBids[2].Quantity, 11);
            Assert.AreEqual(orderBook.ChartBids[3].Price, 123.15m);
            Assert.AreEqual(orderBook.ChartBids[3].Quantity, 15);
            Assert.AreEqual(orderBook.ChartBids[4].Price, 123.16m);
            Assert.AreEqual(orderBook.ChartBids[4].Quantity, 160);

            // ChartAggregatedBids
            Assert.AreEqual(orderBook.ChartAggregatedBids.Count, 5);
            Assert.AreEqual(orderBook.ChartAggregatedBids[0].Price, 123.09m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[0].Quantity, 205);
            Assert.AreEqual(orderBook.ChartAggregatedBids[1].Price, 123.10m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[1].Quantity, 196);
            Assert.AreEqual(orderBook.ChartAggregatedBids[2].Price, 123.11m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[2].Quantity, 186);
            Assert.AreEqual(orderBook.ChartAggregatedBids[3].Price, 123.15m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[3].Quantity, 175);
            Assert.AreEqual(orderBook.ChartAggregatedBids[4].Price, 123.16m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[4].Quantity, 160);
        }
        public async Task CreateLocalOrderBook_ReplayCache_IUIIRA()
        {
            // Arrange
            var kucoinExchangeApi = new KucoinExchangeTestApi(KucoinExchangeTestApiEnum.CreateLocalOrderBookExample);
            var kucoinOrderBookHelper = new KucoinOrderBookHelper(kucoinExchangeApi);
            var subscribeOrderBookUpdate = TestHelper.KucoinOrderBook_Create_IUIIRA;
            var symbol = new Symbol
            {
                BaseAsset = new Core.Model.Asset { Symbol = "BTC" },
                QuoteAsset = new Core.Model.Asset { Symbol = "USDT" },
                Price = new Core.Model.InclusiveRange { Increment = 0.00000001M },
                Quantity = new Core.Model.InclusiveRange { Increment = 1m }
            };

            // Act
            var orderBook = await kucoinOrderBookHelper.CreateLocalOrderBook(symbol, subscribeOrderBookUpdate, 10, 10);

            // Assert
            Assert.AreEqual(orderBook.LastUpdateId, 112);

            // Asks
            Assert.AreEqual(orderBook.Asks.Count, 9);
            Assert.AreEqual(orderBook.Asks[0].Price, 123.19m);
            Assert.AreEqual(orderBook.Asks[0].Quantity, 19);
            Assert.AreEqual(orderBook.Asks[1].Price, 123.20m);
            Assert.AreEqual(orderBook.Asks[1].Quantity, 20);
            Assert.AreEqual(orderBook.Asks[2].Price, 123.21m);
            Assert.AreEqual(orderBook.Asks[2].Quantity, 211);
            Assert.AreEqual(orderBook.Asks[3].Price, 123.22m);
            Assert.AreEqual(orderBook.Asks[3].Quantity, 22);
            Assert.AreEqual(orderBook.Asks[4].Price, 123.23m);
            Assert.AreEqual(orderBook.Asks[4].Quantity, 23);
            Assert.AreEqual(orderBook.Asks[5].Price, 123.24m);
            Assert.AreEqual(orderBook.Asks[5].Quantity, 24);
            Assert.AreEqual(orderBook.Asks[6].Price, 123.26m);
            Assert.AreEqual(orderBook.Asks[6].Quantity, 26);
            Assert.AreEqual(orderBook.Asks[7].Price, 123.27m);
            Assert.AreEqual(orderBook.Asks[7].Quantity, 27);
            Assert.AreEqual(orderBook.Asks[8].Price, 123.28m);
            Assert.AreEqual(orderBook.Asks[8].Quantity, 28);

            // TopAsks
            Assert.AreEqual(orderBook.TopAsks.Count, 9);
            Assert.AreEqual(orderBook.TopAsks[0].Price, 123.28m);
            Assert.AreEqual(orderBook.TopAsks[0].Quantity, 28);
            Assert.AreEqual(orderBook.TopAsks[1].Price, 123.27m);
            Assert.AreEqual(orderBook.TopAsks[1].Quantity, 27);
            Assert.AreEqual(orderBook.TopAsks[2].Price, 123.26m);
            Assert.AreEqual(orderBook.TopAsks[2].Quantity, 26);
            Assert.AreEqual(orderBook.TopAsks[3].Price, 123.24m);
            Assert.AreEqual(orderBook.TopAsks[3].Quantity, 24);
            Assert.AreEqual(orderBook.TopAsks[4].Price, 123.23m);
            Assert.AreEqual(orderBook.TopAsks[4].Quantity, 23);
            Assert.AreEqual(orderBook.TopAsks[5].Price, 123.22m);
            Assert.AreEqual(orderBook.TopAsks[5].Quantity, 22);
            Assert.AreEqual(orderBook.TopAsks[6].Price, 123.21m);
            Assert.AreEqual(orderBook.TopAsks[6].Quantity, 211);
            Assert.AreEqual(orderBook.TopAsks[7].Price, 123.20m);
            Assert.AreEqual(orderBook.TopAsks[7].Quantity, 20);
            Assert.AreEqual(orderBook.TopAsks[8].Price, 123.19m);
            Assert.AreEqual(orderBook.TopAsks[8].Quantity, 19);

            // ChartAsks
            Assert.AreEqual(orderBook.ChartAsks.Count, 9);
            Assert.AreEqual(orderBook.ChartAsks[0].Price, 123.19m);
            Assert.AreEqual(orderBook.ChartAsks[0].Quantity, 19);
            Assert.AreEqual(orderBook.ChartAsks[1].Price, 123.20m);
            Assert.AreEqual(orderBook.ChartAsks[1].Quantity, 20);
            Assert.AreEqual(orderBook.ChartAsks[2].Price, 123.21m);
            Assert.AreEqual(orderBook.ChartAsks[2].Quantity, 211);
            Assert.AreEqual(orderBook.ChartAsks[3].Price, 123.22m);
            Assert.AreEqual(orderBook.ChartAsks[3].Quantity, 22);
            Assert.AreEqual(orderBook.ChartAsks[4].Price, 123.23m);
            Assert.AreEqual(orderBook.ChartAsks[4].Quantity, 23);
            Assert.AreEqual(orderBook.ChartAsks[5].Price, 123.24m);
            Assert.AreEqual(orderBook.ChartAsks[5].Quantity, 24);
            Assert.AreEqual(orderBook.ChartAsks[6].Price, 123.26m);
            Assert.AreEqual(orderBook.ChartAsks[6].Quantity, 26);
            Assert.AreEqual(orderBook.ChartAsks[7].Price, 123.27m);
            Assert.AreEqual(orderBook.ChartAsks[7].Quantity, 27);
            Assert.AreEqual(orderBook.ChartAsks[8].Price, 123.28m);
            Assert.AreEqual(orderBook.ChartAsks[8].Quantity, 28);

            // ChartAggregateAsks
            Assert.AreEqual(orderBook.ChartAggregatedAsks.Count, 9);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[0].Price, 123.19m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[0].Quantity, 19);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[1].Price, 123.20m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[1].Quantity, 39);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[2].Price, 123.21m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[2].Quantity, 250);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[3].Price, 123.22m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[3].Quantity, 272);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[4].Price, 123.23m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[4].Quantity, 295);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[5].Price, 123.24m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[5].Quantity, 319);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[6].Price, 123.26m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[6].Quantity, 345);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[7].Price, 123.27m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[7].Quantity, 372);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[8].Price, 123.28m);
            Assert.AreEqual(orderBook.ChartAggregatedAsks[8].Quantity, 400);

            // Bids
            Assert.AreEqual(orderBook.Bids.Count, 9);
            Assert.AreEqual(orderBook.Bids[0].Price, 123.09m);
            Assert.AreEqual(orderBook.Bids[0].Quantity, 09);
            Assert.AreEqual(orderBook.Bids[1].Price, 123.10m);
            Assert.AreEqual(orderBook.Bids[1].Quantity, 10);
            Assert.AreEqual(orderBook.Bids[2].Price, 123.11m);
            Assert.AreEqual(orderBook.Bids[2].Quantity, 11);
            Assert.AreEqual(orderBook.Bids[3].Price, 123.13m);
            Assert.AreEqual(orderBook.Bids[3].Quantity, 13);
            Assert.AreEqual(orderBook.Bids[4].Price, 123.14m);
            Assert.AreEqual(orderBook.Bids[4].Quantity, 14);
            Assert.AreEqual(orderBook.Bids[5].Price, 123.15m);
            Assert.AreEqual(orderBook.Bids[5].Quantity, 15);
            Assert.AreEqual(orderBook.Bids[6].Price, 123.16m);
            Assert.AreEqual(orderBook.Bids[6].Quantity, 160);
            Assert.AreEqual(orderBook.Bids[7].Price, 123.17m);
            Assert.AreEqual(orderBook.Bids[7].Quantity, 17);
            Assert.AreEqual(orderBook.Bids[8].Price, 123.18m);
            Assert.AreEqual(orderBook.Bids[8].Quantity, 18);

            // TopBids
            Assert.AreEqual(orderBook.TopBids.Count, 9);
            Assert.AreEqual(orderBook.TopBids[0].Price, 123.18m);
            Assert.AreEqual(orderBook.TopBids[0].Quantity, 18);
            Assert.AreEqual(orderBook.TopBids[1].Price, 123.17m);
            Assert.AreEqual(orderBook.TopBids[1].Quantity, 17);
            Assert.AreEqual(orderBook.TopBids[2].Price, 123.16m);
            Assert.AreEqual(orderBook.TopBids[2].Quantity, 160);
            Assert.AreEqual(orderBook.TopBids[3].Price, 123.15m);
            Assert.AreEqual(orderBook.TopBids[3].Quantity, 15);
            Assert.AreEqual(orderBook.TopBids[4].Price, 123.14m);
            Assert.AreEqual(orderBook.TopBids[4].Quantity, 14);
            Assert.AreEqual(orderBook.TopBids[5].Price, 123.13m);
            Assert.AreEqual(orderBook.TopBids[5].Quantity, 13);
            Assert.AreEqual(orderBook.TopBids[6].Price, 123.11m);
            Assert.AreEqual(orderBook.TopBids[6].Quantity, 11);
            Assert.AreEqual(orderBook.TopBids[7].Price, 123.10m);
            Assert.AreEqual(orderBook.TopBids[7].Quantity, 10);
            Assert.AreEqual(orderBook.TopBids[8].Price, 123.09m);
            Assert.AreEqual(orderBook.TopBids[8].Quantity, 09);

            // ChartBids
            Assert.AreEqual(orderBook.ChartBids.Count, 9);
            Assert.AreEqual(orderBook.ChartBids[0].Price, 123.09m);
            Assert.AreEqual(orderBook.ChartBids[0].Quantity, 09);
            Assert.AreEqual(orderBook.ChartBids[1].Price, 123.10m);
            Assert.AreEqual(orderBook.ChartBids[1].Quantity, 10);
            Assert.AreEqual(orderBook.ChartBids[2].Price, 123.11m);
            Assert.AreEqual(orderBook.ChartBids[2].Quantity, 11);
            Assert.AreEqual(orderBook.ChartBids[3].Price, 123.13m);
            Assert.AreEqual(orderBook.ChartBids[3].Quantity, 13);
            Assert.AreEqual(orderBook.ChartBids[4].Price, 123.14m);
            Assert.AreEqual(orderBook.ChartBids[4].Quantity, 14);
            Assert.AreEqual(orderBook.ChartBids[5].Price, 123.15m);
            Assert.AreEqual(orderBook.ChartBids[5].Quantity, 15);
            Assert.AreEqual(orderBook.ChartBids[6].Price, 123.16m);
            Assert.AreEqual(orderBook.ChartBids[6].Quantity, 160);
            Assert.AreEqual(orderBook.ChartBids[7].Price, 123.17m);
            Assert.AreEqual(orderBook.ChartBids[7].Quantity, 17);
            Assert.AreEqual(orderBook.ChartBids[8].Price, 123.18m);
            Assert.AreEqual(orderBook.ChartBids[8].Quantity, 18);

            // ChartAggregateBids
            Assert.AreEqual(orderBook.ChartAggregatedBids.Count, 9);
            Assert.AreEqual(orderBook.ChartAggregatedBids[0].Price, 123.09m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[0].Quantity, 267);
            Assert.AreEqual(orderBook.ChartAggregatedBids[1].Price, 123.10m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[1].Quantity, 258);
            Assert.AreEqual(orderBook.ChartAggregatedBids[2].Price, 123.11m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[2].Quantity, 248);
            Assert.AreEqual(orderBook.ChartAggregatedBids[3].Price, 123.13m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[3].Quantity, 237);
            Assert.AreEqual(orderBook.ChartAggregatedBids[4].Price, 123.14m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[4].Quantity, 224);
            Assert.AreEqual(orderBook.ChartAggregatedBids[5].Price, 123.15m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[5].Quantity, 210);
            Assert.AreEqual(orderBook.ChartAggregatedBids[6].Price, 123.16m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[6].Quantity, 195);
            Assert.AreEqual(orderBook.ChartAggregatedBids[7].Price, 123.17m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[7].Quantity, 35);
            Assert.AreEqual(orderBook.ChartAggregatedBids[8].Price, 123.18m);
            Assert.AreEqual(orderBook.ChartAggregatedBids[8].Quantity, 18);
        }