@Override public ResolvedIborFuture resolve(ReferenceData refData) { IborRateComputation iborRate = IborRateComputation.of(index, lastTradeDate, refData); return new ResolvedIborFuture(securityId, currency, notional, accrualFactor, iborRate, rounding); }
private RateComputation createRateComputation(ReferenceData refData) { LocalDate fixingDate = fixingDateOffset.adjust(startDate, refData); if (indexInterpolated != null) { return IborInterpolatedRateComputation.of(index, indexInterpolated, fixingDate, refData); } else { return IborRateComputation.of(index, fixingDate, refData); } }
public void test_createRateComputation_NONE() { IborRateStubCalculation test = IborRateStubCalculation.NONE; assertEquals(test.createRateComputation(DATE, GBP_LIBOR_3M, REF_DATA), IborRateComputation.of(GBP_LIBOR_3M, DATE, REF_DATA)); }
public void test_collectIndices() { IborRateComputation test = IborRateComputation.of(GBP_LIBOR_3M, date(2014, 6, 30), REF_DATA); ImmutableSet.Builder<Index> builder = ImmutableSet.builder(); test.collectIndices(builder); assertEquals(builder.build(), ImmutableSet.of(GBP_LIBOR_3M)); }
public void test_serialization() { IborRateComputation test = IborRateComputation.of(GBP_LIBOR_3M, date(2014, 6, 30), REF_DATA); assertSerialization(test); }
public void test_rate_IborRateComputation() { RateComputationFn<IborRateComputation> mockIbor = mock(RateComputationFn.class); IborRateComputation ro = IborRateComputation.of(GBP_LIBOR_3M, FIXING_DATE, REF_DATA); when(mockIbor.rate(ro, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)) .thenReturn(0.0123d); DispatchingRateComputationFn test = new DispatchingRateComputationFn( mockIbor, MOCK_IBOR_INT_EMPTY, MOCK_IBOR_AVE_EMPTY, MOCK_ON_CPD_EMPTY, MOCK_BRL_ON_CPD_EMPTY, MOCK_ON_AVE_EMPTY, MOCK_ON_AVE_DLY_EMPTY, MOCK_INF_MON_EMPTY, MOCK_INF_INT_EMPTY, MOCK_INF_BOND_MON_EMPTY, MOCK_INF_BOND_INT_EMPTY); assertEquals(test.rate(ro, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV), 0.0123d, 0d); }
public void test_of() { IborRateComputation test = IborRateComputation.of(USD_LIBOR_3M, date(2016, 2, 18), REF_DATA); IborIndexObservation obs = IborIndexObservation.of(USD_LIBOR_3M, date(2016, 2, 18), REF_DATA); IborRateComputation expected = IborRateComputation.of(obs); assertEquals(test, expected); assertEquals(test.getCurrency(), USD); assertEquals(test.getIndex(), obs.getIndex()); assertEquals(test.getFixingDate(), obs.getFixingDate()); assertEquals(test.getEffectiveDate(), obs.getEffectiveDate()); assertEquals(test.getMaturityDate(), obs.getMaturityDate()); assertEquals(test.getYearFraction(), obs.getYearFraction()); }
public void test_builder() { ResolvedFra test = sut(); assertEquals(test.getPaymentDate(), date(2015, 6, 16)); assertEquals(test.getStartDate(), date(2015, 6, 15)); assertEquals(test.getEndDate(), date(2015, 9, 15)); assertEquals(test.getYearFraction(), 0.25d, 0d); assertEquals(test.getFixedRate(), 0.25d, 0d); assertEquals(test.getFloatingRate(), IborRateComputation.of(GBP_LIBOR_3M, date(2015, 6, 12), REF_DATA)); assertEquals(test.getCurrency(), GBP); assertEquals(test.getNotional(), NOTIONAL_1M, 0d); assertEquals(test.getDiscounting(), ISDA); assertEquals(test.allIndices(), ImmutableSet.of(GBP_LIBOR_3M)); }
public void test_builder_defaults() { ResolvedIborFuture test = ResolvedIborFuture.builder() .securityId(SECURITY_ID) .currency(GBP) .notional(NOTIONAL) .iborRate(IborRateComputation.of(GBP_LIBOR_2M, LAST_TRADE_DATE, REF_DATA)) .build(); assertEquals(test.getCurrency(), GBP); assertEquals(test.getNotional(), NOTIONAL); assertEquals(test.getAccrualFactor(), ACCRUAL_FACTOR_2M); assertEquals(test.getLastTradeDate(), LAST_TRADE_DATE); assertEquals(test.getIndex(), GBP_LIBOR_2M); assertEquals(test.getRounding(), Rounding.none()); assertEquals(test.getIborRate(), IborRateComputation.of(GBP_LIBOR_2M, LAST_TRADE_DATE, REF_DATA)); }
public void test_builder() { ResolvedIborFuture test = sut(); assertEquals(test.getCurrency(), PRODUCT.getCurrency()); assertEquals(test.getNotional(), PRODUCT.getNotional()); assertEquals(test.getAccrualFactor(), PRODUCT.getAccrualFactor()); assertEquals(test.getLastTradeDate(), PRODUCT.getLastTradeDate()); assertEquals(test.getIndex(), PRODUCT.getIndex()); assertEquals(test.getRounding(), PRODUCT.getRounding()); assertEquals(test.getIborRate(), IborRateComputation.of(PRODUCT.getIndex(), PRODUCT.getLastTradeDate(), REF_DATA)); }
public void test_builder_noCurrency() { ResolvedIborFuture test = ResolvedIborFuture.builder() .securityId(SECURITY_ID) .notional(NOTIONAL) .iborRate(IborRateComputation.of(GBP_LIBOR_2M, LAST_TRADE_DATE, REF_DATA)) .rounding(ROUNDING) .build(); assertEquals(GBP, test.getCurrency()); }
static IborCapletFloorletPeriod sut2() { return IborCapletFloorletPeriod.builder() .notional(-NOTIONAL) .startDate(START.plusDays(1)) .endDate(END.plusDays(1)) .floorlet(STRIKE) .iborRate(IborRateComputation.of(USD_LIBOR_6M, LocalDate.of(2013, 2, 15), REF_DATA)) .build(); }
@Override public ResolvedIborFixingDeposit resolve(ReferenceData refData) { DateAdjuster bda = getBusinessDayAdjustment().orElse(BusinessDayAdjustment.NONE).resolve(refData); LocalDate start = bda.adjust(startDate); LocalDate end = bda.adjust(endDate); double yearFraction = dayCount.yearFraction(start, end); LocalDate fixingDate = fixingDateOffset.adjust(startDate, refData); return ResolvedIborFixingDeposit.builder() .startDate(start) .endDate(end) .yearFraction(yearFraction) .currency(getCurrency()) .notional(buySell.normalize(notional)) .floatingRate(IborRateComputation.of(index, fixingDate, refData)) .fixedRate(fixedRate) .build(); }
public void test_resolve() { IborFuture test = sut(); ResolvedIborFuture expected = ResolvedIborFuture.builder() .securityId(SECURITY_ID) .currency(USD) .notional(NOTIONAL) .accrualFactor(ACCRUAL_FACTOR) .iborRate(IborRateComputation.of(USD_LIBOR_3M, LAST_TRADE_DATE, REF_DATA)) .rounding(ROUNDING) .build(); assertEquals(test.resolve(REF_DATA), expected); }
public void test_expand_simple() { IborRateCalculation test = IborRateCalculation.builder() .dayCount(ACT_365F) .index(GBP_LIBOR_1M) .fixingDateOffset(MINUS_TWO_DAYS) .build(); RateAccrualPeriod rap1 = RateAccrualPeriod.builder(ACCRUAL1) .yearFraction(ACCRUAL1.yearFraction(ACT_365F, ACCRUAL_SCHEDULE)) .rateComputation(IborRateComputation.of(GBP_LIBOR_1M, DATE_01_02, REF_DATA)) .build(); RateAccrualPeriod rap2 = RateAccrualPeriod.builder(ACCRUAL2) .yearFraction(ACCRUAL2.yearFraction(ACT_365F, ACCRUAL_SCHEDULE)) .rateComputation(IborRateComputation.of(GBP_LIBOR_1M, DATE_02_03, REF_DATA)) .build(); RateAccrualPeriod rap3 = RateAccrualPeriod.builder(ACCRUAL3) .yearFraction(ACCRUAL3.yearFraction(ACT_365F, ACCRUAL_SCHEDULE)) .rateComputation(IborRateComputation.of(GBP_LIBOR_1M, DATE_03_03, REF_DATA)) .build(); ImmutableList<RateAccrualPeriod> periods = test.createAccrualPeriods(ACCRUAL_SCHEDULE, ACCRUAL_SCHEDULE, REF_DATA); assertEquals(periods, ImmutableList.of(rap1, rap2, rap3)); }
public void test_expand_firstRateFixed() { IborRateCalculation test = IborRateCalculation.builder() .dayCount(ACT_365F) .index(GBP_LIBOR_1M) .fixingDateOffset(MINUS_TWO_DAYS) .firstRate(0.024d) .build(); RateAccrualPeriod rap1 = RateAccrualPeriod.builder(ACCRUAL1) .yearFraction(ACCRUAL1.yearFraction(ACT_365F, ACCRUAL_SCHEDULE)) .rateComputation(FixedRateComputation.of(0.024d)) .build(); RateAccrualPeriod rap2 = RateAccrualPeriod.builder(ACCRUAL2) .yearFraction(ACCRUAL2.yearFraction(ACT_365F, ACCRUAL_SCHEDULE)) .rateComputation(IborRateComputation.of(GBP_LIBOR_1M, DATE_02_03, REF_DATA)) .build(); RateAccrualPeriod rap3 = RateAccrualPeriod.builder(ACCRUAL3) .yearFraction(ACCRUAL3.yearFraction(ACT_365F, ACCRUAL_SCHEDULE)) .rateComputation(IborRateComputation.of(GBP_LIBOR_1M, DATE_03_03, REF_DATA)) .build(); ImmutableList<RateAccrualPeriod> periods = test.createAccrualPeriods(ACCRUAL_SCHEDULE, ACCRUAL_SCHEDULE, REF_DATA); assertEquals(periods, ImmutableList.of(rap1, rap2, rap3)); }
public void test_builder_datesInOrder() { assertThrowsIllegalArg(() -> ResolvedFra.builder() .notional(NOTIONAL_1M) .paymentDate(date(2015, 6, 15)) .startDate(date(2015, 6, 15)) .endDate(date(2015, 6, 14)) .fixedRate(0.25d) .floatingRate(IborRateComputation.of(GBP_LIBOR_3M, date(2015, 6, 12), REF_DATA)) .build()); }
static ResolvedFra sut() { return ResolvedFra.builder() .paymentDate(date(2015, 6, 16)) .startDate(date(2015, 6, 15)) .endDate(date(2015, 9, 15)) .yearFraction(0.25d) .fixedRate(0.25d) .floatingRate(IborRateComputation.of(GBP_LIBOR_3M, date(2015, 6, 12), REF_DATA)) .currency(GBP) .notional(NOTIONAL_1M) .discounting(ISDA) .build(); }
static ResolvedFra sut2() { return ResolvedFra.builder() .paymentDate(date(2015, 6, 17)) .startDate(date(2015, 6, 16)) .endDate(date(2015, 9, 16)) .yearFraction(0.26d) .fixedRate(0.27d) .floatingRate(IborRateComputation.of(GBP_LIBOR_2M, date(2015, 6, 12), REF_DATA)) .currency(USD) .notional(NOTIONAL_2M) .discounting(FraDiscountingMethod.NONE) .build(); }