public virtual void hashEqualGetter() { assertEquals(PARAMETERS.AlphaSurface, ALPHA_SURFACE); assertEquals(PARAMETERS.BetaSurface, BETA_SURFACE); assertEquals(PARAMETERS.RhoSurface, RHO_SURFACE); assertEquals(PARAMETERS.NuSurface, NU_SURFACE); assertEquals(PARAMETERS.SabrVolatilityFormula, FORMULA); assertEquals(PARAMETERS.ShiftSurface.Name, SurfaceName.of("Zero shift")); double expiry = 2.0; double tenor = 3.0; double alpha = ALPHA_SURFACE.zValue(expiry, tenor); double beta = BETA_SURFACE.zValue(expiry, tenor); double rho = RHO_SURFACE.zValue(expiry, tenor); double nu = NU_SURFACE.zValue(expiry, tenor); assertEquals(PARAMETERS.alpha(expiry, tenor), alpha); assertEquals(PARAMETERS.beta(expiry, tenor), beta); assertEquals(PARAMETERS.rho(expiry, tenor), rho); assertEquals(PARAMETERS.nu(expiry, tenor), nu); double strike = 1.1; double forward = 1.05; assertEquals(PARAMETERS.volatility(expiry, tenor, strike, forward), FORMULA.volatility(forward, strike, expiry, alpha, beta, rho, nu)); double[] adjCmp = PARAMETERS.volatilityAdjoint(expiry, tenor, strike, forward).Derivatives.toArray(); double[] adjExp = FORMULA.volatilityAdjoint(forward, strike, expiry, alpha, beta, rho, nu).Derivatives.toArray(); for (int i = 0; i < 6; ++i) { assertEquals(adjCmp[i], adjExp[i]); } SabrInterestRateParameters other = SabrInterestRateParameters.of(ALPHA_SURFACE, BETA_SURFACE, RHO_SURFACE, NU_SURFACE, FORMULA); assertEquals(PARAMETERS, other); assertEquals(PARAMETERS.GetHashCode(), other.GetHashCode()); }
public virtual void test_findData() { SabrParametersSwaptionVolatilities test = SabrParametersSwaptionVolatilities.of(NAME, CONV, DATE_TIME, PARAM); assertEquals(test.findData(PARAM.AlphaSurface.Name), PARAM.AlphaSurface); assertEquals(test.findData(PARAM.BetaSurface.Name), PARAM.BetaSurface); assertEquals(test.findData(PARAM.RhoSurface.Name), PARAM.RhoSurface); assertEquals(test.findData(PARAM.NuSurface.Name), PARAM.NuSurface); assertEquals(test.findData(PARAM.ShiftSurface.Name), PARAM.ShiftSurface); assertEquals(test.findData(SurfaceName.of("Rubbish")), null); }
public virtual void test_findData() { SabrParametersIborCapletFloorletVolatilities test = SabrParametersIborCapletFloorletVolatilities.of(NAME, EUR_EURIBOR_3M, DATE_TIME, PARAM); assertEquals(test.findData(PARAM.AlphaCurve.Name), PARAM.AlphaCurve); assertEquals(test.findData(PARAM.BetaCurve.Name), PARAM.BetaCurve); assertEquals(test.findData(PARAM.RhoCurve.Name), PARAM.RhoCurve); assertEquals(test.findData(PARAM.NuCurve.Name), PARAM.NuCurve); assertEquals(test.findData(PARAM.ShiftCurve.Name), PARAM.ShiftCurve); assertEquals(test.findData(SurfaceName.of("Rubbish")), null); }