public virtual void test_subSchedule_3monthIn3Month()
        {
            SchedulePeriod test     = SchedulePeriod.of(JUN_17, SEP_17);
            Schedule       schedule = test.subSchedule(P3M, RollConventions.DAY_17, StubConvention.NONE, BusinessDayAdjustment.NONE).createSchedule(REF_DATA);

            assertEquals(schedule.size(), 1);
            assertEquals(schedule.getPeriod(0), SchedulePeriod.of(JUN_17, SEP_17));
        }
        public virtual 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.Frequency, P2M);
            assertEquals(schedule.RollConvention, RollConventions.DAY_17);
        }
        //-------------------------------------------------------------------------
        public virtual 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.Frequency, P1M);
            assertEquals(schedule.RollConvention, RollConventions.DAY_17);
        }