[Python-checkins] CVS: python/nondist/sandbox/datetime datetime.py,1.47,1.48

Tim Peters tim_one@users.sourceforge.net
Mon, 04 Mar 2002 20:15:56 -0800


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

Modified Files:
	datetime.py 
Log Message:
timedelta.__init__():  Small simplification to handling of seconds;
repaired some incorrect asserts not triggered by the tests.


Index: datetime.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/datetime/datetime.py,v
retrieving revision 1.47
retrieving revision 1.48
diff -C2 -d -r1.47 -r1.48
*** datetime.py	5 Mar 2002 03:23:21 -0000	1.47
--- datetime.py	5 Mar 2002 04:15:53 -0000	1.48
***************
*** 330,343 ****
              daysecondsfrac, daysecondswhole = _math.modf(dayfrac * (24.*3600.))
              assert daysecondswhole == int(daysecondswhole)  # can't overflow
!             daysecondswhole = int(daysecondswhole)
              assert days == long(days)
              d = long(days)
          else:
!             daysecondsfrac, daysecondswhole = 0.0, 0
              d = days
          assert isinstance(daysecondsfrac, float)
-         assert isinstance(daysecondswhole, int)
-         assert 0 <= daysecondswhole < 24*3600
          assert isinstance(d, (int, long))
          # days isn't referenced again before redefinition
  
--- 330,342 ----
              daysecondsfrac, daysecondswhole = _math.modf(dayfrac * (24.*3600.))
              assert daysecondswhole == int(daysecondswhole)  # can't overflow
!             s = int(daysecondswhole)
              assert days == long(days)
              d = long(days)
          else:
!             daysecondsfrac = 0.0
              d = days
          assert isinstance(daysecondsfrac, float)
          assert isinstance(d, (int, long))
+         assert abs(s) <= 24 * 3600
          # days isn't referenced again before redefinition
  
***************
*** 352,359 ****
          days, seconds = divmod(seconds, 24*3600)
          d += days
!         s = int(seconds)    # can't overflow
!         s += daysecondswhole    # can't overflow
          assert isinstance(s, int)
!         assert 0 <= s < 2*24*3600
          # seconds isn't referenced again before redefinition
  
--- 351,357 ----
          days, seconds = divmod(seconds, 24*3600)
          d += days
!         s += int(seconds)    # can't overflow
          assert isinstance(s, int)
!         assert abs(s) <= 2 * 24 * 3600
          # seconds isn't referenced again before redefinition
  
***************
*** 376,379 ****
--- 374,378 ----
              s += int(seconds)   # can't overflow
              assert isinstance(s, int)
+             assert abs(s) <= 3 * 24 * 3600
          else:
              seconds, microseconds = divmod(microseconds, 1000000)
***************
*** 382,392 ****
              s += int(seconds)    # can't overflow
              assert isinstance(s, int)
              microseconds = float(microseconds)
              microseconds += usdouble
              microseconds = round(microseconds)
  
          # Just a little bit of carrying possible for microseconds and seconds.
          assert isinstance(microseconds, float)
-         assert 0 <= microseconds <= 3.1e6
          assert int(microseconds) == microseconds
          us = int(microseconds)
--- 381,393 ----
              s += int(seconds)    # can't overflow
              assert isinstance(s, int)
+             assert abs(s) <= 3 * 24 * 3600
              microseconds = float(microseconds)
              microseconds += usdouble
              microseconds = round(microseconds)
+         assert abs(s) <= 3 * 24 * 3600
+         assert abs(microseconds) <= 3.1e6
  
          # Just a little bit of carrying possible for microseconds and seconds.
          assert isinstance(microseconds, float)
          assert int(microseconds) == microseconds
          us = int(microseconds)