コード例 #1
0
        public virtual void test_rate_onValuation_fixing()
        {
            ForwardFxIndexRates test = ForwardFxIndexRates.of(GBP_USD_WM, FWD_RATES, SERIES);

            assertEquals(test.rate(OBS_VAL, GBP), RATE_VAL);
            assertEquals(test.rate(OBS_VAL, USD), 1d / RATE_VAL);
        }
コード例 #2
0
        public virtual void test_rate_afterValuation()
        {
            ForwardFxIndexRates test         = ForwardFxIndexRates.of(GBP_USD_WM, FWD_RATES, SERIES);
            LocalDate           maturityDate = GBP_USD_WM.calculateMaturityFromFixing(DATE_AFTER, REF_DATA);
            double dfCcyBaseAtMaturity       = DFCURVE_GBP.discountFactor(maturityDate);
            double dfCcyCounterAtMaturity    = DFCURVE_USD.discountFactor(maturityDate);
            double expected = FX_RATE.fxRate(GBP, USD) * (dfCcyBaseAtMaturity / dfCcyCounterAtMaturity);

            assertEquals(test.rate(OBS_AFTER, GBP), expected, 1e-8);
            assertEquals(test.rate(OBS_AFTER, USD), 1d / expected, 1e-8);
        }
コード例 #3
0
        public virtual void test_rate_nonMatchingCurrency()
        {
            ForwardFxIndexRates test = ForwardFxIndexRates.of(GBP_USD_WM, FWD_RATES, SERIES);

            assertThrowsIllegalArg(() => test.rate(OBS_EUR_VAL, EUR));
        }
コード例 #4
0
        public virtual void test_rate_beforeValuation_noFixing_notEmptySeries()
        {
            ForwardFxIndexRates test = ForwardFxIndexRates.of(GBP_USD_WM, FWD_RATES, SERIES_MINIMAL);

            assertThrowsIllegalArg(() => test.rate(OBS_BEFORE, GBP));
        }