public void OrderbookRemoveTest(bool isOrderedByPrice)
        {
            var orders = new List <Order>();
            var random = new Random();
            var price  = 1D;
            var side   = OrderSide.Buy;
            var asset  = 1;

            var orderbook   = Global.Exchange.GetOrderbook(asset, side);
            var ordersCount = 1000;

            for (var i = 1; i <= ordersCount; i++)
            {
                if (isOrderedByPrice)
                {
                    price = price * 1.01;
                }
                else
                {
                    price = 1 + random.NextDouble();
                }
                var orderId = OrderIdConverter.Encode((ulong)i, asset, side);
                var amount  = 1000;
                var order   = new Order {
                    OrderId = orderId, Amount = 1000, Price = price, QuoteAmount = OrderMatcher.EstimateQuoteAmount(amount, price, side)
                };
                orders.Add(order);
                orderbook.InsertOrder(order);
            }

            Func <int> getOrdersCount = () =>
            {
                var ordersCounter = 0;
                foreach (var o in orderbook)
                {
                    ordersCounter++;
                }
                return(ordersCounter);
            };

            var count = getOrdersCount();

            Assert.AreEqual(orderbook.Count, count, "Orderbook.Count and order-book items count are not equal.");
            Assert.AreEqual(ordersCount, count);

            foreach (var order in orders)
            {
                orderbook.RemoveOrder(order.OrderId);
                ordersCount--;
                Assert.AreEqual(ordersCount, orderbook.Count);
                Assert.AreEqual(ordersCount, getOrdersCount());
            }
            Assert.IsNull(orderbook.Head);
            Assert.IsNull(orderbook.Tail);
        }
Exemple #2
0
 public void EstimateTradedXlmAmountTest(long assetAmount, double price, OrderSide side, long estimatedQuoteAmount)
 {
     Assert.AreEqual(estimatedQuoteAmount, OrderMatcher.EstimateQuoteAmount(assetAmount, price, side));
 }