def test_sign(self): """ Test the diff in both directions, validate they are the same and of opposite signs. """ d1 = datetime.datetime(2000, 1, 1, 0, 0, 0, 0) d2 = datetime.datetime(2000, 1, 1, 0, 0, 0, 1) # test 4 years apart self.assertTrue(datediff(d1,d2) < 0, "First date earlier than the second returns negative.") self.assertTrue(datediff(d2,d1) > 0, "Second date earlier than the first returns positive.") self.assertTrue(datediff(d2,d2) == 0, "First date equals the second returns 0.")
def test_units(self): """ A single difference, tested across different units """ d1 = datetime.datetime(2000, 1, 1) d2 = datetime.datetime(2004, 1, 1) # test 4 years apart self.assertEqual(datediff(d2, d1, units="microsecond"), 1E6*60*60*24*(365*4 + 1), "4 years (with leap year), in microseconds") self.assertEqual(datediff(d2, d1, units="microseconds"), 1E6*60*60*24*(365*4 + 1), "4 years (with leap year), in microseconds") self.assertEqual(datediff(d2, d1), 60*60*24*(365*4 + 1), "4 years (with leap year), in seconds (default)") self.assertEqual(datediff(d2, d1, units="second"), 60*60*24*(365*4 + 1), "4 years (with leap year), in seconds") self.assertEqual(datediff(d2, d1, units="seconds"), 60*60*24*(365*4 + 1), "4 years (with leap year), in seconds") self.assertEqual(datediff(d2, d1, units="minute"), 60*24*(365*4 + 1), "4 years (with leap year), in minutes") self.assertEqual(datediff(d2, d1, units="minutes"), 60*24*(365*4 + 1), "4 years (with leap year), in minutes") self.assertEqual(datediff(d2, d1, units="hour"), 24*(365*4 + 1), "4 years (with leap year), in hours") self.assertEqual(datediff(d2, d1, units="hours"), 24*(365*4 + 1), "4 years (with leap year), in hours") self.assertEqual(datediff(d2, d1, units="day"), 365*4 + 1, "4 years (with leap year), in days") self.assertEqual(datediff(d2, d1, units="days"), 365*4 + 1, "4 years (with leap year), in days") self.assertEqual(datediff(d2, d1, units="week"), (365*4 + 1)/7., "4 years (with leap year), in weeks") self.assertEqual(datediff(d2, d1, units="weeks"), (365*4 + 1)/7., "4 years (with leap year), in weeks")
def test_units(self): """ A single difference, tested across different units """ d1 = datetime.datetime(2000, 1, 1) d2 = datetime.datetime(2004, 1, 1) # test 4 years apart self.assertEqual(datediff(d2, d1, units="microsecond"), 1E6 * 60 * 60 * 24 * (365 * 4 + 1), "4 years (with leap year), in microseconds") self.assertEqual(datediff(d2, d1, units="microseconds"), 1E6 * 60 * 60 * 24 * (365 * 4 + 1), "4 years (with leap year), in microseconds") self.assertEqual(datediff(d2, d1), 60 * 60 * 24 * (365 * 4 + 1), "4 years (with leap year), in seconds (default)") self.assertEqual(datediff(d2, d1, units="second"), 60 * 60 * 24 * (365 * 4 + 1), "4 years (with leap year), in seconds") self.assertEqual(datediff(d2, d1, units="seconds"), 60 * 60 * 24 * (365 * 4 + 1), "4 years (with leap year), in seconds") self.assertEqual(datediff(d2, d1, units="minute"), 60 * 24 * (365 * 4 + 1), "4 years (with leap year), in minutes") self.assertEqual(datediff(d2, d1, units="minutes"), 60 * 24 * (365 * 4 + 1), "4 years (with leap year), in minutes") self.assertEqual(datediff(d2, d1, units="hour"), 24 * (365 * 4 + 1), "4 years (with leap year), in hours") self.assertEqual(datediff(d2, d1, units="hours"), 24 * (365 * 4 + 1), "4 years (with leap year), in hours") self.assertEqual(datediff(d2, d1, units="day"), 365 * 4 + 1, "4 years (with leap year), in days") self.assertEqual(datediff(d2, d1, units="days"), 365 * 4 + 1, "4 years (with leap year), in days") self.assertEqual(datediff(d2, d1, units="week"), (365 * 4 + 1) / 7., "4 years (with leap year), in weeks") self.assertEqual(datediff(d2, d1, units="weeks"), (365 * 4 + 1) / 7., "4 years (with leap year), in weeks")