public async Task MultiPeriodCapitalUsageIsAverageOfNonzeroValues() { DateTime dt = new DateTime(2000, 1, 2); for (int i = 0; i < 10; i++) { var es = new EquitySummary { Date = dt, Total = 10000 }; _dbContext.EquitySummaries.Add(es); } _t.Orders.Add(new Order { Quantity = 10, Instrument = _inst, Price = 100, FXRateToBase = 1, BuySell = "BUY", TradeDate = new DateTime(2000, 1, 1), Currency = new Currency { Name = "USD" } }); _t.Orders.Add(new Order { Quantity = -10, Instrument = _inst, Price = 100, FXRateToBase = 1, BuySell = "BUY", TradeDate = new DateTime(2000, 1, 4), Currency = new Currency { Name = "USD" } }); _t.Orders.Add(new Order { Quantity = 20, Instrument = _inst, Price = 100, FXRateToBase = 1, BuySell = "BUY", TradeDate = new DateTime(2000, 1, 9, 10, 0, 0), Currency = new Currency { Name = "USD" } }); _t.Orders.Add(new Order { Quantity = -20, Instrument = _inst, Price = 100, FXRateToBase = 1, BuySell = "BUY", TradeDate = new DateTime(2000, 1, 9, 10, 0, 0), Currency = new Currency { Name = "USD" } }); await _repository.UpdateStats(_t); Assert.AreEqual((4 * 1000 + 1 * 2000) / 5, _t.CapitalTotal); }
public void MultiPeriodCapitalUsageIsAverageOfNonzeroValues() { DateTime dt = new DateTime(2000, 1, 2); for (int i = 0; i < 10; i++) { var es = new EquitySummary { Date = dt, Total = 10000 }; _dbSetStub.Add(es); } _t.Orders.Add(new Order { Quantity = 10, Instrument = _inst, Price = 100, FXRateToBase = 1, BuySell = "BUY", TradeDate = new DateTime(2000, 1, 1), Currency = new Currency { Name = "USD" } }); _t.Orders.Add(new Order { Quantity = -10, Instrument = _inst, Price = 100, FXRateToBase = 1, BuySell = "BUY", TradeDate = new DateTime(2000, 1, 4), Currency = new Currency { Name = "USD" } }); _t.Orders.Add(new Order { Quantity = 20, Instrument = _inst, Price = 100, FXRateToBase = 1, BuySell = "BUY", TradeDate = new DateTime(2000, 1, 9, 10, 0, 0), Currency = new Currency { Name = "USD" } }); _t.Orders.Add(new Order { Quantity = -20, Instrument = _inst, Price = 100, FXRateToBase = 1, BuySell = "BUY", TradeDate = new DateTime(2000, 1, 9, 10, 0, 0), Currency = new Currency { Name = "USD" } }); _repository.UpdateStats(_t, true); Assert.AreEqual((4 * 1000 + 1 * 2000) / 5, _t.CapitalTotal); }