Esempio n. 1
0
        public void UnadjustedDateNoOfPeriodsFromTermination()
        {
            const int cCouponPeriods      = 1;
            DateTime  endDate             = new DateTime(2010, 01, 5);
            Period    periodInterval      = PeriodHelper.Parse("6M");
            CalculationPeriodSchedule cps = new CalculationPeriodSchedule();
            List <CalculationPeriod>  unadjustedCalcPeriods = cps.GetUnadjustedCalculationDateScheduleFromTermDate(endDate, periodInterval, cCouponPeriods);

            Assert.AreEqual(unadjustedCalcPeriods.Count, cCouponPeriods);
            Assert.IsFalse(cps.HasFinalStub);
            Assert.IsFalse(cps.HasInitialStub);
        }
Esempio n. 2
0
        public void LongFinalStubSpecifiedButNoStub()
        {
            DateTime                   startDate       = new DateTime(2007, 01, 5);
            DateTime                   endDate         = new DateTime(2012, 01, 5);
            RollConventionEnum         rollConvention  = RollConventionEnum.Item5;
            CalculationPeriodFrequency periodFrequency = CalculationPeriodFrequencyHelper.Parse("3M", rollConvention.ToString());
            CalculationPeriodSchedule  cps             = new CalculationPeriodSchedule();
            Period periodInterval = CalculationPeriodHelper.CalculationPeriodFrequencyToInterval(periodFrequency);
            List <CalculationPeriod> unadjustedCalcPeriods = cps.GetUnadjustedCalculationDateSchedule(startDate, endDate, periodInterval, rollConvention, StubPeriodTypeEnum.LongFinal);

            Assert.AreEqual(unadjustedCalcPeriods.Count, 20);
            Assert.IsFalse(cps.HasFinalStub);
            Assert.IsFalse(cps.HasInitialStub);
        }
Esempio n. 3
0
        public void LongInitialStubSpecified()
        {
            DateTime                   startDate              = new DateTime(2007, 01, 5);
            DateTime                   endDate                = new DateTime(2012, 01, 5);
            RollConventionEnum         rollConvention         = RollConventionEnum.Item26;
            CalculationPeriodFrequency periodFrequency        = CalculationPeriodFrequencyHelper.Parse("3M", rollConvention.ToString());
            DateTime                   firstRegularPeriodDate = new DateTime(2007, 4, 26);
            CalculationPeriodSchedule  cps = new CalculationPeriodSchedule();
            List <CalculationPeriod>   unadjustedCalcPeriods = cps.GetUnadjustedCalculationDateSchedule(startDate, endDate, firstRegularPeriodDate, periodFrequency, StubPeriodTypeEnum.LongInitial);

            Assert.AreEqual(unadjustedCalcPeriods.Count, 20);
            Assert.IsTrue(cps.HasFinalStub);
            Assert.IsTrue(cps.HasInitialStub);
            Assert.IsTrue(CalculationPeriodHelper.IsLongStub(unadjustedCalcPeriods[0], cps.PeriodInterval));
        }
Esempio n. 4
0
        public void ShortFinalStubSpecifiedFromTermination()
        {
            DateTime                   startDate       = new DateTime(2007, 01, 5);
            DateTime                   endDate         = new DateTime(2010, 01, 5);
            RollConventionEnum         rollConvention  = RollConventionEnum.Item12;
            CalculationPeriodFrequency periodFrequency = CalculationPeriodFrequencyHelper.Parse("3M", rollConvention.ToString());
            Period periodInterval             = CalculationPeriodHelper.CalculationPeriodFrequencyToInterval(periodFrequency);
            CalculationPeriodSchedule cps     = new CalculationPeriodSchedule();
            DateTime lastRegularPeriodEndDate = new DateTime(2009, 8, 12);
            List <CalculationPeriod> unadjustedCalcPeriods = cps.GetUnadjustedCalculationDateScheduleFromTermDate(startDate, endDate, periodInterval, lastRegularPeriodEndDate, rollConvention, StubPeriodTypeEnum.ShortFinal);

            Assert.AreEqual(unadjustedCalcPeriods.Count, 13);
            Assert.IsTrue(cps.HasFinalStub);
            Assert.IsTrue(cps.HasInitialStub);
            Assert.IsTrue(CalculationPeriodHelper.IsShortStub(unadjustedCalcPeriods[unadjustedCalcPeriods.Count - 1], cps.PeriodInterval));
        }
Esempio n. 5
0
        public void RegularPeriodIntervalUnadjustedDates()
        {
            Boolean bFailureSet = false;
            List <CalculationPeriod> unadjustedCalcPeriods;

            try
            {
                // 5 year 3 month cash flow
                DateTime startDate            = new DateTime(2007, 01, 5);
                Period   intervalToMaturity   = PeriodHelper.Parse("5Y");
                Period   periodInterval       = PeriodHelper.Parse("3M");
                CalculationPeriodSchedule cps = new CalculationPeriodSchedule();
                unadjustedCalcPeriods = cps.GetUnadjustedCalculationDateSchedule(startDate, intervalToMaturity, periodInterval);
                List <DateTime> dates = CalculationPeriodHelper.GetCalculationPeriodsProperty <DateTime>(unadjustedCalcPeriods, "unadjustedStartDate");
                Assert.AreEqual(unadjustedCalcPeriods.Count, 20);
                Assert.IsFalse(cps.HasInitialStub);
                Assert.IsFalse(cps.HasFinalStub);

                // 3 year 6 month cash flow
                startDate          = new DateTime(2010, 12, 3);
                intervalToMaturity = PeriodHelper.Parse("3Y");
                periodInterval     = PeriodHelper.Parse("6M");
                cps = new CalculationPeriodSchedule();
                unadjustedCalcPeriods = cps.GetUnadjustedCalculationDateSchedule(startDate, intervalToMaturity, periodInterval);
                dates = CalculationPeriodHelper.GetCalculationPeriodsProperty <DateTime>(unadjustedCalcPeriods, "unadjustedStartDate");
                Assert.AreEqual(unadjustedCalcPeriods.Count, 6);
                Assert.IsFalse(cps.HasInitialStub);
                Assert.IsFalse(cps.HasFinalStub);

                // This should generate an excpetion
                startDate          = new DateTime(2010, 12, 3);
                intervalToMaturity = PeriodHelper.Parse("3Y");
                periodInterval     = PeriodHelper.Parse("7M");
                cps = new CalculationPeriodSchedule();
                unadjustedCalcPeriods = cps.GetUnadjustedCalculationDateSchedule(startDate, intervalToMaturity, periodInterval);
                dates = CalculationPeriodHelper.GetCalculationPeriodsProperty <DateTime>(unadjustedCalcPeriods, "unadjustedStartDate");
                Assert.AreEqual(unadjustedCalcPeriods.Count, 6);
                Assert.IsFalse(cps.HasInitialStub);
                Assert.IsFalse(cps.HasFinalStub);
                Assert.IsTrue(!bFailureSet);
            }
            catch (Exception ex)
            {
                bFailureSet = true;
                Console.WriteLine("RegularPeriodIntervalUnadjustedDates: " + ex.Message);
            }
        }
Esempio n. 6
0
        public void RegularPeriodFrequencyUnadjustedDates()
        {
            // 5 year 3 month cash flow
            DateTime startDate = new DateTime(2007, 01, 5);

            RollConventionEnum rollConvention = RollConventionEnum.Item26;

            CalculationPeriodFrequency frequencyToMaturity = CalculationPeriodFrequencyHelper.Parse("5Y", rollConvention.ToString());
            CalculationPeriodFrequency periodFrequency     = CalculationPeriodFrequencyHelper.Parse("3M", rollConvention.ToString());
            CalculationPeriodSchedule  cps = new CalculationPeriodSchedule();
            List <CalculationPeriod>   unadjustedCalcPeriods = cps.GetUnadjustedCalculationDateSchedule(startDate, frequencyToMaturity, periodFrequency);
            List <DateTime>            dates = CalculationPeriodHelper.GetCalculationPeriodsProperty <DateTime>(unadjustedCalcPeriods, "unadjustedStartDate");

            Assert.AreEqual(unadjustedCalcPeriods.Count, 20);
            Assert.IsFalse(cps.HasInitialStub);
            Assert.IsFalse(cps.HasFinalStub);
        }