[Python-checkins] python/dist/src/Lib/test test_calendar.py, 1.5, 1.6

doerwalter at users.sourceforge.net doerwalter at users.sourceforge.net
Fri Jul 2 15:00:23 EDT 2004


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8958/Lib/test

Modified Files:
	test_calendar.py 
Log Message:
Add tests that check the result of calendar.monthcalendar() for a set
of corner cases.


Index: test_calendar.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_calendar.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** test_calendar.py	1 May 2003 17:45:34 -0000	1.5
--- test_calendar.py	2 Jul 2004 19:00:09 -0000	1.6
***************
*** 55,60 ****
              self.assertEqual(len(d), 13)
  
  def test_main():
!     test_support.run_unittest(CalendarTestCase)
  
  if __name__ == "__main__":
--- 55,138 ----
              self.assertEqual(len(d), 13)
  
+ 
+ class MonthCalendarTestCase(unittest.TestCase):
+     def setUp(self):
+         self.oldfirstweekday = calendar.firstweekday()
+         calendar.setfirstweekday(self.firstweekday)
+ 
+     def tearDown(self):
+         calendar.setfirstweekday(self.oldfirstweekday)
+ 
+     def check_weeks(self, year, month, weeks):
+         cal = calendar.monthcalendar(year, month)
+         self.assertEqual(len(cal), len(weeks))
+         for i in xrange(len(weeks)):
+             self.assertEqual(weeks[i], sum(day != 0 for day in cal[i]))
+ 
+ 
+ class MondayTestCase(MonthCalendarTestCase):
+     firstweekday = calendar.MONDAY
+ 
+     def test_february(self):
+         # A 28-day february starting of monday (7+7+7+7 days)
+         self.check_weeks(1999, 2, (7, 7, 7, 7))
+ 
+         # A 28-day february starting of tuesday (6+7+7+7+1 days)
+         self.check_weeks(2005, 2, (6, 7, 7, 7, 1))
+ 
+         # A 28-day february starting of sunday (1+7+7+7+6 days)
+         self.check_weeks(1987, 2, (1, 7, 7, 7, 6))
+ 
+         # A 29-day february starting of monday (7+7+7+7+1 days)
+         self.check_weeks(1988, 2, (7, 7, 7, 7, 1))
+ 
+         # A 29-day february starting of tuesday (6+7+7+7+2 days)
+         self.check_weeks(1972, 2, (6, 7, 7, 7, 2))
+ 
+         # A 29-day february starting of sunday (1+7+7+7+7 days)
+         self.check_weeks(2004, 2, (1, 7, 7, 7, 7))
+ 
+     def test_april(self):
+         # A 30-day april starting of monday (7+7+7+7+2 days)
+         self.check_weeks(1935, 4, (7, 7, 7, 7, 2))
+ 
+         # A 30-day april starting of tuesday (6+7+7+7+3 days)
+         self.check_weeks(1975, 4, (6, 7, 7, 7, 3))
+ 
+         # A 30-day april starting of sunday (1+7+7+7+7+1 days)
+         self.check_weeks(1945, 4, (1, 7, 7, 7, 7, 1))
+ 
+         # A 30-day april starting of saturday (2+7+7+7+7 days)
+         self.check_weeks(1995, 4, (2, 7, 7, 7, 7))
+ 
+         # A 30-day april starting of friday (3+7+7+7+6 days)
+         self.check_weeks(1994, 4, (3, 7, 7, 7, 6))
+ 
+     def test_december(self):
+         # A 31-day december starting of monday (7+7+7+7+3 days)
+         self.check_weeks(1980, 12, (7, 7, 7, 7, 3))
+ 
+         # A 31-day december starting of tuesday (6+7+7+7+4 days)
+         self.check_weeks(1987, 12, (6, 7, 7, 7, 4))
+ 
+         # A 31-day december starting of sunday (1+7+7+7+7+2 days)
+         self.check_weeks(1968, 12, (1, 7, 7, 7, 7, 2))
+ 
+         # A 31-day december starting of thursday (4+7+7+7+6 days)
+         self.check_weeks(1988, 12, (4, 7, 7, 7, 6))
+ 
+         # A 31-day december starting of friday (3+7+7+7+7 days)
+         self.check_weeks(2017, 12, (3, 7, 7, 7, 7))
+ 
+         # A 31-day december starting of saturday (2+7+7+7+7+1 days)
+         self.check_weeks(2068, 12, (2, 7, 7, 7, 7, 1))
+ 
+ 
  def test_main():
!     test_support.run_unittest(
!         CalendarTestCase,
!         MondayTestCase
!     )
! 
  
  if __name__ == "__main__":




More information about the Python-checkins mailing list