public void TestNetPosition_TwoDistinctPositions() { List <Position> positions = new List <Position> { new Position { Trader = "AAA", Broker = "BCY", Symbol = "AAPL", Quantity = 100 }, new Position { Trader = "AAA", Broker = "BCY", Symbol = "IBM", Quantity = -200 }, }; PositionsCalculator calc = new PositionsCalculator(); var netted = calc.GetNettedPositionsByTrader(positions); foreach (var pos in netted) { if (pos.Symbol == "AAPL") { Assert.AreEqual(100, pos.Quantity); } if (pos.Symbol == "IBM") { Assert.AreEqual(-200, pos.Quantity); } } }
public void TestBoxedPositions_ValidBoxedPosition() { List <Position> positions = new List <Position> { new Position { Trader = "AAA", Broker = "BCY", Symbol = "AAPL", Quantity = 100 }, new Position { Trader = "AAA", Broker = "DB", Symbol = "AAPL", Quantity = -50 }, }; PositionsCalculator calc = new PositionsCalculator(); var boxed = calc.GetBoxedPositions(positions); Assert.AreEqual(1, boxed.Count); }