public void GetStartOfYearInDays()
 {
     // This exercises CalculateStartOfYearInDays too.
     var calculator = new UmAlQuraYearMonthDayCalculator();
     for (int year = calculator.MinYear; year <= calculator.MaxYear; year++)
     {
         var bcl = BclCalendars.UmAlQura.ToDateTime(year, 1, 1, 0, 0, 0, 0);
         var days = (bcl - new DateTime(1970, 1, 1)).Days;
         Assert.AreEqual(days, calculator.GetStartOfYearInDays(year), "year={0}", year);
     }
 }
 public void GetDaysFromStartOfYearToStartOfMonth()
 {
     var calculator = new UmAlQuraYearMonthDayCalculator();
     for (int year = calculator.MinYear; year <= calculator.MaxYear; year++)
     {
         int dayOfYear = 1;
         for (int month = 1; month <= 12; month++)
         {
             // This delegates to GetDaysFromStartOfYearToStartOfMonth (which is protected).
             Assert.AreEqual(dayOfYear, calculator.GetDayOfYear(new YearMonthDay(year, month, 1)), "year={0}; month={1}", year, month);
             dayOfYear += calculator.GetDaysInMonth(year, month);
         }
     }
 }
 public void GetYearMonthDay_YearAndDayOfYear()
 {
     var calculator = new UmAlQuraYearMonthDayCalculator();
     for (int year = calculator.MinYear; year <= calculator.MaxYear; year++)
     {
         int dayOfYear = 1;
         for (int month = 1; month <= 12; month++)
         {
             for (int day = 1; day <= calculator.GetDaysInMonth(year, month); day++)
             {
                 var actual = calculator.GetYearMonthDay(year, dayOfYear);
                 var expected = new YearMonthDay(year, month, day);
                 Assert.AreEqual(expected, actual, "year={0}; dayOfYear={1}", year, dayOfYear);
                 dayOfYear++;
             }
         }
     }
 }
 public void GetYearMonthDay_DaysSinceEpoch()
 {
     var calculator = new UmAlQuraYearMonthDayCalculator();
     int daysSinceEpoch = calculator.GetStartOfYearInDays(calculator.MinYear);
     for (int year = calculator.MinYear; year <= calculator.MaxYear; year++)
     {
         for (int month = 1; month <= 12; month++)
         {
             for (int day = 1; day <= calculator.GetDaysInMonth(year, month); day++)
             {
                 var actual = calculator.GetYearMonthDay(daysSinceEpoch);
                 var expected = new YearMonthDay(year, month, day);
                 Assert.AreEqual(expected, actual, "daysSinceEpoch={0}", daysSinceEpoch);
                 daysSinceEpoch++;
             }
         }
     }
 }