public void test_of_index() { ImmutableFraConvention test = ImmutableFraConvention.of(GBP_LIBOR_3M); assertEquals(test.getIndex(), GBP_LIBOR_3M); assertEquals(test.getName(), GBP_LIBOR_3M.getName()); assertEquals(test.getCurrency(), GBP); assertEquals(test.getSpotDateOffset(), GBP_LIBOR_3M.getEffectiveDateOffset()); assertEquals(test.getBusinessDayAdjustment(), BDA_MOD_FOLLOW); assertEquals(test.getPaymentDateOffset(), DaysAdjustment.NONE); assertEquals(test.getFixingDateOffset(), GBP_LIBOR_3M.getFixingDateOffset()); assertEquals(test.getDayCount(), ACT_365F); assertEquals(test.getDiscounting(), ISDA); // ensure other factories match assertEquals(FraConvention.of(GBP_LIBOR_3M), test); assertEquals(FraConventions.of(GBP_LIBOR_3M), test); }
public void test_builder_minSpecified() { ImmutableFraConvention test = ImmutableFraConvention.builder() .index(GBP_LIBOR_3M) .build(); assertEquals(test.getName(), GBP_LIBOR_3M.getName()); assertEquals(test.getIndex(), GBP_LIBOR_3M); assertEquals(test.getCurrency(), GBP); assertEquals(test.getSpotDateOffset(), GBP_LIBOR_3M.getEffectiveDateOffset()); assertEquals(test.getBusinessDayAdjustment(), BDA_MOD_FOLLOW); assertEquals(test.getPaymentDateOffset(), DaysAdjustment.NONE); assertEquals(test.getFixingDateOffset(), GBP_LIBOR_3M.getFixingDateOffset()); assertEquals(test.getDayCount(), GBP_LIBOR_3M.getDayCount()); assertEquals(test.getDiscounting(), ISDA); }
@Override public FraTrade createTrade( LocalDate tradeDate, Period periodToStart, Period periodToEnd, BuySell buySell, double notional, double fixedRate, ReferenceData refData) { LocalDate spotValue = calculateSpotDateFromTradeDate(tradeDate, refData); LocalDate startDate = spotValue.plus(periodToStart); LocalDate endDate = spotValue.plus(periodToEnd); DateAdjuster bda = getBusinessDayAdjustment().resolve(refData); // start/end dates are adjusted when FRA trade is created and not adjusted later // payment date is adjusted when FRA trade is created and potentially adjusted again when resolving LocalDate adjustedStart = bda.adjust(startDate); LocalDate adjustedEnd = bda.adjust(endDate); LocalDate adjustedPay = getPaymentDateOffset().adjust(adjustedStart, refData); return toTrade(tradeDate, adjustedStart, adjustedEnd, adjustedPay, buySell, notional, fixedRate); }
public void test_builder_allSpecified() { ImmutableFraConvention test = ImmutableFraConvention.builder() .name(GBP_LIBOR_3M.getName()) .index(GBP_LIBOR_3M) .currency(GBP) .spotDateOffset(PLUS_ONE_DAY) .businessDayAdjustment(BDA_FOLLOW) .paymentDateOffset(PLUS_TWO_DAYS) .fixingDateOffset(MINUS_FIVE_DAYS) .dayCount(ACT_360) .discounting(FraDiscountingMethod.NONE) .build(); assertEquals(test.getName(), GBP_LIBOR_3M.getName()); assertEquals(test.getIndex(), GBP_LIBOR_3M); assertEquals(test.getCurrency(), GBP); assertEquals(test.getSpotDateOffset(), PLUS_ONE_DAY); assertEquals(test.getBusinessDayAdjustment(), BDA_FOLLOW); assertEquals(test.getPaymentDateOffset(), PLUS_TWO_DAYS); assertEquals(test.getFixingDateOffset(), MINUS_FIVE_DAYS); assertEquals(test.getDayCount(), ACT_360); assertEquals(test.getDiscounting(), FraDiscountingMethod.NONE); }
.startDate(startDate) .endDate(endDate) .paymentDate(AdjustableDate.of(paymentDate, getPaymentDateOffset().getAdjustment())) .fixedRate(fixedRate) .index(index)