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_merge_size1_stub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P1_STUB)) .frequency(P1M) .rollConvention(DAY_17) .build(); 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_merge_groupSizeOneNoChange() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(1, true), test); assertEquals(test.mergeRegular(1, false), test); assertEquals(test.merge(1, P2_NORMAL.getUnadjustedStartDate(), P6_NORMAL.getUnadjustedEndDate()), test); assertEquals(test.merge(1, P2_NORMAL.getStartDate(), P6_NORMAL.getEndDate()), test); }
public void test_merge_groupSizeInvalid() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); assertThrowsIllegalArg(() -> test.mergeRegular(0, true)); assertThrowsIllegalArg(() -> test.mergeRegular(0, false)); assertThrowsIllegalArg(() -> test.mergeRegular(-1, true)); assertThrowsIllegalArg(() -> test.mergeRegular(-1, false)); assertThrowsIllegalArg(() -> test.merge(0, P2_NORMAL.getUnadjustedStartDate(), P6_NORMAL.getUnadjustedEndDate())); assertThrowsIllegalArg(() -> test.merge(-1, P2_NORMAL.getUnadjustedStartDate(), P6_NORMAL.getUnadjustedEndDate())); }
public void test_merge_group2_within2_initialStub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P1_STUB, P2_NORMAL, P3_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P1_STUB, P2_3)) .frequency(P2M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(2, true), expected); assertEquals(test.mergeRegular(2, false), expected); assertEquals(test.merge(2, P2_NORMAL.getUnadjustedStartDate(), P3_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(2, P2_NORMAL.getStartDate(), P3_NORMAL.getEndDate()), expected); }
public void test_merge_group2_within2_noStub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P2_3)) .frequency(P2M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(2, true), expected); assertEquals(test.mergeRegular(2, false), expected); assertEquals(test.merge(2, P2_NORMAL.getUnadjustedStartDate(), P3_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(2, P2_NORMAL.getStartDate(), P3_NORMAL.getEndDate()), expected); }
public void test_merge_group2_within2_finalStub() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_STUB)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P2_3, P4_STUB)) .frequency(P2M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(2, true), expected); assertEquals(test.mergeRegular(2, false), expected); assertEquals(test.merge(2, P2_NORMAL.getUnadjustedStartDate(), P3_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(2, P2_NORMAL.getStartDate(), P3_NORMAL.getEndDate()), expected); }
public void test_merge_group3_within5_forwards() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P2_4, P5_6)) .frequency(P3M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(3, true), expected); assertEquals(test.merge(3, P2_NORMAL.getUnadjustedStartDate(), P4_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(3, P2_NORMAL.getStartDate(), P4_NORMAL.getEndDate()), expected); }
public void test_merge_group3_within5_backwards() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P2_3, P4_6)) .frequency(P3M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(3, false), expected); assertEquals(test.merge(3, P4_NORMAL.getUnadjustedStartDate(), P6_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(3, P4_NORMAL.getStartDate(), P6_NORMAL.getEndDate()), expected); }
public void test_merge_group2_within5_forwards() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P2_3, P4_5, P6_NORMAL)) .frequency(P2M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(2, true), expected); assertEquals(test.merge(2, P2_NORMAL.getUnadjustedStartDate(), P5_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(2, P2_NORMAL.getStartDate(), P5_NORMAL.getEndDate()), expected); }
public void test_merge_group2_within3_backwards() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_4)) .frequency(P2M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(2, false), expected); assertEquals(test.merge(2, P3_NORMAL.getUnadjustedStartDate(), P4_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(2, P3_NORMAL.getStartDate(), P4_NORMAL.getEndDate()), expected); }
public void test_merge_group2_within5_backwards() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_4, P5_6)) .frequency(P2M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(2, false), expected); assertEquals(test.merge(2, P3_NORMAL.getUnadjustedStartDate(), P6_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(2, P3_NORMAL.getStartDate(), P6_NORMAL.getEndDate()), expected); }
public void test_merge_group2_within3_forwards() { Schedule test = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule expected = Schedule.builder() .periods(ImmutableList.of(P2_3, P4_NORMAL)) .frequency(P2M) .rollConvention(DAY_17) .build(); assertEquals(test.mergeRegular(2, true), expected); assertEquals(test.merge(2, P2_NORMAL.getUnadjustedStartDate(), P3_NORMAL.getUnadjustedEndDate()), expected); assertEquals(test.merge(2, P2_NORMAL.getStartDate(), P3_NORMAL.getEndDate()), expected); }
paySchedule = accrualSchedule.mergeRegular(accrualPeriodsPerPayment, rollForwards);