Example #1
0
        public void CalculateVolumeWeightedStockPriceTest()
        {
            var stock = new CommonStock {
                symbol = "TEA", lastDividend = 10, parValue = 100
            };
            var trade1 = new Trade {
                stockSymbol = "TEA", timestamp = DateTime.Now.AddMinutes(-60), price = 5, direction = TradeDirection.BUY, quantity = 50
            };

            exchangeStock.RecordTrade(trade1);
            var trade2 = new Trade {
                stockSymbol = "TEA", timestamp = DateTime.Now, price = 10, direction = TradeDirection.BUY, quantity = 100
            };

            exchangeStock.RecordTrade(trade2);
            var trade3 = new Trade {
                stockSymbol = "TEA", timestamp = DateTime.Now, price = 100, direction = TradeDirection.BUY, quantity = 3
            };

            exchangeStock.RecordTrade(trade3);

            var currentStockPrice  = exchangeStock.CalculateVolumeWeightedStockPrice("TEA", 15);
            var expectedStockPrice = 1300d / 103d;

            Assert.AreEqual(expectedStockPrice, currentStockPrice);
        }