public void CalculateAverageFillPrice() { var orderbook = new TestableSymbolOrderBook(); orderbook.SetData(new List <ISymbolOrderBookEntry> { new BookEntry { Price = 1, Quantity = 1 }, new BookEntry { Price = 1.1m, Quantity = 1 }, }, new List <ISymbolOrderBookEntry>() { new BookEntry { Price = 1.2m, Quantity = 1 }, new BookEntry { Price = 1.3m, Quantity = 1 }, }); var resultBids = orderbook.CalculateAverageFillPrice(2, OrderBookEntryType.Bid); var resultAsks = orderbook.CalculateAverageFillPrice(2, OrderBookEntryType.Ask); var resultBids2 = orderbook.CalculateAverageFillPrice(1.5m, OrderBookEntryType.Bid); var resultAsks2 = orderbook.CalculateAverageFillPrice(1.5m, OrderBookEntryType.Ask); Assert.True(resultBids.Success); Assert.True(resultAsks.Success); Assert.AreEqual(1.05m, resultBids.Data); Assert.AreEqual(1.25m, resultAsks.Data); Assert.AreEqual(1.06666667m, resultBids2.Data); Assert.AreEqual(1.23333333m, resultAsks2.Data); }
public void GivenEmptyAskList_WhenBestAsk_ThenEmptySymbolOrderBookEntry() { var symbolOrderBook = new TestableSymbolOrderBook(); Assert.IsNotNull(symbolOrderBook.BestBid); Assert.AreEqual(0m, symbolOrderBook.BestBid.Price); Assert.AreEqual(0m, symbolOrderBook.BestAsk.Quantity); }
public void GivenEmptyBidAndAskList_WhenBestOffers_ThenEmptySymbolOrderBookEntries() { var symbolOrderBook = new TestableSymbolOrderBook(); Assert.IsNotNull(symbolOrderBook.BestOffers); Assert.IsNotNull(symbolOrderBook.BestOffers.Bid); Assert.IsNotNull(symbolOrderBook.BestOffers.Ask); Assert.AreEqual(0m, symbolOrderBook.BestOffers.Bid.Price); Assert.AreEqual(0m, symbolOrderBook.BestOffers.Bid.Quantity); Assert.AreEqual(0m, symbolOrderBook.BestOffers.Ask.Price); Assert.AreEqual(0m, symbolOrderBook.BestOffers.Ask.Quantity); }