public void test_combinedWithSelf() { HolidayCalendarId gb = HolidayCalendarId.of("GB"); assertEquals(gb.combinedWith(gb), gb); assertEquals(gb.combinedWith(NO_HOLIDAYS), gb); assertEquals(NO_HOLIDAYS.combinedWith(gb), gb); assertEquals(NO_HOLIDAYS.combinedWith(NO_HOLIDAYS), NO_HOLIDAYS); }
@Override public HolidayCalendarId getId() { return calendar1.getId().combinedWith(calendar2.getId()); }
public void test_combinedWith() { HolidayCalendarId gb = HolidayCalendarId.of("GB"); HolidayCalendarId eu = HolidayCalendarId.of("EU"); HolidayCalendarId us = HolidayCalendarId.of("US"); HolidayCalendarId combined1 = eu.combinedWith(us).combinedWith(gb); HolidayCalendarId combined2 = us.combinedWith(eu).combinedWith(gb.combinedWith(us)); assertEquals(combined1.getName(), "EU+GB+US"); assertEquals(combined1.toString(), "EU+GB+US"); assertEquals(combined2.getName(), "EU+GB+US"); assertEquals(combined2.toString(), "EU+GB+US"); assertEquals(combined1.equals(combined2), true); }
/** * Converts an FpML 'BusinessCentersOrReference.model' to a {@code HolidayCalendar}. * * @param baseEl the FpML business centers or reference element to parse * @return the holiday calendar * @throws RuntimeException if unable to parse */ public HolidayCalendarId parseBusinessCenters(XmlElement baseEl) { // FpML content: ('businessCentersReference' | 'businessCenters') // FpML 'businessCenters' content: ('businessCenter+') // Each 'businessCenter' is a location treated as a holiday calendar Optional<XmlElement> optionalBusinessCentersEl = baseEl.findChild("businessCenters"); XmlElement businessCentersEl = optionalBusinessCentersEl.orElseGet(() -> lookupReference(baseEl.getChild("businessCentersReference"))); HolidayCalendarId calendar = HolidayCalendarIds.NO_HOLIDAYS; for (XmlElement businessCenterEl : businessCentersEl.getChildren("businessCenter")) { calendar = calendar.combinedWith(parseBusinessCenter(businessCenterEl)); } return calendar; }
return ArgChecker.notNull(cal1, "cal1"); HolidayCalendarId newId = cal1.id.combinedWith(cal2.id);
public void test_combined() { ImmutableHolidayCalendar base1 = ImmutableHolidayCalendar.of(TEST_ID, ImmutableList.of(MON_2014_07_14), SATURDAY, SUNDAY); ImmutableHolidayCalendar base2 = ImmutableHolidayCalendar.of(TEST_ID2, ImmutableList.of(WED_2014_07_16), FRIDAY, SATURDAY); ImmutableHolidayCalendar test = ImmutableHolidayCalendar.combined(base1, base2); assertEquals(test.getId(), base1.getId().combinedWith(base2.getId())); assertEquals(test.getName(), base1.getId().combinedWith(base2.getId()).getName()); assertEquals(test.getHolidays(), ImmutableList.of(MON_2014_07_14, WED_2014_07_16)); assertEquals(test.getWeekendDays(), ImmutableSet.of(FRIDAY, SATURDAY, SUNDAY)); }
public void test_resolve_combined_indirect() { HolidayCalendarId gb = HolidayCalendarId.of("GB"); HolidayCalendar gbCal = HolidayCalendars.SAT_SUN; HolidayCalendarId eu = HolidayCalendarId.of("EU"); HolidayCalendar euCal = HolidayCalendars.FRI_SAT; HolidayCalendarId combined = gb.combinedWith(eu); HolidayCalendar combinedCal = euCal.combinedWith(gbCal); ReferenceData refData = ImmutableReferenceData.of(ImmutableMap.of(gb, gbCal, eu, euCal)); assertEquals(combined.resolve(refData), combinedCal); assertEquals(refData.getValue(combined), combinedCal); }
public void test_resolve_combined_direct() { HolidayCalendarId gb = HolidayCalendarId.of("GB"); HolidayCalendar gbCal = HolidayCalendars.SAT_SUN; HolidayCalendarId eu = HolidayCalendarId.of("EU"); HolidayCalendar euCal = HolidayCalendars.FRI_SAT; HolidayCalendarId combined = gb.combinedWith(eu); HolidayCalendar combinedCal = euCal.combinedWith(gbCal); ReferenceData refData = ImmutableReferenceData.of(ImmutableMap.of(combined, combinedCal)); assertEquals(combined.resolve(refData), combinedCal); assertEquals(refData.getValue(combined), combinedCal); }
@ImmutablePreBuild private static void preBuild(Builder builder) { if (builder.fixingDateOffset == null && builder.fixingCalendar != null && builder.maturityDateOffset != null) { int days = builder.maturityDateOffset.getDays(); HolidayCalendarId maturityCal = builder.maturityDateOffset.getCalendar(); if (maturityCal.combinedWith(builder.fixingCalendar).equals(maturityCal)) { builder.fixingDateOffset = DaysAdjustment.ofBusinessDays(-days, maturityCal); } else { builder.fixingDateOffset = DaysAdjustment.ofBusinessDays( -days, maturityCal, BusinessDayAdjustment.of(BusinessDayConventions.PRECEDING, builder.fixingCalendar)); } } }
public void test_usdLibor3m() { IborIndex test = IborIndex.of("USD-LIBOR-3M"); assertEquals(test.getCurrency(), USD); assertEquals(test.getName(), "USD-LIBOR-3M"); assertEquals(test.getTenor(), TENOR_3M); assertEquals(test.getFixingCalendar(), GBLO); assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-2, GBLO)); assertEquals(test.getEffectiveDateOffset(), DaysAdjustment.ofBusinessDays(2, GBLO, BusinessDayAdjustment.of(FOLLOWING, GBLO.combinedWith(USNY)))); assertEquals(test.getMaturityDateOffset(), TenorAdjustment.ofLastBusinessDay(TENOR_3M, BusinessDayAdjustment.of(MODIFIED_FOLLOWING, GBLO.combinedWith(USNY)))); assertEquals(test.getDayCount(), ACT_360); assertEquals(test.getDefaultFixedLegDayCount(), ACT_360); assertEquals(test.getFloatingRateName(), FloatingRateName.of("USD-LIBOR")); assertEquals(test.toString(), "USD-LIBOR-3M"); }
public void test_load_fx_swaps_fullFormat() throws Exception { TradeCsvLoader standard = TradeCsvLoader.standard(); ResourceLocator locator = ResourceLocator.of("classpath:com/opengamma/strata/loader/csv/fxtrades2.csv"); ImmutableList<CharSource> charSources = ImmutableList.of(locator.getCharSource()); ValueWithFailures<List<FxSwapTrade>> loadedData = standard.parse(charSources, FxSwapTrade.class); assertEquals(loadedData.getFailures().size(), 0, loadedData.getFailures().toString()); List<FxSwapTrade> loadedTrades = loadedData.getValue(); assertEquals(loadedTrades.size(), 1); FxSingle near1 = FxSingle.of( Payment.of(EUR, 1920000, LocalDate.parse("2018-01-29")), Payment.of(CZK, -12256000, LocalDate.parse("2018-01-30")), BusinessDayAdjustment.of(MODIFIED_FOLLOWING, EUTA.combinedWith(CZPR))); FxSingle far1 = FxSingle.of( Payment.of(EUR, -1920000, LocalDate.parse("2018-04-29")), Payment.of(CZK, 12258000, LocalDate.parse("2018-04-30")), BusinessDayAdjustment.of(MODIFIED_FOLLOWING, EUTA.combinedWith(CZPR))); FxSwapTrade expectedTrade1 = FxSwapTrade.builder() .info(TradeInfo.builder() .tradeDate(LocalDate.parse("2017-01-25")) .id(StandardId.of("OG", "tradeId9")) .build()) .product(FxSwap.of(near1, far1)) .build(); assertBeanEquals(loadedTrades.get(0), expectedTrade1); }
public void test_ecb_eur_gbp_dates() { FxIndex test = FxIndices.EUR_GBP_ECB; assertEquals(test.getFixingDateOffset(), DaysAdjustment.ofBusinessDays(-2, EUTA.combinedWith(GBLO))); assertEquals(test.getMaturityDateOffset(), DaysAdjustment.ofBusinessDays(2, EUTA.combinedWith(GBLO))); assertEquals(test.calculateMaturityFromFixing(date(2014, 10, 13), REF_DATA), date(2014, 10, 15)); assertEquals(test.calculateFixingFromMaturity(date(2014, 10, 15), REF_DATA), date(2014, 10, 13)); // weekend assertEquals(test.calculateMaturityFromFixing(date(2014, 10, 16), REF_DATA), date(2014, 10, 20)); assertEquals(test.calculateFixingFromMaturity(date(2014, 10, 20), REF_DATA), date(2014, 10, 16)); assertEquals(test.calculateMaturityFromFixing(date(2014, 10, 17), REF_DATA), date(2014, 10, 21)); assertEquals(test.calculateFixingFromMaturity(date(2014, 10, 21), REF_DATA), date(2014, 10, 17)); // input date is Sunday assertEquals(test.calculateMaturityFromFixing(date(2014, 10, 19), REF_DATA), date(2014, 10, 22)); assertEquals(test.calculateFixingFromMaturity(date(2014, 10, 19), REF_DATA), date(2014, 10, 16)); // skip maturity over EUR (1st May) and GBP (5th May) holiday assertEquals(test.calculateMaturityFromFixing(date(2014, 4, 30), REF_DATA), date(2014, 5, 6)); assertEquals(test.calculateFixingFromMaturity(date(2014, 5, 6), REF_DATA), date(2014, 4, 30)); // resolve assertEquals(test.resolve(REF_DATA).apply(date(2014, 5, 6)), FxIndexObservation.of(test, date(2014, 5, 6), REF_DATA)); }
CurrencyAmount.of(Currency.CZK, 12448000), LocalDate.parse("2018-01-29"), BusinessDayAdjustment.of(BusinessDayConventions.FOLLOWING, EUTA.combinedWith(CZPR)))) .build(); assertEquals(loadedTrades.get(2), expectedTrade3); Payment.of(Currency.EUR, 1920000, LocalDate.parse("2018-01-29")), Payment.of(Currency.CZK, -12256000, LocalDate.parse("2018-01-30")), BusinessDayAdjustment.of(BusinessDayConventions.MODIFIED_FOLLOWING, EUTA.combinedWith(CZPR)))) .build(); assertEquals(loadedTrades.get(4), expectedTrade5);