/** * Resolves the date on this payment, returning a payment with a fixed date. * <p> * This returns a {@link Payment} with the same amount and resolved date. * * @param refData the reference data, used to find the holiday calendar * @return the resolved payment */ @Override public Payment resolve(ReferenceData refData) { return Payment.of(value, date.adjusted(refData)); }
public void test_adjustDate() { Payment test = Payment.ofReceive(GBP_P1000, DATE_2015_06_29); Payment expected = Payment.of(GBP_P1000, DATE_2015_06_29.plusDays(1)); assertEquals(test.adjustDate(TemporalAdjusters.ofDateAdjuster(d -> d.plusDays(1))), expected); }
/** * Returns a copy of this {@code Payment} with the value negated. * <p> * This takes this payment and negates it. * <p> * This instance is immutable and unaffected by this method. * * @return a payment based on this with the value negated */ public Payment negated() { return Payment.of(value.negated(), date); }
/** * Obtains an instance from the amount and date. * * @param paymentAmount the amount of the notional exchange * @param paymentDate the date that the payment is made * @return the notional exchange */ public static NotionalExchange of(CurrencyAmount paymentAmount, LocalDate paymentDate) { return new NotionalExchange(Payment.of(paymentAmount, paymentDate)); }
@Override public ResolvedBulletPayment resolve(ReferenceData refData) { CurrencyAmount signed = payReceive == PayReceive.PAY ? value.negated() : value; Payment payment = Payment.of(signed, date.adjusted(refData)); return ResolvedBulletPayment.of(payment); }
public void test_of_Payment() { NotionalExchange test = NotionalExchange.of(Payment.of(GBP_1000, DATE_2014_06_30)); assertEquals(test.getPayment(), Payment.of(GBP_1000, DATE_2014_06_30)); assertEquals(test.getPaymentDate(), DATE_2014_06_30); assertEquals(test.getPaymentAmount(), GBP_1000); assertEquals(test.getCurrency(), GBP); }
public void test_resolve() { FxSingle fwd = sut(); ResolvedFxSingle test = fwd.resolve(REF_DATA); 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); }
public void test_of_switchOrderPayments() { FxSingle test = FxSingle.of(Payment.of(USD_M1600, DATE_2015_06_30), Payment.of(GBP_P1000, DATE_2015_06_30)); 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.getPayCurrencyAmount(), USD_M1600); assertEquals(test.getReceiveCurrencyAmount(), GBP_P1000); }
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 test_of_rate_switchOrder() { ResolvedFxSingle test = ResolvedFxSingle.of(USD_M1600, FxRate.of(USD, GBP, 1d / 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 fxSpot() { String location = "classpath:com/opengamma/strata/loader/fpml/fx-ex01-fx-spot.xml"; ByteSource resource = ResourceLocator.of(location).getByteSource(); List<Trade> trades = FpmlDocumentParser.of(FpmlPartySelector.matching("Party1")).parseTrades(resource); assertEquals(trades.size(), 1); Trade trade = trades.get(0); assertEquals(trade.getClass(), FxSingleTrade.class); FxSingleTrade fxTrade = (FxSingleTrade) trade; assertEquals(fxTrade.getInfo().getTradeDate(), Optional.of(date(2001, 10, 23))); FxSingle fx = fxTrade.getProduct(); assertEquals(fx.getBaseCurrencyPayment(), Payment.of(GBP, 10000000, date(2001, 10, 25))); assertEquals(fx.getCounterCurrencyPayment(), Payment.of(USD, -14800000, date(2001, 10, 25))); }
@Override public Payment upfrontPayment(ResolvedFixedCouponBondTrade trade) { return Payment.of(CurrencyAmount.zero(trade.getProduct().getCurrency()), SETTLEMENT); } };
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_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); }
@Override public ResolvedBillTrade resolve(ReferenceData refData) { ResolvedBill resolvedProduct = product.resolve(refData); CurrencyAmount settleAmount = product.getNotional().getValue().multipliedBy(-price * quantity); LocalDate settlementDate = calculateSettlementDate(refData); Payment settlement = Payment.of(settleAmount, settlementDate); return ResolvedBillTrade.builder() .info(info) .product(resolvedProduct) .quantity(quantity) .settlement(settlement).build(); }
public void test_resolve_receive() { BulletPayment test = BulletPayment.builder() .payReceive(PayReceive.RECEIVE) .value(GBP_P1000) .date(AdjustableDate.of(DATE_2015_06_30)) .build(); ResolvedBulletPayment expected = ResolvedBulletPayment.of(Payment.of(GBP_P1000, DATE_2015_06_30)); assertEquals(test.resolve(REF_DATA), expected); }
public void test_resolve() { Payment settle = Payment .of(PRODUCT.getNotional().getValue().multipliedBy(-PRICE * QUANTITY), SETTLEMENT_DATE); ResolvedBillTrade expected = ResolvedBillTrade.builder() .info(TRADE_INFO) .product(PRODUCT.resolve(REF_DATA)) .quantity(QUANTITY) .settlement(settle) .build(); assertEquals(sut_price().resolve(REF_DATA), expected); }