/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(DaysAdjustment beanToCopy) { this.days = beanToCopy.getDays(); this.calendar = beanToCopy.getCalendar(); this.adjustment = beanToCopy.getAdjustment(); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 3076183: // days return ((DaysAdjustment) bean).getDays(); case -178324674: // calendar return ((DaysAdjustment) bean).getCalendar(); case 1977085293: // adjustment return ((DaysAdjustment) bean).getAdjustment(); } return super.propertyGet(bean, propertyName, quiet); }
public void test_NONE() { DaysAdjustment test = DaysAdjustment.NONE; assertEquals(test.getDays(), 0); assertEquals(test.getCalendar(), NO_HOLIDAYS); assertEquals(test.getAdjustment(), BDA_NONE); assertEquals(test.toString(), "0 calendar days"); }
public void test_ofCalendarDays2_fourDays() { DaysAdjustment test = DaysAdjustment.ofCalendarDays(4, BDA_FOLLOW_SAT_SUN); assertEquals(test.getDays(), 4); assertEquals(test.getCalendar(), NO_HOLIDAYS); assertEquals(test.getAdjustment(), BDA_FOLLOW_SAT_SUN); assertEquals(test.toString(), "4 calendar days then apply Following using calendar Sat/Sun"); }
public void test_ofCalendarDays1_threeDays() { DaysAdjustment test = DaysAdjustment.ofCalendarDays(3); assertEquals(test.getDays(), 3); assertEquals(test.getCalendar(), NO_HOLIDAYS); assertEquals(test.getAdjustment(), BDA_NONE); assertEquals(test.toString(), "3 calendar days"); }
public void test_ofBusinessDays3_fourDays() { DaysAdjustment test = DaysAdjustment.ofBusinessDays(4, SAT_SUN, BDA_FOLLOW_WED_THU); assertEquals(test.getDays(), 4); assertEquals(test.getCalendar(), SAT_SUN); assertEquals(test.getAdjustment(), BDA_FOLLOW_WED_THU); assertEquals(test.toString(), "4 business days using calendar Sat/Sun then apply Following using " + "calendar WedThu"); }
public void test_ofCalendarDays1_oneDay() { DaysAdjustment test = DaysAdjustment.ofCalendarDays(1); assertEquals(test.getDays(), 1); assertEquals(test.getCalendar(), NO_HOLIDAYS); assertEquals(test.getAdjustment(), BDA_NONE); assertEquals(test.toString(), "1 calendar day"); }
public void test_ofCalendarDays2_oneDay() { DaysAdjustment test = DaysAdjustment.ofCalendarDays(1, BDA_FOLLOW_SAT_SUN); assertEquals(test.getDays(), 1); assertEquals(test.getCalendar(), NO_HOLIDAYS); assertEquals(test.getAdjustment(), BDA_FOLLOW_SAT_SUN); assertEquals(test.toString(), "1 calendar day then apply Following using calendar Sat/Sun"); }
public void test_ofBusinessDays2_oneDay() { DaysAdjustment test = DaysAdjustment.ofBusinessDays(1, SAT_SUN); assertEquals(test.getDays(), 1); assertEquals(test.getCalendar(), SAT_SUN); assertEquals(test.getAdjustment(), BDA_NONE); assertEquals(test.toString(), "1 business day using calendar Sat/Sun"); }
public void test_ofBusinessDays2_threeDays() { DaysAdjustment test = DaysAdjustment.ofBusinessDays(3, SAT_SUN); assertEquals(test.getDays(), 3); assertEquals(test.getCalendar(), SAT_SUN); assertEquals(test.getAdjustment(), BDA_NONE); assertEquals(test.toString(), "3 business days using calendar Sat/Sun"); }
public void test_ofBusinessDays3_oneDay() { DaysAdjustment test = DaysAdjustment.ofBusinessDays(1, SAT_SUN, BDA_FOLLOW_WED_THU); assertEquals(test.getDays(), 1); assertEquals(test.getCalendar(), SAT_SUN); assertEquals(test.getAdjustment(), BDA_FOLLOW_WED_THU); assertEquals(test.toString(), "1 business day using calendar Sat/Sun then apply Following using " + "calendar WedThu"); }
public void coverage_builder() { DaysAdjustment test = DaysAdjustment.builder() .days(1) .calendar(SAT_SUN) .adjustment(BDA_FOLLOW_WED_THU) .build(); assertEquals(test.getDays(), 1); assertEquals(test.getCalendar(), SAT_SUN); assertEquals(test.getAdjustment(), BDA_FOLLOW_WED_THU); }
private void assertFra(List<Trade> trades, boolean interpolatedParty1) { assertEquals(trades.size(), 1); Trade trade = trades.get(0); assertEquals(trade.getClass(), FraTrade.class); FraTrade fraTrade = (FraTrade) trade; assertEquals(fraTrade.getInfo().getTradeDate(), Optional.of(date(1991, 5, 14))); StandardId party1id = StandardId.of("http://www.hsbc.com/swaps/trade-id", "MB87623"); StandardId party2id = StandardId.of("http://www.abnamro.com/swaps/trade-id", "AA9876"); assertEquals(fraTrade.getInfo().getId(), Optional.of(interpolatedParty1 ? party1id : party2id)); Fra fra = fraTrade.getProduct(); assertEquals(fra.getBuySell(), interpolatedParty1 ? BUY : SELL); assertEquals(fra.getStartDate(), date(1991, 7, 17)); assertEquals(fra.getEndDate(), date(1992, 1, 17)); assertEquals(fra.getBusinessDayAdjustment(), Optional.empty()); assertEquals(fra.getPaymentDate().getUnadjusted(), date(1991, 7, 17)); assertEquals(fra.getPaymentDate().getAdjustment(), BusinessDayAdjustment.of(FOLLOWING, CHZU)); assertEquals(fra.getFixingDateOffset().getDays(), -2); assertEquals(fra.getFixingDateOffset().getCalendar(), GBLO); assertEquals(fra.getFixingDateOffset().getAdjustment(), BusinessDayAdjustment.NONE); assertEquals(fra.getDayCount(), ACT_360); assertEquals(fra.getCurrency(), CHF); assertEquals(fra.getNotional(), 25000000d); assertEquals(fra.getFixedRate(), 0.04d); assertEquals(fra.getIndex(), interpolatedParty1 ? CHF_LIBOR_3M : CHF_LIBOR_6M); assertEquals(fra.getIndexInterpolated(), interpolatedParty1 ? Optional.of(CHF_LIBOR_6M) : Optional.empty()); assertEquals(fra.getDiscounting(), FraDiscountingMethod.ISDA); }
public void fra_noParty() { String location = "classpath:com/opengamma/strata/loader/fpml/ird-ex08-fra.xml"; ByteSource resource = ResourceLocator.of(location).getByteSource(); List<Trade> trades = FpmlDocumentParser.of(FpmlPartySelector.any()).parseTrades(resource); assertEquals(trades.size(), 1); Trade trade = trades.get(0); assertEquals(trade.getClass(), FraTrade.class); FraTrade fraTrade = (FraTrade) trade; assertEquals(fraTrade.getInfo().getTradeDate(), Optional.of(date(1991, 5, 14))); Fra fra = fraTrade.getProduct(); assertEquals(fra.getBuySell(), BUY); assertEquals(fra.getStartDate(), date(1991, 7, 17)); assertEquals(fra.getEndDate(), date(1992, 1, 17)); assertEquals(fra.getBusinessDayAdjustment(), Optional.empty()); assertEquals(fra.getPaymentDate().getUnadjusted(), date(1991, 7, 17)); assertEquals(fra.getPaymentDate().getAdjustment(), BusinessDayAdjustment.of(FOLLOWING, CHZU)); assertEquals(fra.getFixingDateOffset().getDays(), -2); assertEquals(fra.getFixingDateOffset().getCalendar(), GBLO); assertEquals(fra.getFixingDateOffset().getAdjustment(), BusinessDayAdjustment.NONE); assertEquals(fra.getDayCount(), ACT_360); assertEquals(fra.getCurrency(), CHF); assertEquals(fra.getNotional(), 25000000d); assertEquals(fra.getFixedRate(), 0.04d); assertEquals(fra.getIndex(), CHF_LIBOR_6M); assertEquals(fra.getIndexInterpolated(), Optional.empty()); assertEquals(fra.getDiscounting(), FraDiscountingMethod.ISDA); // check same when using a specific selector instead of FpmlPartySelector.any() List<Trade> trades2 = FpmlDocumentParser.of(allParties -> ImmutableList.of()).parseTrades(resource); assertEquals(trades2, trades); }
.startDate(startDate) .endDate(endDate) .paymentDate(AdjustableDate.of(paymentDate, getPaymentDateOffset().getAdjustment())) .fixedRate(fixedRate) .index(index)
public void test_createTrade_paymentOffset() { FraConvention convention = ((ImmutableFraConvention) FRA_GBP_LIBOR_3M).toBuilder() .paymentDateOffset(PLUS_TWO_DAYS) .build(); FraTemplate base = FraTemplate.of(Period.ofMonths(3), Period.ofMonths(6), convention); LocalDate tradeDate = LocalDate.of(2015, 5, 4); // trade date is a holiday! FraTrade test = base.createTrade(tradeDate, BUY, NOTIONAL_2M, 0.25d, REF_DATA); Fra expected = Fra.builder() .buySell(BUY) .notional(NOTIONAL_2M) .startDate(date(2015, 8, 5)) .endDate(date(2015, 11, 5)) .paymentDate(AdjustableDate.of(date(2015, 8, 7), PLUS_TWO_DAYS.getAdjustment())) .fixedRate(0.25d) .index(GBP_LIBOR_3M) .build(); assertEquals(test.getInfo().getTradeDate(), Optional.of(tradeDate)); assertEquals(test.getProduct(), expected); }
public void test_createTrade_periods_adjust_payOffset() { FraConvention base = ImmutableFraConvention.builder() .index(GBP_LIBOR_3M) .spotDateOffset(NEXT_SAME_BUS_DAY) .paymentDateOffset(PLUS_TWO_DAYS) .build(); LocalDate tradeDate = LocalDate.of(2016, 8, 11); FraTrade test = base.createTrade(tradeDate, Period.ofMonths(1), Period.ofMonths(4), BUY, NOTIONAL_2M, 0.25d, REF_DATA); Fra expected = Fra.builder() .buySell(BUY) .notional(NOTIONAL_2M) .startDate(date(2016, 9, 12)) .endDate(date(2016, 12, 12)) .paymentDate(AdjustableDate.of(date(2016, 9, 14), PLUS_TWO_DAYS.getAdjustment())) .fixedRate(0.25d) .index(GBP_LIBOR_3M) .build(); assertEquals(test.getInfo().getTradeDate(), Optional.of(tradeDate)); assertEquals(test.getProduct(), expected); }
public void test_toTrade_dates_paymentOffset() { FraConvention base = ImmutableFraConvention.builder() .index(GBP_LIBOR_3M) .spotDateOffset(NEXT_SAME_BUS_DAY) .paymentDateOffset(PLUS_TWO_DAYS) .build(); LocalDate tradeDate = LocalDate.of(2015, 5, 5); LocalDate startDate = date(2015, 8, 5); LocalDate endDate = date(2015, 11, 5); LocalDate paymentDate = date(2015, 8, 7); FraTrade test = base.toTrade(tradeDate, startDate, endDate, paymentDate, BUY, NOTIONAL_2M, 0.25d); Fra expected = Fra.builder() .buySell(BUY) .notional(NOTIONAL_2M) .startDate(date(2015, 8, 5)) .endDate(date(2015, 11, 5)) .paymentDate(AdjustableDate.of(paymentDate, PLUS_TWO_DAYS.getAdjustment())) .fixedRate(0.25d) .index(GBP_LIBOR_3M) .build(); assertEquals(test.getInfo().getTradeDate(), Optional.of(tradeDate)); assertEquals(test.getProduct(), expected); }
private static IborIndex lockIndexCalendar(IborIndex index) { return ((ImmutableIborIndex) index).toBuilder() .fixingCalendar(CalendarUSD.NYC) .effectiveDateOffset(index.getEffectiveDateOffset().toBuilder() .calendar(CalendarUSD.NYC) .adjustment(index.getEffectiveDateOffset().getAdjustment().toBuilder() .calendar(CalendarUSD.NYC) .build()) .build()) .maturityDateOffset(index.getMaturityDateOffset().toBuilder() .adjustment(index.getMaturityDateOffset().getAdjustment().toBuilder() .calendar(CalendarUSD.NYC) .build()) .build()) .build(); }