public InitialMargin GetInitialMarginRequiredForOrder(InitialMarginRequiredForOrderParameters parameters) { reentry = true; EnsureSecurityExists(parameters.Security); var expected = SecurityModel.GetInitialMarginRequiredForOrder(parameters); if (reentry) { return(expected); } var actual = PositionGroupModel.GetInitialMarginRequiredForOrder(new PositionGroupInitialMarginForOrderParameters( Portfolio, new PositionGroup(PositionGroupModel, new Position(parameters.Security, parameters.Order.Quantity)), parameters.Order )); Assert.AreEqual(expected.Value, actual.Value, $"{PositionGroupModel.GetType().Name}:{nameof(GetInitialMarginRequiredForOrder)}" ); reentry = false; return(expected); }