public virtual void test_presentValueTheta() { MultiCurrencyAmount computed1 = PRICER.presentValueTheta(CAP_ONE_LEG, RATES, VOLS); MultiCurrencyAmount computed2 = PRICER.presentValueTheta(CAP_TWO_LEGS, RATES, VOLS); CurrencyAmount cap = PRICER_CAP_LEG.presentValueTheta(CAP_LEG, RATES, VOLS); assertEquals(computed1, MultiCurrencyAmount.of(cap)); assertEquals(computed2, MultiCurrencyAmount.of(cap)); }
//------------------------------------------------------------------------- public virtual void test_presentValueTheta() { CurrencyAmount capComputed = PRICER.presentValueTheta(CAP, RATES, VOLS); CurrencyAmount floorComputed = PRICER.presentValueTheta(FLOOR, RATES, VOLS); double capExpected = 0d; double floorExpected = 0d; int nPeriods = CAP.CapletFloorletPeriods.size(); for (int i = 0; i < nPeriods; ++i) { capExpected += PRICER_PERIOD.presentValueTheta(CAP.CapletFloorletPeriods.get(i), RATES, VOLS).Amount; floorExpected += PRICER_PERIOD.presentValueTheta(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); }