public void test_builder_defaultDates() { KnownAmountNotionalSwapPaymentPeriod test = KnownAmountNotionalSwapPaymentPeriod.builder() .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_03_30) .endDate(DATE_2014_10_01) .notionalAmount(USD_P50000) .fxResetObservation(FX_RESET) .build(); assertEquals(test.getPayment(), PAYMENT_2014_10_03); assertEquals(test.getStartDate(), DATE_2014_03_30); assertEquals(test.getUnadjustedStartDate(), DATE_2014_03_30); assertEquals(test.getEndDate(), DATE_2014_10_01); assertEquals(test.getUnadjustedEndDate(), DATE_2014_10_01); assertEquals(test.getPaymentDate(), DATE_2014_10_03); assertEquals(test.getCurrency(), GBP); assertEquals(test.getNotionalAmount(), USD_P50000); assertEquals(test.getFxResetObservation(), Optional.of(FX_RESET)); }
public void test_collectIndices_simple() { KnownAmountNotionalSwapPaymentPeriod test = KnownAmountNotionalSwapPaymentPeriod.builder() .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_03_30) .unadjustedStartDate(DATE_2014_03_30) .endDate(DATE_2014_10_01) .unadjustedEndDate(DATE_2014_09_30) .notionalAmount(GBP_P50000) .build(); ImmutableSet.Builder<Index> builder = ImmutableSet.builder(); test.collectIndices(builder); assertEquals(builder.build(), ImmutableSet.of()); }
public void test_adjustPaymentDate() { KnownAmountNotionalSwapPaymentPeriod test = KnownAmountNotionalSwapPaymentPeriod.builder() .payment(PAYMENT_2014_10_01) .startDate(DATE_2014_03_30) .unadjustedStartDate(DATE_2014_03_30) .endDate(DATE_2014_10_01) .unadjustedEndDate(DATE_2014_09_30) .notionalAmount(GBP_P50000) .build(); KnownAmountNotionalSwapPaymentPeriod expected = KnownAmountNotionalSwapPaymentPeriod.builder() .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_03_30) .unadjustedStartDate(DATE_2014_03_30) .endDate(DATE_2014_10_01) .unadjustedEndDate(DATE_2014_09_30) .notionalAmount(GBP_P50000) .build(); assertEquals(test.adjustPaymentDate(TemporalAdjusters.ofDateAdjuster(d -> d.plusDays(0))), test); assertEquals(test.adjustPaymentDate(TemporalAdjusters.ofDateAdjuster(d -> d.plusDays(2))), expected); }
.payment(Payment.of(knownAmount, DATE_02_07)) .startDate(DATE_02_03) .endDate(DATE_02_05) .unadjustedStartDate(DATE_02_03) .notionalAmount(CurrencyAmount.of(GBP, -1000d))
public void test_builder_invalid() { assertThrowsIllegalArg(() -> KnownAmountNotionalSwapPaymentPeriod.builder() .payment(PAYMENT_2014_10_03) .endDate(DATE_2014_10_01) .notionalAmount(GBP_P50000) .build()); .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_10_01) .endDate(DATE_2014_10_01) .notionalAmount(GBP_P50000) .build()); .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_03_30) .endDate(DATE_2014_10_01) .notionalAmount(CurrencyAmount.of(USD, 1000d)) .build()); .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_03_30) .endDate(DATE_2014_10_01) .notionalAmount(CurrencyAmount.of(GBP, 1000d)) .fxResetObservation(FX_RESET) .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_03_30) .endDate(DATE_2014_10_01) .notionalAmount(CurrencyAmount.of(EUR, 1000d)) .fxResetObservation(FX_RESET)
/** * Obtains an instance based on a payment, schedule period, notional and FX reset. * * @param payment the payment * @param period the schedule period * @param notional the notional * @param fxResetObservation the FX reset observation * @return the period */ public static KnownAmountNotionalSwapPaymentPeriod of( Payment payment, SchedulePeriod period, CurrencyAmount notional, FxIndexObservation fxResetObservation) { return KnownAmountNotionalSwapPaymentPeriod.builder() .payment(payment) .startDate(period.getStartDate()) .endDate(period.getEndDate()) .unadjustedStartDate(period.getUnadjustedStartDate()) .unadjustedEndDate(period.getUnadjustedEndDate()) .notionalAmount(notional) .fxResetObservation(fxResetObservation) .build(); }
/** * Obtains an instance based on a payment, schedule period and notional. * * @param payment the payment * @param period the schedule period * @param notional the notional * @return the period */ public static KnownAmountNotionalSwapPaymentPeriod of( Payment payment, SchedulePeriod period, CurrencyAmount notional) { return KnownAmountNotionalSwapPaymentPeriod.builder() .payment(payment) .startDate(period.getStartDate()) .endDate(period.getEndDate()) .unadjustedStartDate(period.getUnadjustedStartDate()) .unadjustedEndDate(period.getUnadjustedEndDate()) .notionalAmount(notional) .build(); }
public void coverage() { KnownAmountNotionalSwapPaymentPeriod test = KnownAmountNotionalSwapPaymentPeriod.builder() .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_03_30) .unadjustedStartDate(DATE_2014_03_30) .endDate(DATE_2014_10_01) .unadjustedEndDate(DATE_2014_09_30) .notionalAmount(GBP_P50000) .build(); coverImmutableBean(test); KnownAmountNotionalSwapPaymentPeriod test2 = KnownAmountNotionalSwapPaymentPeriod.builder() .payment(PAYMENT_2014_10_03.negated()) .startDate(DATE_2014_06_30) .endDate(DATE_2014_09_30) .notionalAmount(GBP_P1000) .build(); coverBeanEquals(test, test2); }
public void test_serialization() { KnownAmountNotionalSwapPaymentPeriod test = KnownAmountNotionalSwapPaymentPeriod.builder() .payment(PAYMENT_2014_10_03) .startDate(DATE_2014_03_30) .unadjustedStartDate(DATE_2014_03_30) .endDate(DATE_2014_10_01) .unadjustedEndDate(DATE_2014_09_30) .notionalAmount(GBP_P50000) .build(); assertSerialization(test); }