/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(IborFixingDepositTemplate beanToCopy) { this.depositPeriod = beanToCopy.getDepositPeriod(); this.convention = beanToCopy.getConvention(); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 14649855: // depositPeriod return ((IborFixingDepositTemplate) bean).getDepositPeriod(); case 2039569265: // convention return ((IborFixingDepositTemplate) bean).getConvention(); } return super.propertyGet(bean, propertyName, quiet); }
public void test_of_index() { IborFixingDepositTemplate test = IborFixingDepositTemplate.of(EUR_LIBOR_3M); assertEquals(test.getConvention(), CONVENTION); assertEquals(test.getDepositPeriod(), EUR_LIBOR_3M.getTenor().getPeriod()); }
public void test_of_periodAndIndex() { IborFixingDepositTemplate test = IborFixingDepositTemplate.of(Period.ofMonths(1), EUR_LIBOR_3M); assertEquals(test.getConvention(), CONVENTION); assertEquals(test.getDepositPeriod(), Period.ofMonths(1)); }
public void test_builder_noPeriod() { IborFixingDepositTemplate test = IborFixingDepositTemplate.builder() .convention(CONVENTION) .build(); assertEquals(test.getConvention(), CONVENTION); assertEquals(test.getDepositPeriod(), EUR_LIBOR_3M.getTenor().getPeriod()); }
public void test_builder() { IborFixingDepositTemplate test = IborFixingDepositTemplate.builder() .convention(CONVENTION) .depositPeriod(Period.ofMonths(1)) .build(); assertEquals(test.getConvention(), CONVENTION); assertEquals(test.getDepositPeriod(), Period.ofMonths(1)); }
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); }