/** * Gets the {@code CurrencyAmount} for the specified currency, returning zero if not found. * * @param currency the currency to find an amount for * @return the amount */ public CurrencyAmount getAmountOrZero(Currency currency) { ArgChecker.notNull(currency, "currency"); return amounts.stream() .filter(ca -> ca.getCurrency().equals(currency)) .findFirst() .orElseGet(() -> CurrencyAmount.zero(currency)); }
public void test_presentValue_afterPayment() { CurrencyAmount pv = PRICER.presentValue(COUPON, RATES_PROVIDER_AFTER_PAY, VOLATILITIES_AFTER_PAY); CurrencyAmount pvCaplet = PRICER.presentValue(CAPLET, RATES_PROVIDER_AFTER_PAY, VOLATILITIES_AFTER_PAY); CurrencyAmount pvFloorlet = PRICER.presentValue(FLOORLET, RATES_PROVIDER_AFTER_PAY, VOLATILITIES_AFTER_PAY); assertEquals(pv, CurrencyAmount.zero(EUR)); assertEquals(pvCaplet, CurrencyAmount.zero(EUR)); assertEquals(pvFloorlet, CurrencyAmount.zero(EUR)); }
public void presentValue_afterPayment() { CurrencyAmount pv = PRICER_CMS.presentValue(COUPON, RATES_PROVIDER_AFTER_PAY); CurrencyAmount pvCaplet = PRICER_CMS.presentValue(CAPLET, RATES_PROVIDER_AFTER_PAY); CurrencyAmount pvFloorlet = PRICER_CMS.presentValue(FLOORLET, RATES_PROVIDER_AFTER_PAY); assertEquals(pv, CurrencyAmount.zero(EUR)); assertEquals(pvCaplet, CurrencyAmount.zero(EUR)); assertEquals(pvFloorlet, CurrencyAmount.zero(EUR)); }
public void test_currentCash_valuationAtPayment() { LocalDate paymentDate = LocalDate.of(2016, 10, 12); CurrencyAmount ccComputed = TRADE_PRICER.currentCash(TRADE, paymentDate); assertEquals(ccComputed, CurrencyAmount.zero(EUR)); }
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_currentCash_zero() { MultiCurrencyAmount computed = SWAP_PRODUCT_PRICER.currentCash(SWAP_CROSS_CURRENCY, RATES_GBP_USD); assertEquals(computed, MultiCurrencyAmount.of(CurrencyAmount.zero(GBP), CurrencyAmount.zero(USD))); MultiCurrencyAmount fromTrade = SWAP_TRADE_PRICER.currentCash(SWAP_TRADE_CROSS_CURRENCY, RATES_GBP_USD); assertEquals(fromTrade, computed); }
public void test_zero_Currency() { CurrencyAmount test = CurrencyAmount.zero(Currency.USD); assertEquals(test.getCurrency(), Currency.USD); assertEquals(test.getAmount(), 0d, 0); }
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_currentCash_zero() { ResolvedSwapLeg expSwapLeg = IBOR_SWAP_LEG_REC_GBP; CurrencyAmount computed = PRICER_LEG.currentCash(expSwapLeg, RATES_GBP); assertEquals(computed, CurrencyAmount.zero(expSwapLeg.getCurrency())); }
public void test_currentCash() { MultiCurrencyAmount cc1 = PRICER.currentCash(CAP_ONE_LEG, RATES, VOLS); MultiCurrencyAmount cc2 = PRICER.currentCash(CAP_TWO_LEGS, RATES, VOLS); assertEquals(cc1, MultiCurrencyAmount.of(CurrencyAmount.zero(EUR))); assertEquals(cc2, MultiCurrencyAmount.of(CurrencyAmount.zero(EUR))); }
public void test_currentCash() { MultiCurrencyAmount cc1 = PRICER.currentCash(CAP_ONE_LEG, RATES, VOLS); MultiCurrencyAmount cc2 = PRICER.currentCash(CAP_TWO_LEGS, RATES, VOLS); assertEquals(cc1, MultiCurrencyAmount.of(CurrencyAmount.zero(EUR))); assertEquals(cc2, MultiCurrencyAmount.of(CurrencyAmount.zero(EUR))); }
public void test_currentCash() { MultiCurrencyAmount cc1 = PRODUCT_PRICER.currentCash(CMS_ONE_LEG, RATES_PROVIDER, VOLATILITIES); MultiCurrencyAmount cc2 = PRODUCT_PRICER.currentCash(CMS_TWO_LEGS, RATES_PROVIDER, VOLATILITIES); assertEquals(cc1, MultiCurrencyAmount.of(CurrencyAmount.zero(EUR))); assertEquals(cc2, MultiCurrencyAmount.of(CurrencyAmount.zero(EUR))); }
public void test_negated() { MultiCurrencyAmount base = MultiCurrencyAmount.of(CA1, CA2); MultiCurrencyAmount test = base.negated(); assertMCA(test, CA1.negated(), CA2.negated()); assertEquals( MultiCurrencyAmount.of(CurrencyAmount.zero(Currency.USD), CurrencyAmount.zero(Currency.EUR)).negated(), MultiCurrencyAmount.of(CurrencyAmount.zero(Currency.USD), CurrencyAmount.zero(Currency.EUR))); assertEquals( MultiCurrencyAmount.of(CurrencyAmount.of(Currency.USD, -0d), CurrencyAmount.of(Currency.EUR, -0d)).negated(), MultiCurrencyAmount.of(CurrencyAmount.zero(Currency.USD), CurrencyAmount.zero(Currency.EUR))); }
public void test_accruedInterest_valDateBeforePeriod() { RatesProvider prov = new MockRatesProvider(IBOR_RATE_PAYMENT_PERIOD_REC_GBP.getStartDate()); SwapPaymentPeriodPricer<SwapPaymentPeriod> mockPeriod = mock(SwapPaymentPeriodPricer.class); when(mockPeriod.accruedInterest(IBOR_RATE_PAYMENT_PERIOD_REC_GBP, prov)) .thenReturn(1000d); SwapPaymentEventPricer<SwapPaymentEvent> mockEvent = mock(SwapPaymentEventPricer.class); DiscountingSwapLegPricer test = new DiscountingSwapLegPricer(mockPeriod, mockEvent); assertEquals(test.accruedInterest(IBOR_SWAP_LEG_REC_GBP, prov), CurrencyAmount.zero(GBP)); }
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_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_currentCash() { MultiCurrencyAmount cc1 = TRADE_PRICER.currentCash(CMS_TRADE_PREMIUM, RATES_PROVIDER); MultiCurrencyAmount cc2 = TRADE_PRICER.currentCash(CMS_TRADE, RATES_PROVIDER); assertEquals(cc1, MultiCurrencyAmount.of(PREMIUM.getValue())); assertEquals(cc2, MultiCurrencyAmount.of(CurrencyAmount.zero(EUR))); }
public void test_currentCash() { MultiCurrencyAmount computedWithPayLeg = PRICER.currentCash(TRADE_PAYLEG, RATES, VOLS); MultiCurrencyAmount computedWithPremium = PRICER.currentCash(TRADE_PREMIUM, RATES, VOLS); assertEquals(computedWithPayLeg, MultiCurrencyAmount.of(CurrencyAmount.zero(EUR))); assertEquals(computedWithPremium, MultiCurrencyAmount.of(PREMIUM.getValue())); }
@Override public Payment upfrontPayment(ResolvedFixedCouponBondTrade trade) { return Payment.of(CurrencyAmount.zero(trade.getProduct().getCurrency()), SETTLEMENT); } };
public void test_of_positiveNegative() { assertThrowsIllegalArg(() -> FxSingle.of(GBP_P1000, USD_P1600, DATE_2015_06_30)); assertThrowsIllegalArg(() -> FxSingle.of(GBP_M1000, USD_M1600, DATE_2015_06_30)); assertThrowsIllegalArg(() -> FxSingle.of(CurrencyAmount.zero(GBP), USD_M1600, DATE_2015_06_30)); assertThrowsIllegalArg(() -> FxSingle.of(CurrencyAmount.zero(GBP), USD_P1600, DATE_2015_06_30)); }