self.assertEqual(datetime.MINYEAR, 1)
self.assertEqual(datetime.MAXYEAR, 9999)
+ def test_name_cleanup(self):
+ if '_Fast' not in str(self):
+ return
+ datetime = datetime_module
+ names = set(name for name in dir(datetime)
+ if not name.startswith('__') and not name.endswith('__'))
+ allowed = set(['MAXYEAR', 'MINYEAR', 'date', 'datetime',
+ 'datetime_CAPI', 'time', 'timedelta', 'timezone',
+ 'tzinfo'])
+ self.assertEqual(names - allowed, set([]))
+
+ def test_divide_and_round(self):
+ if '_Fast' in str(self):
+ return
+ dar = datetime_module._divide_and_round
+
+ self.assertEqual(dar(-10, -3), 3)
+ self.assertEqual(dar(5, -2), -2)
+
+ # four cases: (2 signs of a) x (2 signs of b)
+ self.assertEqual(dar(7, 3), 2)
+ self.assertEqual(dar(-7, 3), -2)
+ self.assertEqual(dar(7, -3), -2)
+ self.assertEqual(dar(-7, -3), 2)
+
+ # ties to even - eight cases:
+ # (2 signs of a) x (2 signs of b) x (even / odd quotient)
+ self.assertEqual(dar(10, 4), 2)
+ self.assertEqual(dar(-10, 4), -2)
+ self.assertEqual(dar(10, -4), -2)
+ self.assertEqual(dar(-10, -4), 2)
+
+ self.assertEqual(dar(6, 4), 2)
+ self.assertEqual(dar(-6, 4), -2)
+ self.assertEqual(dar(6, -4), -2)
+ self.assertEqual(dar(-6, -4), 2)
+
+
#############################################################################
# tzinfo tests