//------------------------------------------------------------------------- public virtual void test_presentValueGamma() { CurrencyAmount capComputed = PRICER.presentValueGamma(CAP, RATES, VOLS); CurrencyAmount floorComputed = PRICER.presentValueGamma(FLOOR, RATES, VOLS); double capExpected = 0d; double floorExpected = 0d; int nPeriods = CAP.CapletFloorletPeriods.size(); for (int i = 0; i < nPeriods; ++i) { capExpected += PRICER_PERIOD.presentValueGamma(CAP.CapletFloorletPeriods.get(i), RATES, VOLS).Amount; floorExpected += PRICER_PERIOD.presentValueGamma(FLOOR.CapletFloorletPeriods.get(i), RATES, VOLS).Amount; } assertEquals(capComputed.Currency, EUR); assertEquals(capComputed.Amount, capExpected, TOL * NOTIONAL_VALUE); assertEquals(floorComputed.Currency, EUR); assertEquals(floorComputed.Amount, floorExpected, TOL * NOTIONAL_VALUE); }
public virtual void test_presentValueGamma() { MultiCurrencyAmount computed1 = PRICER.presentValueGamma(CAP_ONE_LEG, RATES, VOLS); MultiCurrencyAmount computed2 = PRICER.presentValueGamma(CAP_TWO_LEGS, RATES, VOLS); CurrencyAmount cap = PRICER_CAP_LEG.presentValueGamma(CAP_LEG, RATES, VOLS); assertEquals(computed1, MultiCurrencyAmount.of(cap)); assertEquals(computed2, MultiCurrencyAmount.of(cap)); }