[Python-checkins] CVS: python/nondist/sandbox/datetime test_cdatetime.py,1.2,1.3

Fred L. Drake fdrake@users.sourceforge.net
Tue, 05 Mar 2002 21:55:02 -0800


Update of /cvsroot/python/python/nondist/sandbox/datetime
In directory usw-pr-cvs1:/tmp/cvs-serv15991

Modified Files:
	test_cdatetime.py 
Log Message:
Add the tests for isocalendar(), isoformat(), isoweekday(), and weekday(),
but comment out the parts that use a timedelta object since that doesnt

Index: test_cdatetime.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/test_cdatetime.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** test_cdatetime.py	6 Mar 2002 04:36:26 -0000	1.2
--- test_cdatetime.py	6 Mar 2002 05:55:00 -0000	1.3
***************
*** 35,38 ****
--- 35,94 ----
          self.assertEqual(dt.microsecond, 8000)
  
+     def test_isocalendar(self):
+         # Check examples from
+         # http://www.phys.uu.nl/~vgent/calendar/isocalendar.htm
+         for i in range(7):
+             d = self.theclass(2003, 12, 22+i)
+             self.assertEqual(d.isocalendar(), (2003, 52, i+1))
+ ##             d = self.theclass(2003, 12, 29) + timedelta(i)
+ ##             self.assertEqual(d.isocalendar(), (2004, 1, i+1))
+             d = self.theclass(2004, 1, 5+i)
+             self.assertEqual(d.isocalendar(), (2004, 2, i+1))
+             d = self.theclass(2009, 12, 21+i)
+             self.assertEqual(d.isocalendar(), (2009, 52, i+1))
+ ##             d = self.theclass(2009, 12, 28) + timedelta(i)
+ ##             self.assertEqual(d.isocalendar(), (2009, 53, i+1))
+             d = self.theclass(2010, 1, 4+i)
+             self.assertEqual(d.isocalendar(), (2010, 1, i+1))
+ 
+     def test_iso_long_years(self):
+         # Calculate long ISO years and compare to table from
+         # http://www.phys.uu.nl/~vgent/calendar/isocalendar.htm
+         ISO_LONG_YEARS_TABLE = """
+               4   32   60   88
+               9   37   65   93
+              15   43   71   99
+              20   48   76
+              26   54   82
+ 
+             105  133  161  189
+             111  139  167  195
+             116  144  172
+             122  150  178
+             128  156  184
+ 
+             201  229  257  285
+             207  235  263  291
+             212  240  268  296
+             218  246  274
+             224  252  280
+ 
+             303  331  359  387
+             308  336  364  392
+             314  342  370  398
+             320  348  376
+             325  353  381
+         """
+         iso_long_years = map(int, ISO_LONG_YEARS_TABLE.split())
+         iso_long_years.sort()
+         L = []
+         for i in range(400):
+             d = self.theclass(2000+i, 12, 31)
+             d1 = self.theclass(1600+i, 12, 31)
+             self.assertEqual(d.isocalendar()[1:], d1.isocalendar()[1:])
+             if d.isocalendar()[1] == 53:
+                 L.append(i)
+         self.assertEqual(L, iso_long_years)
+ 
      def test_isoformat(self):
          t = self.theclass(2, 3, 2, 4, 5, 1, 123)
***************
*** 40,43 ****
--- 96,108 ----
          self.assertEqual(t.isoformat('T'), "0002-03-02T04:05:01.000123")
          self.assertEqual(t.isoformat(' '), "0002-03-02 04:05:01.000123")
+ 
+     def test_weekday(self):
+         for i in range(7):
+             # March 4, 2002 is a Monday
+             self.assertEqual(self.theclass(2002, 3, 4+i).weekday(), i)
+             self.assertEqual(self.theclass(2002, 3, 4+i).isoweekday(), i+1)
+             # January 2, 1956 is a Monday
+             self.assertEqual(self.theclass(1956, 1, 2+i).weekday(), i)
+             self.assertEqual(self.theclass(1956, 1, 2+i).isoweekday(), i+1)