public void FiscalYearGetMonthsTest() { const int halfyearCount = 4; Halfyears halfyears = new Halfyears(2006, YearHalfyear.First, halfyearCount, GetFiscalYearCalendar(FiscalYearAlignment.LastDay)); ITimePeriodCollection months = halfyears.GetMonths(); Assert.NotNull(months); Assert.Equal(months.Count, TimeSpec.MonthsPerHalfyear * halfyearCount); Assert.Equal <DateTime>(months[0].Start, new DateTime(2006, 8, 27)); for (int i = 0; i < months.Count; i++) { Month month = (Month)months[i]; // last month of a leap year (6 weeks) // http://en.wikipedia.org/wiki/4-4-5_Calendar if ((month.YearMonth == YearMonth.August) && (month.Year == 2008 || month.Year == 2013 || month.Year == 2019)) { Assert.Equal(month.Duration.Subtract(TimeCalendar.DefaultEndOffset).Days, TimeSpec.FiscalDaysPerLeapMonth); } else if ((i + 1) % 3 == 0) // first and second month of quarter (4 weeks) { Assert.Equal(month.Duration.Subtract(TimeCalendar.DefaultEndOffset).Days, TimeSpec.FiscalDaysPerLongMonth); } else // third month of quarter (5 weeks) { Assert.Equal(month.Duration.Subtract(TimeCalendar.DefaultEndOffset).Days, TimeSpec.FiscalDaysPerShortMonth); } } Assert.Equal(months[(TimeSpec.MonthsPerHalfyear * halfyearCount) - 1].End, halfyears.End); } // FiscalYearGetMonthsTest
public void SecondHalfyearQuarterTest() { Halfyears halfyears = new Halfyears(2016, YearHalfyear.Second, 1); Assert.Equal(2, halfyears.GetQuarters().Count); Assert.Equal(7, halfyears.GetQuarters()[0].Start.Month); Assert.Equal(10, halfyears.GetQuarters()[1].Start.Month); } // SecondHalfyearQuarterTest
public void FirstHalfyearQuarterTest() { Halfyears halfyears = new Halfyears(2016, YearHalfyear.First, 1); Assert.Equal(2, halfyears.GetQuarters().Count); Assert.Equal(1, halfyears.GetQuarters()[0].Start.Month); Assert.Equal(4, halfyears.GetQuarters()[1].Start.Month); } // FirstHalfyearQuarterTest
public void SecondHalfyearMonthTest() { Halfyears halfyears = new Halfyears(2016, YearHalfyear.Second, 1); Assert.Equal(6, halfyears.GetMonths().Count); Assert.Equal(7, halfyears.GetMonths()[0].Start.Month); Assert.Equal(12, halfyears.GetMonths()[5].Start.Month); } // SecondHalfyearMonthTest
public void FirstHalfyearMonthTest() { Halfyears halfyears = new Halfyears(2016, YearHalfyear.First, 1); Assert.Equal(6, halfyears.GetMonths().Count); Assert.Equal(1, halfyears.GetMonths()[0].Start.Month); Assert.Equal(6, halfyears.GetMonths()[5].Start.Month); } // FirstHalfyearMonthTest
public void YearBaseMonthTest() { DateTime moment = new DateTime(2009, 2, 15); int year = TimeTool.GetYearOf(YearMonth.April, moment.Year, moment.Month); Halfyears halfyears = new Halfyears(moment, YearHalfyear.First, 3, TimeCalendar.New(YearMonth.April)); Assert.Equal(YearMonth.April, halfyears.YearBaseMonth); Assert.Equal <DateTime>(halfyears.Start, new DateTime(year, (int)YearMonth.April, 1)); } // YearBaseMonthTest
public void GetFiscalQuartersTest() { const int halfyearCount = 4; Halfyears halfyears = new Halfyears(2006, YearHalfyear.First, halfyearCount, GetFiscalYearCalendar(FiscalYearAlignment.LastDay)); ITimePeriodCollection quarters = halfyears.GetQuarters(); Assert.NotNull(quarters); Assert.Equal(quarters.Count, TimeSpec.QuartersPerHalfyear * halfyearCount); Assert.Equal(quarters[0].Start.Date, halfyears.Start); Assert.Equal(quarters[(TimeSpec.QuartersPerHalfyear * halfyearCount) - 1].End, halfyears.End); } // GetFiscalQuartersTest
} // ShowCompactHalfyears // ---------------------------------------------------------------------- public static void ShowHalfyears(Halfyears halfyears, string caption = "Halfyears") { WriteLine("{0}: {1}", caption, halfyears); WriteIndentLine("YearBaseMonth: {0}", halfyears.YearBaseMonth); WriteIndentLine("StartYear: {0}", halfyears.StartYear); WriteIndentLine("StartHalfyear: {0}", halfyears.StartHalfyear); WriteIndentLine("StartHalfyearName: {0}", halfyears.StartHalfyearName); WriteIndentLine("StartHalfyearOfYearName: {0}", halfyears.StartHalfyearOfYearName); WriteIndentLine("EndYear: {0}", halfyears.EndYear); WriteIndentLine("EndHalfyear: {0}", halfyears.EndHalfyear); WriteIndentLine("EndHalfyearName: {0}", halfyears.EndHalfyearName); WriteIndentLine("EndHalfyearOfYearName: {0}", halfyears.EndHalfyearOfYearName); WriteLine(); } // ShowHalfyears
public void SingleHalfyearsTest() { const int startYear = 2004; const YearHalfyear startHalfyear = YearHalfyear.Second; Halfyears halfyears = new Halfyears(startYear, startHalfyear, 1); Assert.Equal(YearMonth.January, halfyears.YearBaseMonth); Assert.Equal(1, halfyears.HalfyearCount); Assert.Equal(halfyears.StartHalfyear, startHalfyear); Assert.Equal <int>(halfyears.StartYear, startYear); Assert.Equal <int>(halfyears.EndYear, startYear); Assert.Equal(YearHalfyear.Second, halfyears.EndHalfyear); Assert.Equal(1, halfyears.GetHalfyears().Count); Assert.True(halfyears.GetHalfyears()[0].IsSamePeriod(new Halfyear(2004, YearHalfyear.Second))); } // SingleHalfyearsTest
// ---------------------------------------------------------------------- public static void ShowAll(int periodCount, int startYear, YearHalfyear yearHalfyear, TimeCalendarConfig calendarConfig) { WriteLine("Input: count={0}, year={1}, halfyear={2}", periodCount, startYear, yearHalfyear); WriteLine(); HalfyearTimeRange halfyearTimeRange; if (periodCount == 1) { Halfyear halfyear = new Halfyear(startYear, yearHalfyear, new TimeCalendar(calendarConfig)); halfyearTimeRange = halfyear; Halfyear previousHalfyear = halfyear.GetPreviousHalfyear(); Halfyear nextHalfyear = halfyear.GetNextHalfyear(); ShowHalfyear(halfyear); ShowCompactHalfyear(previousHalfyear, "Previous Halfyear"); ShowCompactHalfyear(nextHalfyear, "Next Halfyear"); WriteLine(); } else { Halfyears halfyears = new Halfyears(startYear, yearHalfyear, periodCount, new TimeCalendar(calendarConfig)); halfyearTimeRange = halfyears; ShowHalfyears(halfyears); WriteLine(); foreach (Halfyear halfyear in halfyears.GetHalfyears()) { ShowCompactHalfyear(halfyear); } WriteLine(); } foreach (Quarter quarter in halfyearTimeRange.GetQuarters()) { QuarterDemo.ShowCompactQuarter(quarter); } WriteLine(); foreach (Month month in halfyearTimeRange.GetMonths()) { MonthDemo.ShowCompactMonth(month); } WriteLine(); } // ShowAll
public void SecondCalendarHalfyearsTest() { const int startYear = 2004; const YearHalfyear startHalfyear = YearHalfyear.Second; const int halfyearCount = 3; Halfyears halfyears = new Halfyears(startYear, startHalfyear, halfyearCount); Assert.Equal(YearMonth.January, halfyears.YearBaseMonth); Assert.Equal <int>(halfyears.HalfyearCount, halfyearCount); Assert.Equal(halfyears.StartHalfyear, startHalfyear); Assert.Equal <int>(halfyears.StartYear, startYear); Assert.Equal(2005, halfyears.EndYear); Assert.Equal(YearHalfyear.Second, halfyears.EndHalfyear); Assert.Equal(halfyears.GetHalfyears().Count, halfyearCount); Assert.True(halfyears.GetHalfyears()[0].IsSamePeriod(new Halfyear(2004, YearHalfyear.Second))); Assert.True(halfyears.GetHalfyears()[1].IsSamePeriod(new Halfyear(2005, YearHalfyear.First))); Assert.True(halfyears.GetHalfyears()[2].IsSamePeriod(new Halfyear(2005, YearHalfyear.Second))); } // SecondCalendarHalfyearsTest
public void FirstCalendarHalfyearsTest() { const int startYear = 2004; const YearHalfyear startHalfyear = YearHalfyear.First; const int halfyearCount = 3; Halfyears halfyears = new Halfyears(startYear, startHalfyear, halfyearCount); Assert.AreEqual(halfyears.YearBaseMonth, YearMonth.January); Assert.AreEqual(halfyears.HalfyearCount, halfyearCount); Assert.AreEqual(halfyears.StartHalfyear, startHalfyear); Assert.AreEqual(halfyears.StartYear, startYear); Assert.AreEqual(halfyears.EndYear, 2005); Assert.AreEqual(halfyears.EndHalfyear, YearHalfyear.First); Assert.AreEqual(halfyears.GetHalfyears().Count, halfyearCount); Assert.IsTrue(halfyears.GetHalfyears()[0].IsSamePeriod(new Halfyear(2004, YearHalfyear.First))); Assert.IsTrue(halfyears.GetHalfyears()[1].IsSamePeriod(new Halfyear(2004, YearHalfyear.Second))); Assert.IsTrue(halfyears.GetHalfyears()[2].IsSamePeriod(new Halfyear(2005, YearHalfyear.First))); } // FirstCalendarHalfyearsTest
public void FirstCustomCalendarHalfyearsTest() { TimeCalendar calendar = TimeCalendar.New(YearMonth.October); const int startYear = 2004; const YearHalfyear startHalfyear = YearHalfyear.First; const int halfyearCount = 3; Halfyears halfyears = new Halfyears(startYear, startHalfyear, halfyearCount, calendar); Assert.Equal(YearMonth.October, halfyears.YearBaseMonth); Assert.Equal <int>(halfyears.HalfyearCount, halfyearCount); Assert.Equal(halfyears.StartHalfyear, startHalfyear); Assert.Equal <int>(halfyears.StartYear, startYear); Assert.Equal(2005, halfyears.EndYear); Assert.Equal(YearHalfyear.First, halfyears.EndHalfyear); Assert.Equal(halfyears.GetHalfyears().Count, halfyearCount); Assert.True(halfyears.GetHalfyears()[0].IsSamePeriod(new Halfyear(2004, YearHalfyear.First, calendar))); Assert.True(halfyears.GetHalfyears()[1].IsSamePeriod(new Halfyear(2004, YearHalfyear.Second, calendar))); Assert.True(halfyears.GetHalfyears()[2].IsSamePeriod(new Halfyear(2005, YearHalfyear.First, calendar))); } // FirstCustomCalendarHalfyearsTest
} // ShowHalfyear // ---------------------------------------------------------------------- public static void ShowCompactHalfyears(Halfyears halfyears, string caption = "Halfyears") { WriteLine("{0}: {1}", caption, halfyears); } // ShowCompactHalfyears