/** Test par spread for AFMA FRA Discounting method. */ public void test_parSpread_AFMA() { ExpandedFra fraExp = FRA_AFMA.expand(); SimpleRatesProvider prov = createProvider(fraExp); DiscountingFraProductPricer test = DiscountingFraProductPricer.DEFAULT; double parSpread = test.parSpread(fraExp, prov); Fra fra = createNewFra(FRA_AFMA, FRA_AFMA.getFixedRate() + parSpread); CurrencyAmount pv = test.presentValue(fra, prov); assertEquals(pv.getAmount(), 0.0, TOLERANCE); }
/** Test forecast value for AFMA FRA Discounting method. */ public void test_forecastValue_AFMA() { ExpandedFra fraExp = FRA_AFMA.expand(); SimpleRatesProvider prov = createProvider(fraExp); double fixedRate = FRA_AFMA.getFixedRate(); double yearFraction = fraExp.getYearFraction(); double notional = fraExp.getNotional(); double expected = -notional * (1.0 / (1.0 + yearFraction * FORWARD_RATE) - 1.0 / (1.0 + yearFraction * fixedRate)); DiscountingFraProductPricer test = DiscountingFraProductPricer.DEFAULT; CurrencyAmount computed = test.forecastValue(fraExp, prov); assertEquals(computed.getAmount(), expected, TOLERANCE); }