示例#1
0
 def test_is_dtype(self):
     self.assertTrue(DatetimeTZDtype.is_dtype(self.dtype))
     self.assertTrue(DatetimeTZDtype.is_dtype('datetime64[ns, US/Eastern]'))
     self.assertFalse(DatetimeTZDtype.is_dtype('foo'))
     self.assertTrue(DatetimeTZDtype.is_dtype(DatetimeTZDtype(
         'ns', 'US/Pacific')))
     self.assertFalse(DatetimeTZDtype.is_dtype(np.float64))
示例#2
0
 def test_datetimetz_dtype(self):
     for dtype in ['datetime64[ns, US/Eastern]',
                   'datetime64[ns, Asia/Tokyo]',
                   'datetime64[ns, UTC]']:
         self.assertIs(pandas_dtype(dtype), DatetimeTZDtype(dtype))
         self.assertEqual(pandas_dtype(dtype), DatetimeTZDtype(dtype))
         self.assertEqual(pandas_dtype(dtype), dtype)
示例#3
0
 def test_construction_from_string(self):
     result = DatetimeTZDtype('datetime64[ns, US/Eastern]')
     self.assertTrue(is_dtype_equal(self.dtype, result))
     result = DatetimeTZDtype.construct_from_string(
         'datetime64[ns, US/Eastern]')
     self.assertTrue(is_dtype_equal(self.dtype, result))
     self.assertRaises(TypeError,
                       lambda: DatetimeTZDtype.construct_from_string('foo'))
示例#4
0
 def test_parser(self):
     # pr #11245
     for tz, constructor in product(('UTC', 'US/Eastern'),
                                    ('M8', 'datetime64')):
         self.assertEqual(
             DatetimeTZDtype('%s[ns, %s]' % (constructor, tz)),
             DatetimeTZDtype('ns', tz),
         )
示例#5
0
 def test_construction_from_string(self):
     result = DatetimeTZDtype('datetime64[ns, US/Eastern]')
     self.assertTrue(is_dtype_equal(self.dtype, result))
     result = DatetimeTZDtype.construct_from_string(
         'datetime64[ns, US/Eastern]')
     self.assertTrue(is_dtype_equal(self.dtype, result))
     self.assertRaises(TypeError,
                       lambda: DatetimeTZDtype.construct_from_string('foo'))
示例#6
0
    def test_datetimetz_dtype(self):
        dtype = DatetimeTZDtype(unit='ns', tz='US/Eastern')
        self.assertEqual(_find_common_type([dtype, dtype]),
                         'datetime64[ns, US/Eastern]')

        for dtype2 in [DatetimeTZDtype(unit='ns', tz='Asia/Tokyo'),
                       np.dtype('datetime64[ns]'), np.object, np.int64]:
            self.assertEqual(_find_common_type([dtype, dtype2]), np.object)
            self.assertEqual(_find_common_type([dtype2, dtype]), np.object)
示例#7
0
 def test_hash_vs_equality(self):
     # make sure that we satisfy is semantics
     dtype = self.dtype
     dtype2 = DatetimeTZDtype('ns', 'US/Eastern')
     dtype3 = DatetimeTZDtype(dtype2)
     self.assertTrue(dtype == dtype2)
     self.assertTrue(dtype2 == dtype)
     self.assertTrue(dtype3 == dtype)
     self.assertTrue(dtype is dtype2)
     self.assertTrue(dtype2 is dtype)
     self.assertTrue(dtype3 is dtype)
     self.assertTrue(hash(dtype) == hash(dtype2))
     self.assertTrue(hash(dtype) == hash(dtype3))
示例#8
0
    def test_equality(self):
        self.assertTrue(
            is_dtype_equal(self.dtype, 'datetime64[ns, US/Eastern]'))
        self.assertTrue(
            is_dtype_equal(self.dtype, DatetimeTZDtype('ns', 'US/Eastern')))
        self.assertFalse(is_dtype_equal(self.dtype, 'foo'))
        self.assertFalse(
            is_dtype_equal(self.dtype, DatetimeTZDtype('ns', 'CET')))
        self.assertFalse(
            is_dtype_equal(DatetimeTZDtype('ns', 'US/Eastern'),
                           DatetimeTZDtype('ns', 'US/Pacific')))

        # numpy compat
        self.assertTrue(is_dtype_equal(np.dtype("M8[ns]"), "datetime64[ns]"))
示例#9
0
    def test_datetime_with_tz_dtypes(self):
        tzframe = DataFrame({'A': date_range('20130101', periods=3),
                             'B': date_range('20130101', periods=3,
                                             tz='US/Eastern'),
                             'C': date_range('20130101', periods=3, tz='CET')})
        tzframe.iloc[1, 1] = pd.NaT
        tzframe.iloc[1, 2] = pd.NaT
        result = tzframe.dtypes.sort_index()
        expected = Series([np.dtype('datetime64[ns]'),
                           DatetimeTZDtype('datetime64[ns, US/Eastern]'),
                           DatetimeTZDtype('datetime64[ns, CET]')],
                          ['A', 'B', 'C'])

        assert_series_equal(result, expected)
示例#10
0
def test_pandas_dtype():

    assert pandas_dtype('datetime64[ns, US/Eastern]') == DatetimeTZDtype(
        'datetime64[ns, US/Eastern]')
    assert pandas_dtype('category') == CategoricalDtype()
    for dtype in ['M8[ns]', 'm8[ns]', 'object', 'float64', 'int64']:
        assert pandas_dtype(dtype) == np.dtype(dtype)
示例#11
0
    def test_period_dtype(self):
        dtype = PeriodDtype(freq='D')
        self.assertEqual(_find_common_type([dtype, dtype]), 'period[D]')

        for dtype2 in [DatetimeTZDtype(unit='ns', tz='Asia/Tokyo'),
                       PeriodDtype(freq='2D'), PeriodDtype(freq='H'),
                       np.dtype('datetime64[ns]'), np.object, np.int64]:
            self.assertEqual(_find_common_type([dtype, dtype2]), np.object)
            self.assertEqual(_find_common_type([dtype2, dtype]), np.object)
示例#12
0
 def test_is_dtype(self):
     self.assertFalse(DatetimeTZDtype.is_dtype(None))
     self.assertTrue(DatetimeTZDtype.is_dtype(self.dtype))
     self.assertTrue(DatetimeTZDtype.is_dtype('datetime64[ns, US/Eastern]'))
     self.assertFalse(DatetimeTZDtype.is_dtype('foo'))
     self.assertTrue(DatetimeTZDtype.is_dtype(DatetimeTZDtype(
         'ns', 'US/Pacific')))
     self.assertFalse(DatetimeTZDtype.is_dtype(np.float64))
示例#13
0
 def test_as_json_table_type_date_dtypes(self):
     # TODO: datedate.date? datetime.time?
     dates = [
         np.datetime64,
         np.dtype("<M8[ns]"),
         PeriodDtype(),
         DatetimeTZDtype('ns', 'US/Central')
     ]
     for t in dates:
         self.assertEqual(as_json_table_type(t), 'datetime')
示例#14
0
def test_dtype_equal():
    assert is_dtype_equal(np.int64, np.int64)
    assert not is_dtype_equal(np.int64, np.float64)

    p1 = PeriodDtype('D')
    p2 = PeriodDtype('D')
    assert is_dtype_equal(p1, p2)
    assert not is_dtype_equal(np.int64, p1)

    p3 = PeriodDtype('2D')
    assert not is_dtype_equal(p1, p3)

    assert not DatetimeTZDtype.is_dtype(np.int64)
    assert not PeriodDtype.is_dtype(np.int64)
示例#15
0
def test_na_value_for_dtype():
    for dtype in [np.dtype('M8[ns]'), np.dtype('m8[ns]'),
                  DatetimeTZDtype('datetime64[ns, US/Eastern]')]:
        assert na_value_for_dtype(dtype) is NaT

    for dtype in ['u1', 'u2', 'u4', 'u8',
                  'i1', 'i2', 'i4', 'i8']:
        assert na_value_for_dtype(np.dtype(dtype)) == 0

    for dtype in ['bool']:
        assert na_value_for_dtype(np.dtype(dtype)) is False

    for dtype in ['f2', 'f4', 'f8']:
        assert np.isnan(na_value_for_dtype(np.dtype(dtype)))

    for dtype in ['O']:
        assert np.isnan(na_value_for_dtype(np.dtype(dtype)))
示例#16
0
 def setUp(self):
     self.dtype = DatetimeTZDtype('ns', 'US/Eastern')
示例#17
0
 def test_empty(self):
     dt = DatetimeTZDtype()
     with tm.assertRaises(AttributeError):
         str(dt)
示例#18
0
 def test_construction(self):
     self.assertRaises(ValueError,
                       lambda: DatetimeTZDtype('ms', 'US/Eastern'))
示例#19
0
    def test_subclass(self):
        a = DatetimeTZDtype('datetime64[ns, US/Eastern]')
        b = DatetimeTZDtype('datetime64[ns, CET]')

        self.assertTrue(issubclass(type(a), type(a)))
        self.assertTrue(issubclass(type(a), type(b)))
示例#20
0
 def test_coerce_to_dtype(self):
     self.assertEqual(_coerce_to_dtype('datetime64[ns, US/Eastern]'),
                      DatetimeTZDtype('ns', 'US/Eastern'))
     self.assertEqual(_coerce_to_dtype('datetime64[ns, Asia/Tokyo]'),
                      DatetimeTZDtype('ns', 'Asia/Tokyo'))