private Object readResolve() { return DayCount.of(name); }
@Test(dataProvider = "name") public void test_of_lookup(DayCount convention, String name) { assertEquals(DayCount.of(name), convention); }
public void test_factory_calendar() { DayCount test = DayCount.ofBus252(GBLO); assertEquals(test.getName(), "Bus/252 GBLO"); assertEquals(test.toString(), "Bus/252 GBLO"); assertSame(DayCount.of("Bus/252 GBLO"), test); assertSame(DayCount.ofBus252(GBLO), test); }
public void test_equalsHashCode() { DayCount a = DayCount.of("Bus/252 EUTA"); DayCount b = DayCount.of("Bus/252 GBLO"); assertEquals(a.equals(a), true); assertEquals(a.equals(b), false); assertEquals(a.equals(ANOTHER_TYPE), false); assertEquals(a.equals(null), false); assertEquals(a.hashCode(), a.hashCode()); }
public void test_of_lookup_notFound() { assertThrowsIllegalArg(() -> DayCount.of("Rubbish")); }
public void test_of_lookup_null() { assertThrowsRuntime(() -> DayCount.of(null)); }
private static OvernightIndex parseOvernightIndex(CsvRow row) { String name = row.getValue(NAME_FIELD); Currency currency = Currency.parse(row.getValue(CURRENCY_FIELD)); boolean active = Boolean.parseBoolean(row.getValue(ACTIVE_FIELD)); DayCount dayCount = DayCount.of(row.getValue(DAY_COUNT_FIELD)); HolidayCalendarId fixingCal = HolidayCalendarId.of(row.getValue(FIXING_CALENDAR_FIELD)); int publicationDays = Integer.parseInt(row.getValue(PUBLICATION_DAYS_FIELD)); int effectiveDays = Integer.parseInt(row.getValue(EFFECTIVE_DAYS_FIELD)); DayCount fixedLegDayCount = DayCount.of(row.getValue(FIXED_LEG_DAY_COUNT)); // build result return ImmutableOvernightIndex.builder() .name(name) .currency(currency) .active(active) .dayCount(dayCount) .fixingCalendar(fixingCal) .publicationDateOffset(publicationDays) .effectiveDateOffset(effectiveDays) .defaultFixedLegDayCount(fixedLegDayCount) .build(); }
public void test_days() { DayCount test = DayCount.of("Bus/252 EUTA"); LocalDate date1 = date(2014, 12, 1); LocalDate date2 = date(2014, 12, 1); for (int i = 0; i < 366; i++) { assertEquals(test.days(date1, date2), EUTA.resolve(REF_DATA).daysBetween(date1, date2)); date2 = date2.plusDays(1); } }
public void test_yearFraction_badOrder() { DayCount test = DayCount.of("Bus/252 EUTA"); LocalDate date1 = date(2014, 12, 2); LocalDate date2 = date(2014, 12, 1); assertThrowsIllegalArg(() -> test.yearFraction(date1, date2)); }
public void test_yearFraction() { DayCount test = DayCount.of("Bus/252 EUTA"); LocalDate date1 = date(2014, 12, 1); LocalDate date2 = date(2014, 12, 1); for (int i = 0; i < 366; i++) { assertEquals(test.yearFraction(date1, date2), EUTA.resolve(REF_DATA).daysBetween(date1, date2) / 252d); date2 = date2.plusDays(1); } }
Currency currency = Currency.parse(row.getValue(CURRENCY_FIELD)); boolean active = Boolean.parseBoolean(row.getValue(ACTIVE_FIELD)); DayCount dayCount = DayCount.of(row.getValue(DAY_COUNT_FIELD)); HolidayCalendarId fixingCal = HolidayCalendarId.of(row.getValue(FIXING_CALENDAR_FIELD)); int offsetDays = Integer.parseInt(row.getValue(OFFSET_DAYS_FIELD)); LocalTime time = LocalTime.parse(row.getValue(FIXING_TIME_FIELD), TIME_FORMAT); ZoneId zoneId = ZoneId.of(row.getValue(FIXING_ZONE_FIELD)); DayCount fixedLegDayCount = DayCount.of(row.getValue(FIXED_LEG_DAY_COUNT));
public void test_rateParameterSensitivity() { LocalDate[] valuationDate = {date(2015, 1, 1), date(2015, 1, 8)}; DoubleArray time_usd = DoubleArray.of(0.0, 0.5, 1.0, 2.0, 5.0, 10.0); DoubleArray rate_usd = DoubleArray.of(0.0100, 0.0110, 0.0115, 0.0130, 0.0135, 0.0135); OvernightCompoundedAnnualRateComputation ro = OvernightCompoundedAnnualRateComputation.of(BRL_CDI, FIXING_START_DATE, FIXING_END_DATE, REF_DATA); for (int loopvaldate = 0; loopvaldate < 2; loopvaldate++) { Curve brlCDICurve = InterpolatedNodalCurve.of( Curves.zeroRates("BRL-CDI", DayCount.of("BUS/252 BRBD")), time_usd, rate_usd, INTERPOLATOR); ImmutableRatesProvider prov = ImmutableRatesProvider.builder(valuationDate[loopvaldate]) .overnightIndexCurve(BRL_CDI, brlCDICurve, TIME_SERIES) .build(); PointSensitivityBuilder sensitivityBuilderComputed = OBS_BRL_FWD_ONCMP.rateSensitivity(ro, DUMMY_ACCRUAL_START_DATE, DUMMY_ACCRUAL_END_DATE, prov); CurrencyParameterSensitivities parameterSensitivityComputed = prov.parameterSensitivity(sensitivityBuilderComputed.build()); CurrencyParameterSensitivities parameterSensitivityExpected = CAL_FD.sensitivity(prov, (p) -> CurrencyAmount.of(BRL_CDI.getCurrency(), OBS_BRL_FWD_ONCMP.rate(ro, DUMMY_ACCRUAL_START_DATE, DUMMY_ACCRUAL_END_DATE, (p)))); assertTrue(parameterSensitivityComputed.equalWithTolerance(parameterSensitivityExpected, EPS_FD * 10.0)); } }