public void test_of_indexOnly() { ImmutableIborFixingDepositConvention test = ImmutableIborFixingDepositConvention.of(GBP_LIBOR_6M); assertEquals(test.getBusinessDayAdjustment(), BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBP_LIBOR_6M.getFixingCalendar())); assertEquals(test.getCurrency(), GBP_LIBOR_6M.getCurrency()); assertEquals(test.getDayCount(), GBP_LIBOR_6M.getDayCount()); assertEquals(test.getFixingDateOffset(), GBP_LIBOR_6M.getFixingDateOffset()); assertEquals(test.getIndex(), GBP_LIBOR_6M); assertEquals(test.getSpotDateOffset(), GBP_LIBOR_6M.getEffectiveDateOffset()); }
public void test_builder_indexOnly() { ImmutableIborFixingDepositConvention test = ImmutableIborFixingDepositConvention.builder() .index(GBP_LIBOR_6M) .build(); assertEquals(test.getBusinessDayAdjustment(), BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBP_LIBOR_6M.getFixingCalendar())); assertEquals(test.getCurrency(), GBP_LIBOR_6M.getCurrency()); assertEquals(test.getDayCount(), GBP_LIBOR_6M.getDayCount()); assertEquals(test.getFixingDateOffset(), GBP_LIBOR_6M.getFixingDateOffset()); assertEquals(test.getIndex(), GBP_LIBOR_6M); assertEquals(test.getSpotDateOffset(), GBP_LIBOR_6M.getEffectiveDateOffset()); }
public void test_builder_full() { ImmutableIborFixingDepositConvention test = ImmutableIborFixingDepositConvention.builder() .name("Name") .businessDayAdjustment(BDA_MOD_FOLLOW) .currency(EUR) .dayCount(ACT_365F) .fixingDateOffset(FIXING_ADJ) .index(EUR_LIBOR_3M) .spotDateOffset(SPOT_ADJ) .build(); assertEquals(test.getName(), "Name"); assertEquals(test.getBusinessDayAdjustment(), BDA_MOD_FOLLOW); assertEquals(test.getCurrency(), EUR); assertEquals(test.getDayCount(), ACT_365F); assertEquals(test.getFixingDateOffset(), FIXING_ADJ); assertEquals(test.getIndex(), EUR_LIBOR_3M); assertEquals(test.getSpotDateOffset(), SPOT_ADJ); }
public void test_createTrade() { IborFixingDepositTemplate template = IborFixingDepositTemplate.of(EUR_LIBOR_3M); double notional = 1d; double fixedRate = 0.045; LocalDate tradeDate = LocalDate.of(2015, 1, 22); IborFixingDepositTrade trade = template.createTrade(tradeDate, BUY, notional, fixedRate, REF_DATA); ImmutableIborFixingDepositConvention conv = (ImmutableIborFixingDepositConvention) template.getConvention(); LocalDate startExpected = conv.getSpotDateOffset().adjust(tradeDate, REF_DATA); LocalDate endExpected = startExpected.plus(template.getDepositPeriod()); IborFixingDeposit productExpected = IborFixingDeposit.builder() .businessDayAdjustment(conv.getBusinessDayAdjustment()) .buySell(BUY) .startDate(startExpected) .endDate(endExpected) .fixedRate(fixedRate) .index(EUR_LIBOR_3M) .notional(notional) .build(); TradeInfo tradeInfoExpected = TradeInfo.builder() .tradeDate(tradeDate) .build(); assertEquals(trade.getInfo(), tradeInfoExpected); assertEquals(trade.getProduct(), productExpected); }
public void test_trade() { IborFixingDepositCurveNode node = IborFixingDepositCurveNode.of(TEMPLATE, QUOTE_ID, SPREAD); LocalDate valuationDate = LocalDate.of(2015, 1, 22); double rate = 0.035; MarketData marketData = ImmutableMarketData.builder(valuationDate).addValue(QUOTE_ID, rate).build(); IborFixingDepositTrade trade = node.trade(1d, marketData, REF_DATA); ImmutableIborFixingDepositConvention conv = (ImmutableIborFixingDepositConvention) TEMPLATE.getConvention(); LocalDate startDateExpected = conv.getSpotDateOffset().adjust(valuationDate, REF_DATA); LocalDate endDateExpected = startDateExpected.plus(TEMPLATE.getDepositPeriod()); IborFixingDeposit depositExpected = IborFixingDeposit.builder() .buySell(BuySell.BUY) .index(EUR_LIBOR_3M) .startDate(startDateExpected) .endDate(endDateExpected) .businessDayAdjustment(BusinessDayAdjustment.of(MODIFIED_FOLLOWING, EUR_LIBOR_3M.getFixingCalendar())) .notional(1.0d) .fixedRate(rate + SPREAD) .build(); TradeInfo tradeInfoExpected = TradeInfo.builder() .tradeDate(valuationDate) .build(); assertEquals(trade.getProduct(), depositExpected); assertEquals(trade.getInfo(), tradeInfoExpected); }