public void test_yearFraction() { SchedulePeriod test = SchedulePeriod.of(JUN_16, JUL_18, JUN_16, JUL_17); Schedule schedule = Schedule.ofTerm(test); assertEquals( test.yearFraction(DayCounts.ACT_360, schedule), DayCounts.ACT_360.yearFraction(JUN_16, JUL_18, schedule), TOLERANCE); }
public void test_mergeToTerm() { Schedule testNormal = Schedule.builder() .periods(ImmutableList.of(P1_STUB, P2_NORMAL, P3_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(testNormal.mergeToTerm(), Schedule.ofTerm(P1_3)); assertEquals(testNormal.mergeToTerm().mergeToTerm(), Schedule.ofTerm(P1_3)); }
public void test_merge_termNoChange() { Schedule test = Schedule.ofTerm(P1_STUB); assertEquals(test.mergeRegular(2, true), test); assertEquals(test.mergeRegular(2, false), test); assertEquals(test.merge(2, P1_STUB.getUnadjustedStartDate(), P1_STUB.getUnadjustedEndDate()), test); assertEquals(test.merge(2, P1_STUB.getStartDate(), P1_STUB.getEndDate()), test); }
public void test_mergeToTerm_size1_stub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P1_STUB)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeToTerm(), Schedule.ofTerm(P1_STUB)); }
public void test_ofTerm() { Schedule test = Schedule.ofTerm(P1_STUB); assertEquals(test.size(), 1); assertEquals(test.isTerm(), true); assertEquals(test.isSinglePeriod(), true); assertEquals(test.getFrequency(), TERM); assertEquals(test.getRollConvention(), RollConventions.NONE); assertEquals(test.isEndOfMonthConvention(), false); assertEquals(test.getPeriods(), ImmutableList.of(P1_STUB)); assertEquals(test.getPeriod(0), P1_STUB); assertEquals(test.getStartDate(), P1_STUB.getStartDate()); assertEquals(test.getEndDate(), P1_STUB.getEndDate()); assertEquals(test.getUnadjustedStartDate(), P1_STUB.getUnadjustedStartDate()); assertEquals(test.getUnadjustedEndDate(), P1_STUB.getUnadjustedEndDate()); assertEquals(test.getFirstPeriod(), P1_STUB); assertEquals(test.getLastPeriod(), P1_STUB); assertEquals(test.getInitialStub(), Optional.empty()); assertEquals(test.getFinalStub(), Optional.empty()); assertEquals(test.getRegularPeriods(), ImmutableList.of(P1_STUB)); assertThrows(() -> test.getPeriod(1), IndexOutOfBoundsException.class); assertEquals(test.getUnadjustedDates(), ImmutableList.of(JUL_04, JUL_17)); }
/** * Merges this schedule to form a new schedule with a single 'Term' period. * <p> * The result will have one period of type 'Term', with dates matching this schedule. * * @return the merged 'Term' schedule */ public Schedule mergeToTerm() { if (isTerm()) { return this; } SchedulePeriod first = getFirstPeriod(); SchedulePeriod last = getLastPeriod(); return Schedule.ofTerm(SchedulePeriod.of( first.getStartDate(), last.getEndDate(), first.getUnadjustedStartDate(), last.getUnadjustedEndDate())); }
public void test_yearFraction_null() { SchedulePeriod test = SchedulePeriod.of(JUN_16, JUL_18, JUN_16, JUL_17); Schedule schedule = Schedule.ofTerm(test); assertThrowsIllegalArg(() -> test.yearFraction(null, schedule)); assertThrowsIllegalArg(() -> test.yearFraction(DayCounts.ACT_360, null)); assertThrowsIllegalArg(() -> test.yearFraction(null, null)); }