/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(Schedule beanToCopy) { this.periods = beanToCopy.getPeriods(); this.frequency = beanToCopy.getFrequency(); this.rollConvention = beanToCopy.getRollConvention(); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case -678739246: // periods return ((Schedule) bean).getPeriods(); case -70023844: // frequency return ((Schedule) bean).getFrequency(); case -10223666: // rollConvention return ((Schedule) bean).getRollConvention(); } return super.propertyGet(bean, propertyName, quiet); }
public void test_subSchedule_1monthIn3Month() { SchedulePeriod test = SchedulePeriod.of(JUN_17, SEP_17); Schedule schedule = test.subSchedule(P1M, RollConventions.DAY_17, StubConvention.NONE, BusinessDayAdjustment.NONE) .createSchedule(REF_DATA); assertEquals(schedule.size(), 3); assertEquals(schedule.getPeriod(0), SchedulePeriod.of(JUN_17, JUL_17)); assertEquals(schedule.getPeriod(1), SchedulePeriod.of(JUL_17, AUG_17)); assertEquals(schedule.getPeriod(2), SchedulePeriod.of(AUG_17, SEP_17)); assertEquals(schedule.getFrequency(), P1M); assertEquals(schedule.getRollConvention(), RollConventions.DAY_17); }
public void test_subSchedule_2monthIn3Month_shortFinal() { SchedulePeriod test = SchedulePeriod.of(JUN_17, SEP_17); Schedule schedule = test.subSchedule(P2M, RollConventions.DAY_17, StubConvention.SHORT_FINAL, BusinessDayAdjustment.NONE) .createSchedule(REF_DATA); assertEquals(schedule.size(), 2); assertEquals(schedule.getPeriod(0), SchedulePeriod.of(JUN_17, AUG_17)); assertEquals(schedule.getPeriod(1), SchedulePeriod.of(AUG_17, SEP_17)); assertEquals(schedule.getFrequency(), P2M); assertEquals(schedule.getRollConvention(), RollConventions.DAY_17); }
public void test_subSchedule_2monthIn3Month_shortInitial() { SchedulePeriod test = SchedulePeriod.of(JUN_17, SEP_17); Schedule schedule = test.subSchedule(P2M, RollConventions.DAY_17, StubConvention.SHORT_INITIAL, BusinessDayAdjustment.NONE) .createSchedule(REF_DATA); assertEquals(schedule.size(), 2); assertEquals(schedule.getPeriod(0), SchedulePeriod.of(JUN_17, JUL_17)); assertEquals(schedule.getPeriod(1), SchedulePeriod.of(JUL_17, SEP_17)); assertEquals(schedule.getFrequency(), P2M); assertEquals(schedule.getRollConvention(), RollConventions.DAY_17); }
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)); }
public void test_of_size2_initialStub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P1_STUB, P2_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(test.size(), 2); assertEquals(test.isTerm(), false); assertEquals(test.isSinglePeriod(), false); assertEquals(test.getFrequency(), P1M); assertEquals(test.getRollConvention(), DAY_17); assertEquals(test.isEndOfMonthConvention(), false); assertEquals(test.getPeriods(), ImmutableList.of(P1_STUB, P2_NORMAL)); assertEquals(test.getPeriod(0), P1_STUB); assertEquals(test.getPeriod(1), P2_NORMAL); assertEquals(test.getStartDate(), P1_STUB.getStartDate()); assertEquals(test.getEndDate(), P2_NORMAL.getEndDate()); assertEquals(test.getUnadjustedStartDate(), P1_STUB.getUnadjustedStartDate()); assertEquals(test.getUnadjustedEndDate(), P2_NORMAL.getUnadjustedEndDate()); assertEquals(test.getFirstPeriod(), P1_STUB); assertEquals(test.getLastPeriod(), P2_NORMAL); assertEquals(test.getInitialStub(), Optional.of(P1_STUB)); assertEquals(test.getFinalStub(), Optional.empty()); assertEquals(test.getRegularPeriods(), ImmutableList.of(P2_NORMAL)); assertThrows(() -> test.getPeriod(2), IndexOutOfBoundsException.class); assertEquals(test.getUnadjustedDates(), ImmutableList.of(JUL_04, JUL_17, AUG_17)); }
public void test_of_size3_initialStub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P1_STUB, P2_NORMAL, P3_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(test.size(), 3); assertEquals(test.isTerm(), false); assertEquals(test.isSinglePeriod(), false); assertEquals(test.getFrequency(), P1M); assertEquals(test.getRollConvention(), DAY_17); assertEquals(test.isEndOfMonthConvention(), false); assertEquals(test.getPeriods(), ImmutableList.of(P1_STUB, P2_NORMAL, P3_NORMAL)); assertEquals(test.getPeriod(0), P1_STUB); assertEquals(test.getPeriod(1), P2_NORMAL); assertEquals(test.getPeriod(2), P3_NORMAL); assertEquals(test.getStartDate(), P1_STUB.getStartDate()); assertEquals(test.getEndDate(), P3_NORMAL.getEndDate()); assertEquals(test.getUnadjustedStartDate(), P1_STUB.getUnadjustedStartDate()); assertEquals(test.getUnadjustedEndDate(), P3_NORMAL.getUnadjustedEndDate()); assertEquals(test.getFirstPeriod(), P1_STUB); assertEquals(test.getLastPeriod(), P3_NORMAL); assertEquals(test.getInitialStub(), Optional.of(P1_STUB)); assertEquals(test.getFinalStub(), Optional.empty()); assertEquals(test.getRegularPeriods(), ImmutableList.of(P2_NORMAL, P3_NORMAL)); assertThrows(() -> test.getPeriod(3), IndexOutOfBoundsException.class); assertEquals(test.getUnadjustedDates(), ImmutableList.of(JUL_04, JUL_17, AUG_17, SEP_17)); }
public void test_size1_stub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P1_STUB)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(test.size(), 1); assertEquals(test.isTerm(), false); assertEquals(test.isSinglePeriod(), true); assertEquals(test.getFrequency(), P1M); assertEquals(test.getRollConvention(), DAY_17); 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.of(P1_STUB)); assertEquals(test.getFinalStub(), Optional.empty()); assertEquals(test.getRegularPeriods(), ImmutableList.of()); assertThrows(() -> test.getPeriod(1), IndexOutOfBoundsException.class); assertEquals(test.getUnadjustedDates(), ImmutableList.of(JUL_04, JUL_17)); }
public void test_size1_noStub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(test.size(), 1); assertEquals(test.isTerm(), false); assertEquals(test.isSinglePeriod(), true); assertEquals(test.getFrequency(), P1M); assertEquals(test.getRollConvention(), DAY_17); assertEquals(test.isEndOfMonthConvention(), false); assertEquals(test.getPeriods(), ImmutableList.of(P2_NORMAL)); assertEquals(test.getPeriod(0), P2_NORMAL); assertEquals(test.getStartDate(), P2_NORMAL.getStartDate()); assertEquals(test.getEndDate(), P2_NORMAL.getEndDate()); assertEquals(test.getUnadjustedStartDate(), P2_NORMAL.getUnadjustedStartDate()); assertEquals(test.getUnadjustedEndDate(), P2_NORMAL.getUnadjustedEndDate()); assertEquals(test.getFirstPeriod(), P2_NORMAL); assertEquals(test.getLastPeriod(), P2_NORMAL); assertEquals(test.getInitialStub(), Optional.empty()); assertEquals(test.getFinalStub(), Optional.empty()); assertEquals(test.getRegularPeriods(), ImmutableList.of(P2_NORMAL)); assertThrows(() -> test.getPeriod(1), IndexOutOfBoundsException.class); assertEquals(test.getUnadjustedDates(), ImmutableList.of(JUL_17, AUG_17)); }
public void test_of_size2_noStub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(test.size(), 2); assertEquals(test.isTerm(), false); assertEquals(test.isSinglePeriod(), false); assertEquals(test.getFrequency(), P1M); assertEquals(test.getRollConvention(), DAY_17); assertEquals(test.isEndOfMonthConvention(), false); assertEquals(test.getPeriods(), ImmutableList.of(P2_NORMAL, P3_NORMAL)); assertEquals(test.getPeriod(0), P2_NORMAL); assertEquals(test.getPeriod(1), P3_NORMAL); assertEquals(test.getStartDate(), P2_NORMAL.getStartDate()); assertEquals(test.getEndDate(), P3_NORMAL.getEndDate()); assertEquals(test.getUnadjustedStartDate(), P2_NORMAL.getUnadjustedStartDate()); assertEquals(test.getUnadjustedEndDate(), P3_NORMAL.getUnadjustedEndDate()); assertEquals(test.getFirstPeriod(), P2_NORMAL); assertEquals(test.getLastPeriod(), P3_NORMAL); assertEquals(test.getInitialStub(), Optional.empty()); assertEquals(test.getFinalStub(), Optional.empty()); assertEquals(test.getRegularPeriods(), ImmutableList.of(P2_NORMAL, P3_NORMAL)); assertThrows(() -> test.getPeriod(2), IndexOutOfBoundsException.class); assertEquals(test.getUnadjustedDates(), ImmutableList.of(JUL_17, AUG_17, SEP_17)); }
public void test_of_size2_finalStub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P3_NORMAL, P4_STUB)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(test.size(), 2); assertEquals(test.isTerm(), false); assertEquals(test.isSinglePeriod(), false); assertEquals(test.getFrequency(), P1M); assertEquals(test.getRollConvention(), DAY_17); assertEquals(test.isEndOfMonthConvention(), false); assertEquals(test.getPeriods(), ImmutableList.of(P3_NORMAL, P4_STUB)); assertEquals(test.getPeriod(0), P3_NORMAL); assertEquals(test.getPeriod(1), P4_STUB); assertEquals(test.getStartDate(), P3_NORMAL.getStartDate()); assertEquals(test.getEndDate(), P4_STUB.getEndDate()); assertEquals(test.getUnadjustedStartDate(), P3_NORMAL.getUnadjustedStartDate()); assertEquals(test.getUnadjustedEndDate(), P4_STUB.getUnadjustedEndDate()); assertEquals(test.getFirstPeriod(), P3_NORMAL); assertEquals(test.getLastPeriod(), P4_STUB); assertEquals(test.getInitialStub(), Optional.empty()); assertEquals(test.getFinalStub(), Optional.of(P4_STUB)); assertEquals(test.getRegularPeriods(), ImmutableList.of(P3_NORMAL)); assertThrows(() -> test.getPeriod(2), IndexOutOfBoundsException.class); assertEquals(test.getUnadjustedDates(), ImmutableList.of(AUG_17, SEP_17, SEP_30)); }
public void test_of_size4_bothStubs() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P1_STUB, P2_NORMAL, P3_NORMAL, P4_STUB)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(test.size(), 4); assertEquals(test.isTerm(), false); assertEquals(test.isSinglePeriod(), false); assertEquals(test.getFrequency(), P1M); assertEquals(test.getRollConvention(), DAY_17); assertEquals(test.isEndOfMonthConvention(), false); assertEquals(test.getPeriods(), ImmutableList.of(P1_STUB, P2_NORMAL, P3_NORMAL, P4_STUB)); assertEquals(test.getPeriod(0), P1_STUB); assertEquals(test.getPeriod(1), P2_NORMAL); assertEquals(test.getPeriod(2), P3_NORMAL); assertEquals(test.getPeriod(3), P4_STUB); assertEquals(test.getStartDate(), P1_STUB.getStartDate()); assertEquals(test.getEndDate(), P4_STUB.getEndDate()); assertEquals(test.getUnadjustedStartDate(), P1_STUB.getUnadjustedStartDate()); assertEquals(test.getUnadjustedEndDate(), P4_STUB.getUnadjustedEndDate()); assertEquals(test.getFirstPeriod(), P1_STUB); assertEquals(test.getLastPeriod(), P4_STUB); assertEquals(test.getInitialStub(), Optional.of(P1_STUB)); assertEquals(test.getFinalStub(), Optional.of(P4_STUB)); assertEquals(test.getRegularPeriods(), ImmutableList.of(P2_NORMAL, P3_NORMAL)); assertThrows(() -> test.getPeriod(4), IndexOutOfBoundsException.class); assertEquals(test.getUnadjustedDates(), ImmutableList.of(JUL_04, JUL_17, AUG_17, SEP_17, SEP_30)); }
assertEquals(period.getEndDate(), adjusted.get(i + 1)); assertEquals(test.getFrequency(), freq); assertEquals(test.getRollConvention(), expRoll);
assertEquals(period.getEndDate(), adjusted.get(i + 1)); assertEquals(test.getFrequency(), freq); assertEquals(test.getRollConvention(), expRoll);
int accrualPeriodsPerPayment = paymentFrequency.exactDivide(accrualSchedule.getFrequency()); Schedule paySchedule; if (firstRegularStartDate != null && lastRegularEndDate != null) {