public void FiscalYearsNearestDayGetQuartersTest() { const int yearCount = 13; Years years = new Years(2006, yearCount, GetFiscalYearCalendar(FiscalYearAlignment.NearestDay)); ITimePeriodCollection quarters = years.GetQuarters(); Assert.NotNull(quarters); Assert.Equal(quarters.Count, yearCount * TimeSpec.QuartersPerYear); Assert.Equal(quarters[0].Start, new DateTime(2006, 9, 3)); foreach (Quarter quarter in quarters) { // last quarter of a leap year // http://en.wikipedia.org/wiki/4-4-5_Calendar if ((quarter.YearQuarter == YearQuarter.Fourth) && (quarter.Year == 2011 || quarter.Year == 2016)) { Assert.Equal(quarter.Duration.Subtract(TimeCalendar.DefaultEndOffset).Days, TimeSpec.FiscalDaysPerLeapQuarter); } else { Assert.Equal(quarter.Duration.Subtract(TimeCalendar.DefaultEndOffset).Days, TimeSpec.FiscalDaysPerQuarter); } } } // FiscalYearsNearestDayGetQuartersTest
public void GetQuartersTest() { const int startYear = 2004; const int yearCount = 10; const YearMonth startMonth = YearMonth.October; const YearQuarter startQuarter = YearQuarter.Third; Years years = new Years(startYear, yearCount, TimeCalendar.New(startMonth)); ITimePeriodCollection quarters = years.GetQuarters(); Assert.NotNull(quarters); int index = 0; foreach (Quarter quarter in quarters) { int quarterYear = startYear + ((index + (int)startQuarter) / TimeSpec.QuartersPerYear); Assert.Equal(quarter.Year, quarterYear); Assert.Equal(quarter.Start, years.Start.AddMonths(index * TimeSpec.MonthsPerQuarter)); Assert.Equal(quarter.End, quarter.Calendar.MapEnd(quarter.Start.AddMonths(TimeSpec.MonthsPerQuarter))); index++; } Assert.Equal(index, yearCount * TimeSpec.QuartersPerYear); } // GetQuartersTest