Пример #1
0
 def test_attributes(self):
     test = dt(2019)
     self.assertEqual(test.year, 2019)
     test = dt(2019, 9, 18, 23)
     self.assertEqual(test.year, 2019)
     self.assertEqual(test.month, 9)
     self.assertEqual(test.day, 18)
     self.assertEqual(test.hour, 23)
Пример #2
0
 def test_contains(self):
     r1 = dt_range(dt(2010), dt(2019))
     self.assertFalse(r1.contains(dt_range('2007-2009')))
     self.assertFalse(r1.contains(dt_range('2009-2011')))
     self.assertTrue(r1.contains(dt_range('2011-2018')))
     self.assertTrue(r1.contains(dt_range('2011-2019')))
     self.assertFalse(r1.contains(dt_range('2009-2021')))
     self.assertFalse(r1.contains(dt_range('2015-2021')))
     self.assertFalse(r1.contains(dt_range('2020-2021')))
Пример #3
0
    def test_overlaps(self):
        r1 = dt_range(dt(2010), dt(2019))
        self.assertFalse(r1.overlaps(dt_range('2007-2009')))
        self.assertTrue(r1.overlaps(dt_range('2009-2011')))
        self.assertTrue(r1.overlaps(dt_range('2011-2018')))
        self.assertTrue(r1.overlaps(dt_range('2011-2019')))
        self.assertTrue(r1.overlaps(dt_range('2009-2021')))
        self.assertTrue(r1.overlaps(dt_range('2015-2021')))
        self.assertFalse(r1.overlaps(dt_range('2020-2021')))

        self.assertFalse(r1 in dt_range('2007-2009'))
        self.assertTrue(r1 in dt_range('2009-2011'))
        self.assertTrue(r1 in dt_range('2011-2019'))
Пример #4
0
 def test_is_static(self):
     dtr = dt_range('19800101-19901231')
     dt0 = dt('2019-09-18')
     self.assertTrue(FXDateMin.is_static)
     self.assertTrue(FXDateMax.is_static)
     self.assertTrue(FXDateRange.is_static)
     self.assertFalse(dt0.is_static)
     self.assertFalse(dtr.is_static)
Пример #5
0
 def test_incr_decr(self):
     test = dt(2019)
     args = (test.lower, test.precision)
     self.assertEqual(test.increment(*args), datetime.datetime(2020, 1, 1))
     self.assertEqual(test.decrement(*args), datetime.datetime(2018, 1, 1))
     test = dt(2019, 1)
     args = (test.lower, test.precision)
     self.assertEqual(test.increment(*args), datetime.datetime(2019, 2, 1))
     self.assertEqual(test.decrement(*args), datetime.datetime(2018, 12, 1))
     # leap year
     test = dt(2020, 2, 28)
     args = (test.lower, test.precision)
     self.assertEqual(test.increment(*args), datetime.datetime(2020, 2, 29))
     test = dt(2020, 3, 1, 0)
     args = (test.lower, test.precision)
     self.assertEqual(test.decrement(*args),
                      datetime.datetime(2020, 2, 29, 23))
Пример #6
0
 def test_input_range_parsing(self):
     dtr1 = dt_range('20190101', '20190131')
     dtr2 = dt_range('20190201', '20190228')
     dtr3 = dt_range('20190301', '20190331')
     self.assertEqual(dt_range.from_contiguous_span(dtr1, dtr2, dtr3),
                      dt_range(dt(2019, 1, 1), dt(2019, 3, 31)))
     self.assertEqual(dt_range.from_contiguous_span(dtr3, dtr1, dtr2),
                      dt_range(dt(2019, 1, 1), dt(2019, 3, 31)))
     with self.assertRaises(ValueError):
         _ = dt_range.from_contiguous_span(dtr3, dtr1)
     with self.assertRaises(ValueError):
         _ = dt_range.from_contiguous_span(dtr1,
                                           dt_range('20190214', '20190215'))
     with self.assertRaises(ValueError):
         _ = dt_range.from_contiguous_span(dtr1, dtr2, dtr3,
                                           dt_range('20190214', '20190215'))
     with self.assertRaises(ValueError):
         _ = dt_range.from_contiguous_span(dtr3, dtr1,
                                           dt_range('20181214', '20190215'),
                                           dtr2)
Пример #7
0
 def test_minmax(self):
     test = [
         dt(2019, 2),
         dt(2019, 9),
         dt(2018),
         dt(2019),
         dt(2019, 1, 1, 12)
     ]
     self.assertEqual(max(test), dt(2019, 9))
     self.assertEqual(min(test), dt(2018))
Пример #8
0
 def test_string_parsing(self):
     self.assertEqual(dt('2019'), datetime.datetime(2019, 1, 1))
     self.assertEqual(dt('2019').precision, 1)
     self.assertEqual(dt('2019091814'), datetime.datetime(2019, 9, 18, 14))
     self.assertEqual(dt('2019091814').precision, 4)
     self.assertEqual(dt('2019-09-18'), datetime.datetime(2019, 9, 18))
     self.assertEqual(dt('2019-09-18').precision, 3)
Пример #9
0
 def test_contain(self):
     dtr = dt_range('19800101-19901231')
     dt0 = dt('2019-09-18')
     self.assertTrue(dtr in FXDateRange)
     self.assertTrue(dt0 in FXDateRange)
     self.assertTrue(FXDateRange.contains(dtr))
     self.assertTrue(FXDateRange.contains(dt0))
     self.assertTrue(FXDateRange.overlaps(dtr))
     self.assertTrue(FXDateRange.overlaps(dt0))
     self.assertFalse(dtr.contains(FXDateRange))
     self.assertTrue(dtr.overlaps(FXDateRange))
     with self.assertRaises(FXDateException):
         _ = (dtr.intersection(FXDateRange))
     with self.assertRaises(FXDateException):
         _ = (FXDateRange.intersection(dtr))
Пример #10
0
 def test_span(self):
     dtr1 = dt_range('20190101', '20190131')
     dtr2 = dt_range('20190201', '20190228')
     dt0 = dt('2019-09-18')
     self.assertEqual(dt_range.from_contiguous_span(FXDateRange),
                      FXDateRange)
     with self.assertRaises(FXDateException):
         _ = dt_range.from_contiguous_span(FXDateRange, FXDateRange)
     with self.assertRaises(FXDateException):
         _ = dt_range.from_contiguous_span(dtr1, FXDateRange, dtr2)
     with self.assertRaises(FXDateException):
         _ = dt_range.from_contiguous_span(dtr1, dtr2, FXDateRange)
     with self.assertRaises(FXDateException):
         _ = dt_range.from_date_span(FXDateMin, FXDateMax)
     with self.assertRaises(FXDateException):
         _ = dt_range.from_date_span(dt0, FXDateMax)
Пример #11
0
 def test_compare(self):
     dtr = dt_range('19800101-19901231')
     dt0 = dt('2019-09-18')
     with self.assertRaises(FXDateException):
         _ = (dt0 > FXDateMin)
     with self.assertRaises(FXDateException):
         _ = (dt0 <= FXDateMax)
     with self.assertRaises(FXDateException):
         _ = (dtr > FXDateMin)
     with self.assertRaises(FXDateException):
         _ = (dtr <= FXDateMax)
     with self.assertRaises(FXDateException):
         _ = (FXDateMin <= FXDateMax)
     with self.assertRaises(FXDateException):
         _ = (dtr <= FXDateRange)
     self.assertTrue(dtr != FXDateRange)
     self.assertTrue(dt0 != FXDateMax)
Пример #12
0
 def test_init(self):
     self.assertEqual(dt(2019), datetime.datetime(2019, 1, 1))
     self.assertEqual(dt(2019).precision, 1)
     self.assertEqual(dt(2019, 9, 18), datetime.datetime(2019, 9, 18))
     self.assertEqual(dt(2019, 9, 18).precision, 3)
Пример #13
0
 def test_input_list_parsing(self):
     self.assertEqual(
         dt_range.from_date_span(dt(2015), dt(2010), dt(2019), dt(2017)),
         dt_range(2010, 2019))
     self.assertEqual(dt_range(['20100201', '20190918']),
                      dt_range('20100201', '20190918'))
Пример #14
0
 def test_init_coerce(self):
     self.assertEqual(dt(datetime.datetime(2019, 1, 1), 1), dt(2019))
     self.assertEqual(dt(datetime.datetime(2019, 5, 1), 2), dt(2019, 5))
     self.assertEqual(dt(datetime.datetime(2019, 5, 18), 2), dt(2019, 5))
Пример #15
0
 def test_comparisons_coerce(self):
     self.assertTrue(dt(2018) <= datetime.date(2019, 1, 1))
     self.assertTrue(dt(2019, 9) >= datetime.date(2018, 12, 25))
Пример #16
0
 def test_comparisons_parent(self):
     self.assertTrue(dt(2018) < datetime.datetime(2019, 1, 1))
     self.assertTrue(dt(2019, 9) > datetime.datetime(2018, 12, 25, 23))
Пример #17
0
 def test_comparisons_same(self):
     self.assertTrue(dt(2018) < dt(2019))
     self.assertTrue(dt(2019, 9) > dt(2018))
     self.assertTrue(dt(2019, 9) > dt(2019))
     self.assertTrue(dt(2019, 1) >= dt(2019))
     self.assertTrue(dt(2019, 1, 1, 12) <= dt(2019, 2))
Пример #18
0
 def test_string_output_iso(self):
     self.assertEqual(dt('1850').isoformat(), '1850-01-01 00:00:00')
Пример #19
0
 def test_string_output_pre1900(self):
     self.assertEqual('{}'.format(dt('1850')), '1850')
     self.assertEqual(dt('185009182359').format(precision=4), '1850091823')
Пример #20
0
 def test_string_output(self):
     self.assertEqual('{}'.format(dt('2019')), '2019')
     self.assertEqual('{}'.format(dt('20190918')), '20190918')
Пример #21
0
 def test_init_epoch(self):
     # Make sure we're not doing platform-dependent stuff that breaks
     # outside of 1970-2038
     self.assertEqual(dt(1850), datetime.datetime(1850, 1, 1))
     self.assertEqual(dt(1850).precision, 1)
     self.assertEqual(dt(2112, 9, 18), datetime.datetime(2112, 9, 18))
     self.assertEqual(dt(2112, 9, 18).precision, 3)
     self.assertEqual(dt(datetime.datetime(1850, 1, 1), 1), dt(1850))
     self.assertEqual(dt(datetime.datetime(1850, 5, 1), 2), dt(1850, 5))
     self.assertEqual(dt(datetime.datetime(1850, 5, 18), 2), dt(1850, 5))
     self.assertEqual(dt(datetime.datetime(2112, 1, 1), 1), dt(2112))
     self.assertEqual(dt(datetime.datetime(2112, 5, 1), 2), dt(2112, 5))
     self.assertEqual(dt(datetime.datetime(2112, 5, 18), 2), dt(2112, 5))
Пример #22
0
 def test_input_string_parsing(self):
     self.assertEqual(dt_range(2010, 2019), dt_range(dt(2010), dt(2019)))
     self.assertEqual(dt_range('20100201', '20190918'),
                      dt_range(dt(2010, 2, 1), dt(2019, 9, 18)))