public virtual void test_of() { SabrParametersIborCapletFloorletVolatilities test = SabrParametersIborCapletFloorletVolatilities.of(NAME, EUR_EURIBOR_3M, DATE_TIME, PARAM); assertEquals(test.Index, EUR_EURIBOR_3M); assertEquals(test.DayCount, ACT_ACT_ISDA); assertEquals(test.Parameters, PARAM); assertEquals(test.ValuationDateTime, DATE_TIME); assertEquals(test.ParameterCount, PARAM.ParameterCount); int nParams = PARAM.ParameterCount; double newValue = 152d; for (int i = 0; i < nParams; ++i) { assertEquals(test.getParameter(i), PARAM.getParameter(i)); assertEquals(test.getParameterMetadata(i), PARAM.getParameterMetadata(i)); assertEquals(test.withParameter(i, newValue), SabrParametersIborCapletFloorletVolatilities.of(NAME, EUR_EURIBOR_3M, DATE_TIME, PARAM.withParameter(i, newValue))); assertEquals(test.withPerturbation((n, v, m) => 2d * v), SabrParametersIborCapletFloorletVolatilities.of(NAME, EUR_EURIBOR_3M, DATE_TIME, PARAM.withPerturbation((n, v, m) => 2d * v))); } }