def test_precision(self): self.assertEqual(Timestamp(10000000) % 0.1, 0) self.assertEqual(Timestamp(10000000) % 0.05, 0) self.assertEqual(Timestamp(10000000) % 0.000005, 0) self.assertEqual(Timestamp(10000000) % Duration(0.1), 0) self.assertEqual(Timestamp(10000000) % Duration(0.05), 0) self.assertEqual(Timestamp(10000000) % Duration(0.000005), 0)
def test_str(self): self.assertEqual('Duration(1.234567)', str(Duration(1.234567))) self.assertEqual('Duration(-1.234567)', str(Duration(-1.234567))) self.assertEqual('Duration(-999999999.900000)', str(Duration(-999999999.9))) self.assertEqual('Duration(999999999)', str(Duration(999999999))) self.assertEqual('Duration(-999999999)', str(Duration(-999999999)))
def test_sort_order(self): self.assertEqual( [-63, Duration(-3), 2, 9, Duration(292.3), 500], sorted([9, 2, Duration(-3), Duration(292.3), -63, 500])) self.assertEqual( [4, 5, Duration(6), Duration(7), 8, 9], sorted([9, 8, Duration(7), Duration(6), 5, 4]))
def test_arithmetic(self): self.assertEqual(Duration(123) + 456, 579) self.assertEqual(456 + Duration(123), 579) self.assertEqual(Duration(123) * 456, 56088) self.assertEqual(456 * Duration(123), 56088) self.assertEqual(Duration(123) - 456, -333) self.assertEqual(456 - Duration(123), 333) self.assertEqual(-Duration(123), -123)
def __init__(self, gap_size): if gap_size <= 0: raise ValueError('The size parameter must be strictly positive.') self.gap_size = Duration.of(gap_size)
def __init__(self, size, period, offset=0): if size <= 0: raise ValueError('The size parameter must be strictly positive.') self.size = Duration.of(size) self.period = Duration.of(period) self.offset = Timestamp.of(offset) % size
def test_arithmetic(self): # Supported operations. self.assertEqual(Timestamp(123) + 456, 579) self.assertEqual(Timestamp(123) + Duration(456), 579) self.assertEqual(456 + Timestamp(123), 579) self.assertEqual(Duration(456) + Timestamp(123), 579) self.assertEqual(Timestamp(123) - 456, -333) self.assertEqual(Timestamp(123) - Duration(456), -333) self.assertEqual(Timestamp(1230) % 456, 318) self.assertEqual(Timestamp(1230) % Duration(456), 318) # Check that direct comparison of Timestamp and Duration is allowed. self.assertTrue(Duration(123) == Timestamp(123)) self.assertTrue(Timestamp(123) == Duration(123)) self.assertFalse(Duration(123) == Timestamp(1230)) self.assertFalse(Timestamp(123) == Duration(1230)) # Check return types. self.assertEqual((Timestamp(123) + 456).__class__, Timestamp) self.assertEqual((Timestamp(123) + Duration(456)).__class__, Timestamp) self.assertEqual((456 + Timestamp(123)).__class__, Timestamp) self.assertEqual((Duration(456) + Timestamp(123)).__class__, Timestamp) self.assertEqual((Timestamp(123) - 456).__class__, Timestamp) self.assertEqual((Timestamp(123) - Duration(456)).__class__, Timestamp) self.assertEqual((Timestamp(1230) % 456).__class__, Duration) self.assertEqual((Timestamp(1230) % Duration(456)).__class__, Duration) # Unsupported operations. with self.assertRaises(TypeError): self.assertEqual(Timestamp(123) * 456, 56088) with self.assertRaises(TypeError): self.assertEqual(Timestamp(123) * Duration(456), 56088) with self.assertRaises(TypeError): self.assertEqual(456 * Timestamp(123), 56088) with self.assertRaises(TypeError): self.assertEqual(Duration(456) * Timestamp(123), 56088) with self.assertRaises(TypeError): self.assertEqual(456 - Timestamp(123), 333) with self.assertRaises(TypeError): self.assertEqual(Duration(456) - Timestamp(123), 333) with self.assertRaises(TypeError): self.assertEqual(-Timestamp(123), -123) with self.assertRaises(TypeError): self.assertEqual(-Timestamp(123), -Duration(123)) with self.assertRaises(TypeError): self.assertEqual(1230 % Timestamp(456), 318) with self.assertRaises(TypeError): self.assertEqual(Duration(1230) % Timestamp(456), 318)
def test_of(self): interval = Timestamp(123) self.assertEqual(id(interval), id(Timestamp.of(interval))) self.assertEqual(interval, Timestamp.of(123.0)) with self.assertRaises(TypeError): Timestamp.of(Duration(10))
def test_precision(self): self.assertEqual(Duration(10000000) % 0.1, 0) self.assertEqual(Duration(10000000) % 0.05, 0) self.assertEqual(Duration(10000000) % 0.000005, 0)