.periods(newSchedule) .frequency(Frequency.of(frequency.getPeriod().multipliedBy(groupSize))) .rollConvention(rollConvention) .build();
.periods(periods) .frequency(frequency) .rollConvention(rollConv) .build();
.periods(newSchedule) .frequency(Frequency.of(frequency.getPeriod().multipliedBy(groupSize))) .rollConvention(rollConvention) .build();
SchedulePeriod accrual2 = SchedulePeriod.of(DATE_04_07, DATE_07_07, DATE_04_05, DATE_07_05); Schedule schedule = Schedule.builder() .periods(accrual1, accrual2) .frequency(P3M) .rollConvention(DAY_5) .build();
SchedulePeriod accrual2 = SchedulePeriod.of(DATE_04_07, DATE_07_07, DATE_04_05, DATE_07_05); Schedule schedule = Schedule.builder() .periods(accrual1, accrual2) .frequency(P3M) .rollConvention(DAY_5) .build();
SchedulePeriod accrual2 = SchedulePeriod.of(DATE_04_07, DATE_07_07, DATE_04_05, DATE_07_05); Schedule schedule = Schedule.builder() .periods(accrual1, accrual2) .frequency(P3M) .rollConvention(DAY_5) .build();
SchedulePeriod accrual2 = SchedulePeriod.of(DATE_04_07, DATE_07_07, DATE_04_05, DATE_07_05); Schedule schedule = Schedule.builder() .periods(accrual1, accrual2) .frequency(P3M) .rollConvention(DAY_5) .build();
SchedulePeriod accrual2 = SchedulePeriod.of(DATE_04_07, DATE_07_07, DATE_04_05, DATE_07_05); Schedule schedule = Schedule.builder() .periods(accrual1, accrual2) .frequency(P3M) .rollConvention(DAY_5) .build();
SchedulePeriod period3 = SchedulePeriod.of(date(2014, 3, 5), date(2014, 4, 7), date(2014, 3, 5), date(2014, 4, 5)); Schedule schedule = Schedule.builder() .periods(period1, period2, period3) .frequency(Frequency.P1M) .rollConvention(RollConventions.DAY_5) .build(); RateAccrualPeriod rap1 = RateAccrualPeriod.builder(period1) .yearFraction(period1.yearFraction(ACT_365F, schedule))
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)); }
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_expand_oneValue() { FixedRateCalculation test = FixedRateCalculation.builder() .dayCount(ACT_365F) .rate(ValueSchedule.of(0.025d)) .build(); SchedulePeriod period1 = SchedulePeriod.of(date(2014, 1, 6), date(2014, 2, 5), date(2014, 1, 5), date(2014, 2, 5)); SchedulePeriod period2 = SchedulePeriod.of(date(2014, 1, 5), date(2014, 2, 5), date(2014, 2, 5), date(2014, 3, 5)); SchedulePeriod period3 = SchedulePeriod.of(date(2014, 3, 5), date(2014, 4, 7), date(2014, 3, 5), date(2014, 4, 5)); Schedule schedule = Schedule.builder() .periods(period1, period2, period3) .frequency(Frequency.P1M) .rollConvention(RollConventions.DAY_5) .build(); RateAccrualPeriod rap1 = RateAccrualPeriod.builder(period1) .yearFraction(period1.yearFraction(ACT_365F, schedule)) .rateComputation(FixedRateComputation.of(0.025d)) .build(); RateAccrualPeriod rap2 = RateAccrualPeriod.builder(period2) .yearFraction(period2.yearFraction(ACT_365F, schedule)) .rateComputation(FixedRateComputation.of(0.025d)) .build(); RateAccrualPeriod rap3 = RateAccrualPeriod.builder(period3) .yearFraction(period3.yearFraction(ACT_365F, schedule)) .rateComputation(FixedRateComputation.of(0.025d)) .build(); ImmutableList<RateAccrualPeriod> periods = test.createAccrualPeriods(schedule, schedule, REF_DATA); assertEquals(periods, ImmutableList.of(rap1, rap2, rap3)); }
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_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_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 coverage_equals() { Schedule a = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule b = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL)) .frequency(P1M) .rollConvention(DAY_17) .build(); Schedule c = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P3M) .rollConvention(DAY_17) .build(); Schedule d = Schedule.builder() .periods(ImmutableList.of(P2_NORMAL, P3_NORMAL, P4_NORMAL, P5_NORMAL, P6_NORMAL)) .frequency(P1M) .rollConvention(RollConventions.DAY_1) .build(); assertEquals(a.equals(a), true); assertEquals(a.equals(b), false); assertEquals(a.equals(c), false); assertEquals(a.equals(d), false); }
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_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_expand_onePeriod_with_futureValueNotional() { FixedRateCalculation test = FixedRateCalculation.builder() .dayCount(ACT_365F) .rate(ValueSchedule.of(0.025d)) .futureValueNotional(FutureValueNotional.of(1000d)) .build(); SchedulePeriod period = SchedulePeriod.of(date(2014, 1, 6), date(2014, 2, 5), date(2014, 1, 5), date(2014, 2, 5)); Schedule schedule = Schedule.builder() .periods(period) .frequency(Frequency.TERM) .rollConvention(RollConventions.NONE) .build(); double yearFraction = period.yearFraction(ACT_365F, schedule); RateAccrualPeriod rap = RateAccrualPeriod.builder(period) .yearFraction(period.yearFraction(ACT_365F, schedule)) .rateComputation(FixedOvernightCompoundedAnnualRateComputation.of(0.025d, yearFraction)) .build(); ImmutableList<RateAccrualPeriod> periods = test.createAccrualPeriods(schedule, schedule, REF_DATA); assertEquals(periods, ImmutableList.of(rap)); }
public void test_createSchedule_firstAndLastDate_initialAccrualStub() { PaymentSchedule test = PaymentSchedule.builder() .paymentFrequency(P2M) .paymentDateOffset(DaysAdjustment.ofBusinessDays(2, GBLO)) .firstRegularStartDate(DATE_03_05) .lastRegularEndDate(DATE_05_05) .build(); Schedule schedule = test.createSchedule(ACCRUAL_SCHEDULE_INITIAL_STUB, REF_DATA); Schedule expected = Schedule.builder() .periods( SchedulePeriod.of(DATE_01_08, DATE_03_05, DATE_01_08, DATE_03_05), SchedulePeriod.of(DATE_03_05, DATE_05_06, DATE_03_05, DATE_05_05)) .frequency(P2M) .rollConvention(DAY_5) .build(); assertEquals(schedule, expected); }