public void GetDaysInYearCrossCheck()
 {
     var calculator = new HebrewYearMonthDayCalculator(HebrewMonthNumbering.Civil);
     for (int year = calculator.MinYear; year <= calculator.MaxYear; year++)
     {
         int sum = Enumerable.Range(1, calculator.GetMonthsInYear(year))
                             .Sum(month => calculator.GetDaysInMonth(year, month));
         Assert.AreEqual(sum, calculator.GetDaysInYear(year), "Days in {0}", year);
     }
 }
 public void GetDaysSinceEpoch()
 {
     var calculator = new HebrewYearMonthDayCalculator(HebrewMonthNumbering.Scriptural);
     var unixEpoch = new YearMonthDay(5730, 10, 23);
     Assert.AreEqual(0, calculator.GetDaysSinceEpoch(unixEpoch));
 }
 public void DaysAtStartOfYear()
 {
     // These are somewhat random values used when diagnosing an issue.
     var calculator = new HebrewYearMonthDayCalculator(HebrewMonthNumbering.Scriptural);
     Assert.AreEqual(-110, calculator.GetStartOfYearInDays(5730));
     Assert.AreEqual(273, calculator.GetStartOfYearInDays(5731));
     Assert.AreEqual(-140735, calculator.GetStartOfYearInDays(5345));
     Assert.AreEqual(new YearMonthDay(5345, 1, 1), calculator.GetYearMonthDay(-140529));
 }
 public void DayOfYearAndReverse(HebrewMonthNumbering numbering)
 {
     var calculator = new HebrewYearMonthDayCalculator(numbering);
     for (int year = 5400; year < 5419; year++)
     {
         int daysInYear = calculator.GetDaysInYear(year);
         for (int dayOfYear = 1; dayOfYear <= daysInYear; dayOfYear++)
         {
             YearMonthDay ymd = calculator.GetYearMonthDay(year, dayOfYear);
             Assert.AreEqual(dayOfYear, calculator.GetDayOfYear(ymd));
         }
     }
 }