/** * Gets currency pair of the base currency and counter currency. * <p> * This currency pair is conventional, thus indifferent to the direction of FX. * * @return the currency pair */ public CurrencyPair getCurrencyPair() { return CurrencyPair.of(baseCurrencyPayment.getCurrency(), counterCurrencyPayment.getCurrency()); }
/** * Gets currency pair of the base currency and counter currency. * <p> * This currency pair is conventional, thus indifferent to the direction of FX. * * @return the currency pair */ @Override public CurrencyPair getCurrencyPair() { return CurrencyPair.of(baseCurrencyPayment.getCurrency(), counterCurrencyPayment.getCurrency()); }
public void test_of_CurrencyCurrencyDouble() { FxRate test = FxRate.of(GBP, USD, 1.5d); assertEquals(test.getPair(), CurrencyPair.of(GBP, USD)); assertEquals(test.fxRate(GBP, USD), 1.5d, 0); assertEquals(test.toString(), "GBP/USD 1.5"); }
public void test_of_amounts_rightOrder() { ResolvedFxSingle test = sut(); assertEquals(test.getBaseCurrencyPayment(), PAYMENT_GBP_P1000); assertEquals(test.getCounterCurrencyPayment(), PAYMENT_USD_M1600); assertEquals(test.getPaymentDate(), DATE_2015_06_30); assertEquals(test.getCurrencyPair(), CurrencyPair.of(GBP, USD)); assertEquals(test.getReceiveCurrencyAmount(), GBP_P1000); }
public void test_of_rate_withAdjustment() { FxSingle test = FxSingle.of(GBP_P1000, FxRate.of(GBP, USD, 1.6d), DATE_2015_06_30, BDA); assertEquals(test.getBaseCurrencyAmount(), GBP_P1000); assertEquals(test.getCounterCurrencyAmount(), USD_M1600); assertEquals(test.getPaymentDate(), DATE_2015_06_30); assertEquals(test.getPaymentDateAdjustment(), Optional.of(BDA)); assertEquals(test.getCurrencyPair(), CurrencyPair.of(GBP, USD)); assertEquals(test.getReceiveCurrencyAmount(), GBP_P1000); }
public void test_convertedTo() { double sensi = 32d; CreditCurveZeroRateSensitivity base = CreditCurveZeroRateSensitivity.of(LEGAL_ENTITY, GBP, YEAR_FRACTION, sensi); double rate = 1.5d; FxMatrix matrix = FxMatrix.of(CurrencyPair.of(GBP, USD), rate); CreditCurveZeroRateSensitivity test1 = base.convertedTo(USD, matrix); CreditCurveZeroRateSensitivity expected = CreditCurveZeroRateSensitivity.of(LEGAL_ENTITY, GBP, YEAR_FRACTION, USD, rate * sensi); assertEquals(test1, expected); CreditCurveZeroRateSensitivity test2 = base.convertedTo(GBP, matrix); assertEquals(test2, base); }
public void test_convertedTo() { IborCapletFloorletSensitivity base = IborCapletFloorletSensitivity.of(NAME, EXPIRY, STRIKE, FORWARD, GBP, SENSITIVITY); double rate = 1.5d; FxMatrix matrix = FxMatrix.of(CurrencyPair.of(GBP, USD), rate); IborCapletFloorletSensitivity test1 = base.convertedTo(USD, matrix); IborCapletFloorletSensitivity expected = IborCapletFloorletSensitivity.of(NAME, EXPIRY, STRIKE, FORWARD, USD, SENSITIVITY * rate); assertEquals(test1, expected); IborCapletFloorletSensitivity test2 = base.convertedTo(GBP, matrix); assertEquals(test2, base); }
public void test_convertedTo() { FxForwardSensitivity base = FxForwardSensitivity.of(CURRENCY_PAIR, GBP, REFERENCE_DATE, SENSITIVITY); double rate = 1.4d; FxMatrix matrix = FxMatrix.of(CurrencyPair.of(EUR, USD), rate); FxForwardSensitivity test1 = (FxForwardSensitivity) base.convertedTo(USD, matrix); FxForwardSensitivity expected = FxForwardSensitivity.of( CURRENCY_PAIR, GBP, REFERENCE_DATE, USD, SENSITIVITY * rate); assertEquals(test1, expected); FxForwardSensitivity test2 = (FxForwardSensitivity) base.convertedTo(EUR, matrix); assertEquals(test2, base); }
public void test_fxRate_pair() { ImmutableRatesProvider test = ImmutableRatesProvider.builder(VAL_DATE) .fxRateProvider(FX_MATRIX) .build(); assertEquals(test.fxRate(CurrencyPair.of(USD, GBP)), 1 / FX_GBP_USD, 0d); }
public void test_of_rate_rightOrder() { ResolvedFxSingle test = ResolvedFxSingle.of(GBP_P1000, FxRate.of(GBP, USD, 1.6d), DATE_2015_06_30); assertEquals(test.getBaseCurrencyPayment(), Payment.of(GBP_P1000, DATE_2015_06_30)); assertEquals(test.getCounterCurrencyPayment(), Payment.of(USD_M1600, DATE_2015_06_30)); assertEquals(test.getPaymentDate(), DATE_2015_06_30); assertEquals(test.getCurrencyPair(), CurrencyPair.of(GBP, USD)); assertEquals(test.getReceiveCurrencyAmount(), GBP_P1000); }
public void coverage() { FxOptionSensitivity test1 = FxOptionSensitivity.of(NAME, PAIR, EXPIRY, STRIKE, FORWARD, GBP, SENSI_VALUE); coverImmutableBean(test1); FxOptionSensitivity test2 = FxOptionSensitivity.of(NAME2, CurrencyPair.of(EUR, USD), EXPIRY, 0.8, 0.9, EUR, 1.1); coverBeanEquals(test1, test2); }
public void test_of_bothZero() { FxSingle test = FxSingle.of(CurrencyAmount.zero(GBP), CurrencyAmount.zero(USD), DATE_2015_06_30); assertEquals(test.getBaseCurrencyAmount(), CurrencyAmount.zero(GBP)); assertEquals(test.getCounterCurrencyAmount(), CurrencyAmount.zero(USD)); assertEquals(test.getPaymentDate(), DATE_2015_06_30); assertEquals(test.getCurrencyPair(), CurrencyPair.of(GBP, USD)); assertEquals(test.getPayCurrencyAmount(), CurrencyAmount.zero(GBP)); assertEquals(test.getReceiveCurrencyAmount(), CurrencyAmount.zero(USD)); }
public void test_of_amounts_bothZero() { ResolvedFxSingle test = ResolvedFxSingle.of(CurrencyAmount.zero(GBP), CurrencyAmount.zero(USD), DATE_2015_06_30); assertEquals(test.getBaseCurrencyPayment(), Payment.of(CurrencyAmount.zero(GBP), DATE_2015_06_30)); assertEquals(test.getCounterCurrencyPayment(), Payment.of(CurrencyAmount.zero(USD), DATE_2015_06_30)); assertEquals(test.getPaymentDate(), DATE_2015_06_30); assertEquals(test.getCurrencyPair(), CurrencyPair.of(GBP, USD)); assertEquals(test.getReceiveCurrencyAmount(), CurrencyAmount.zero(USD)); }
public void test_of_rate_bothZero() { FxSingle test = FxSingle.of(CurrencyAmount.zero(GBP), FxRate.of(USD, GBP, 1.6d), DATE_2015_06_30); assertEquals(test.getBaseCurrencyAmount(), CurrencyAmount.zero(GBP)); assertEquals(test.getCounterCurrencyAmount().getAmount(), CurrencyAmount.zero(USD).getAmount(), 1e-12); assertEquals(test.getPaymentDate(), DATE_2015_06_30); assertEquals(test.getCurrencyPair(), CurrencyPair.of(GBP, USD)); assertEquals(test.getReceiveCurrencyAmount(), CurrencyAmount.of(USD, 0d)); }
public void test_presentValue_inverse() { CurrencyAmount computed = PRICER.presentValue(NDF_INVERSE, PROVIDER); double dscUsd = PROVIDER.discountFactor(USD, NDF_INVERSE.getPaymentDate()); double dscKrw = PROVIDER.discountFactor(KRW, NDF_INVERSE.getPaymentDate()); double expected = NOMINAL_USD * FX_RATE * (dscKrw - dscUsd * 1 / FX_RATE / PROVIDER.fxRate(CurrencyPair.of(KRW, USD))); assertEquals(computed.getCurrency(), KRW); assertEquals(computed.getAmount(), expected, NOMINAL_USD * FX_RATE * TOL); }
public void coverage() { FxVolatilitySurfaceYearFractionParameterMetadata test1 = FxVolatilitySurfaceYearFractionParameterMetadata.of(TIME_TO_EXPIRY, STRIKE, CURRENCY_PAIR); coverImmutableBean(test1); FxVolatilitySurfaceYearFractionParameterMetadata test2 = FxVolatilitySurfaceYearFractionParameterMetadata.of(3d, MoneynessStrike.of(1.1d), CurrencyPair.of(EUR, AUD)); coverBeanEquals(test1, test2); }
public void test_of_rate_bothZero() { ResolvedFxSingle test = ResolvedFxSingle.of(CurrencyAmount.zero(GBP), FxRate.of(USD, GBP, 1.6d), DATE_2015_06_30); assertEquals(test.getBaseCurrencyPayment().getValue(), CurrencyAmount.zero(GBP)); assertEquals(test.getCounterCurrencyPayment().getValue().getAmount(), CurrencyAmount.zero(USD).getAmount(), 1e-12); assertEquals(test.getPaymentDate(), DATE_2015_06_30); assertEquals(test.getCurrencyPair(), CurrencyPair.of(GBP, USD)); assertEquals(test.getReceiveCurrencyAmount(), CurrencyAmount.of(USD, 0d)); }
public void test_builder_rightOrder() { FxSingle test = FxSingle.meta().builder() .set(FxSingle.meta().baseCurrencyPayment(), Payment.of(GBP_P1000, DATE_2015_06_30)) .set(FxSingle.meta().counterCurrencyPayment(), Payment.of(USD_M1600, DATE_2015_06_30)) .build(); assertEquals(test.getBaseCurrencyAmount(), GBP_P1000); assertEquals(test.getCounterCurrencyAmount(), USD_M1600); assertEquals(test.getPaymentDate(), DATE_2015_06_30); assertEquals(test.getCurrencyPair(), CurrencyPair.of(GBP, USD)); assertEquals(test.getReceiveCurrencyAmount(), GBP_P1000); }
public void coverage() { DiscountFxForwardRates test1 = DiscountFxForwardRates.of(CURRENCY_PAIR, FX_RATE, DFCURVE_GBP, DFCURVE_USD); coverImmutableBean(test1); DiscountFxForwardRates test2 = DiscountFxForwardRates.of(CURRENCY_PAIR, FX_RATE.inverse(), DFCURVE_GBP2, DFCURVE_USD2); coverBeanEquals(test1, test2); DiscountFxForwardRates test3 = DiscountFxForwardRates.of(CurrencyPair.of(USD, EUR), FxRate.of(EUR, USD, 1.2d), DFCURVE_USD, ZeroRateDiscountFactors.of(EUR, DATE_VAL, CURVE2)); coverBeanEquals(test1, test3); }