GetWeekOfYear() private method

private GetWeekOfYear ( System.DateTime time, CalendarWeekRule rule, DayOfWeek firstDayOfWeek ) : int
time System.DateTime
rule CalendarWeekRule
firstDayOfWeek DayOfWeek
return int
        public void PosTest1()
        {
            System.Globalization.Calendar tc = new TaiwanCalendar();
            Random rand = new Random(-55);
            int year = rand.Next(tc.MinSupportedDateTime.Year, tc.MaxSupportedDateTime.Year - 1911);
            int month = rand.Next(1, 12);
            int day;
            if (tc.IsLeapYear(year))
            {
                day = rand.Next(1, _DAYS_PER_MONTHS_IN_LEAP_YEAR[month] + 1);
            }
            else
            {
                day = rand.Next(1, _DAYS_PER_MONTHS_IN_NO_LEAP_YEAR[month] + 1);
            }
            DateTime dt = new DateTime(year, month, day);

            for (int i = 0; i < 7; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    int actualWeek = getWeekOfYear(dt, (CalendarWeekRule)j, (DayOfWeek)i);
                    int resultWeek = tc.GetWeekOfYear(dt, (CalendarWeekRule)j, (DayOfWeek)i);
                    Assert.Equal(resultWeek, actualWeek);
                }
            }
        }
        public void PosTest3()
        {
            System.Globalization.Calendar tc = new TaiwanCalendar();
            DateTime dt = tc.MinSupportedDateTime;

            for (int i = 0; i < 7; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    int actualWeek = getWeekOfYear(dt, (CalendarWeekRule)j, (DayOfWeek)i);
                    int resultWeek = tc.GetWeekOfYear(dt, (CalendarWeekRule)j, (DayOfWeek)i);
                    Assert.Equal(resultWeek, actualWeek);
                }
            }
        }
        public void PosTest4()
        {
            System.Globalization.Calendar tc = new TaiwanCalendar();
            System.Globalization.Calendar gc = new GregorianCalendar();
            Random rand = new Random(-55);
            int year = rand.Next(tc.MinSupportedDateTime.Year, tc.MaxSupportedDateTime.Year - 1911);
            int month = 12;
            int day = 31;
            int actualWeek = 53;
            DateTime dt = new DateTime(year, month, day);

            if (DayOfWeek.Saturday == new DateTime(year, 1, 1).DayOfWeek && DateTime.IsLeapYear(year))
            {
                actualWeek = 54;
            }
            int resultWeek = tc.GetWeekOfYear(dt, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);

            Assert.Equal(resultWeek, actualWeek);
        }
        public void NegTest3()
        {
            System.Globalization.Calendar tc = new TaiwanCalendar();
            Random rand = new Random(-55);
            int year = rand.Next(tc.MinSupportedDateTime.Year, tc.MaxSupportedDateTime.Year - 1911);
            int month = rand.Next(1, 12);
            int day;
            if (tc.IsLeapYear(year))
            {
                day = rand.Next(1, _DAYS_PER_MONTHS_IN_LEAP_YEAR[month] + 1);
            }
            else
            {
                day = rand.Next(1, _DAYS_PER_MONTHS_IN_NO_LEAP_YEAR[month] + 1);
            }

            DateTime dt = new DateTime(year, month, day);

            Assert.Throws<ArgumentOutOfRangeException>(() =>
            {
                tc.GetWeekOfYear(dt, (CalendarWeekRule)3, DayOfWeek.Sunday);
            });

            Assert.Throws<ArgumentOutOfRangeException>(() =>
            {
                tc.GetWeekOfYear(dt, (CalendarWeekRule)(-1), DayOfWeek.Sunday);
            });
        }
        public void NegTest1()
        {
            System.Globalization.Calendar tc = new TaiwanCalendar();
            Random rand = new Random(-55);
            DateTime dt = tc.MinSupportedDateTime;
            dt = dt.AddYears(rand.Next(-1911, -1));

            Assert.Throws<ArgumentOutOfRangeException>(() =>
            {
                tc.GetWeekOfYear(dt, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);
            });
        }