Пример #1
0
        public virtual void test_presentValue_onFix()
        {
            double computedInterp  = PRICER.presentValue(PERIOD_INTERP, IRP_ON_FIX, ICDF_ON_FIX);
            double computedMonthly = PRICER.presentValue(PERIOD_MONTHLY, IRP_ON_FIX, ICDF_ON_FIX);
            double index2          = IRP_ON_FIX.priceIndexValues(US_CPI_U).value(OBS_PLUS1);
            double df              = ICDF_ON_FIX.discountFactor(END);
            double expectedInterp  = (INDEX_END_1 * WEIGHT + (1d - WEIGHT) * index2) / START_INDEX * REAL_COUPON * NOTIONAL * df;
            double expectedMonthly = INDEX_END_1 / START_INDEX * REAL_COUPON * NOTIONAL * df;

            assertEquals(computedInterp, expectedInterp, TOL * expectedInterp);
            assertEquals(computedMonthly, expectedMonthly, TOL * expectedMonthly);
        }
Пример #2
0
        //-------------------------------------------------------------------------
        public virtual void test_presentValue_beforeStart()
        {
            double computedInterp    = PRICER.presentValue(PERIOD_INTERP, IRP_BEFORE_START, ICDF_BEFORE_START);
            double computedMonthly   = PRICER.presentValue(PERIOD_MONTHLY, IRP_BEFORE_START, ICDF_BEFORE_START);
            double computedFvInterp  = PRICER.forecastValue(PERIOD_INTERP, IRP_BEFORE_START);
            double computedFvMonthly = PRICER.forecastValue(PERIOD_MONTHLY, IRP_BEFORE_START);
            double index1            = IRP_BEFORE_START.priceIndexValues(US_CPI_U).value(OBS);
            double index2            = IRP_BEFORE_START.priceIndexValues(US_CPI_U).value(OBS_PLUS1);
            double df = ICDF_BEFORE_START.discountFactor(END);
            double expectedFvInterp  = (index1 * WEIGHT + (1d - WEIGHT) * index2) / START_INDEX * REAL_COUPON * NOTIONAL;
            double expectedFvMonthly = index1 / START_INDEX * REAL_COUPON * NOTIONAL;

            assertEquals(computedFvInterp, expectedFvInterp, TOL * expectedFvInterp);
            assertEquals(computedFvMonthly, expectedFvMonthly, TOL * expectedFvMonthly);
            assertEquals(computedInterp, expectedFvInterp * df, TOL * expectedFvInterp * df);
            assertEquals(computedMonthly, expectedFvMonthly * df, TOL * expectedFvMonthly * df);
        }