예제 #1
0
 def test_period_dtype(self):
     for dtype in [
             'period[D]', 'period[3M]', 'period[U]', 'Period[D]',
             'Period[3M]', 'Period[U]'
     ]:
         self.assertIs(pandas_dtype(dtype), PeriodDtype(dtype))
         self.assertEqual(pandas_dtype(dtype), PeriodDtype(dtype))
         self.assertEqual(pandas_dtype(dtype), dtype)
예제 #2
0
파일: test_cast.py 프로젝트: yz3007/pandas
    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)
예제 #3
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)
예제 #4
0
파일: test_common.py 프로젝트: zmyer/pandas
def test_dtype_equal_strict():

    # we are strict on kind equality
    for dtype in [np.int8, np.int16, np.int32]:
        assert not is_dtype_equal(np.int64, dtype)

    for dtype in [np.float32]:
        assert not is_dtype_equal(np.float64, dtype)

    # strict w.r.t. PeriodDtype
    assert not is_dtype_equal(PeriodDtype('D'),
                              PeriodDtype('2D'))

    # strict w.r.t. datetime64
    assert not is_dtype_equal(
        pandas_dtype('datetime64[ns, US/Eastern]'),
        pandas_dtype('datetime64[ns, CET]'))
예제 #5
0
    def test_construction(self):
        with tm.assertRaises(ValueError):
            PeriodDtype('xx')

        for s in ['period[D]', 'Period[D]', 'D']:
            dt = PeriodDtype(s)
            self.assertEqual(dt.freq, pd.tseries.offsets.Day())
            self.assertTrue(is_period_dtype(dt))

        for s in ['period[3D]', 'Period[3D]', '3D']:
            dt = PeriodDtype(s)
            self.assertEqual(dt.freq, pd.tseries.offsets.Day(3))
            self.assertTrue(is_period_dtype(dt))

        for s in ['period[26H]', 'Period[26H]', '26H',
                  'period[1D2H]', 'Period[1D2H]', '1D2H']:
            dt = PeriodDtype(s)
            self.assertEqual(dt.freq, pd.tseries.offsets.Hour(26))
            self.assertTrue(is_period_dtype(dt))
예제 #6
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')
예제 #7
0
    def test_equality(self):
        self.assertTrue(is_dtype_equal(self.dtype, 'period[D]'))
        self.assertTrue(is_dtype_equal(self.dtype, PeriodDtype('D')))
        self.assertTrue(is_dtype_equal(self.dtype, PeriodDtype('D')))
        self.assertTrue(is_dtype_equal(PeriodDtype('D'), PeriodDtype('D')))

        self.assertFalse(is_dtype_equal(self.dtype, 'D'))
        self.assertFalse(is_dtype_equal(PeriodDtype('D'), PeriodDtype('2D')))
예제 #8
0
    def test_is_dtype(self):
        self.assertTrue(PeriodDtype.is_dtype(self.dtype))
        self.assertTrue(PeriodDtype.is_dtype('period[D]'))
        self.assertTrue(PeriodDtype.is_dtype('period[3D]'))
        self.assertTrue(PeriodDtype.is_dtype(PeriodDtype('3D')))
        self.assertTrue(PeriodDtype.is_dtype('period[U]'))
        self.assertTrue(PeriodDtype.is_dtype('period[S]'))
        self.assertTrue(PeriodDtype.is_dtype(PeriodDtype('U')))
        self.assertTrue(PeriodDtype.is_dtype(PeriodDtype('S')))

        self.assertFalse(PeriodDtype.is_dtype('D'))
        self.assertFalse(PeriodDtype.is_dtype('3D'))
        self.assertFalse(PeriodDtype.is_dtype('U'))
        self.assertFalse(PeriodDtype.is_dtype('S'))
        self.assertFalse(PeriodDtype.is_dtype('foo'))
        self.assertFalse(PeriodDtype.is_dtype(np.object_))
        self.assertFalse(PeriodDtype.is_dtype(np.int64))
        self.assertFalse(PeriodDtype.is_dtype(np.float64))
예제 #9
0
    def test_construction_from_string(self):
        result = PeriodDtype('period[D]')
        self.assertTrue(is_dtype_equal(self.dtype, result))
        result = PeriodDtype.construct_from_string('period[D]')
        self.assertTrue(is_dtype_equal(self.dtype, result))
        with tm.assertRaises(TypeError):
            PeriodDtype.construct_from_string('foo')
        with tm.assertRaises(TypeError):
            PeriodDtype.construct_from_string('period[foo]')
        with tm.assertRaises(TypeError):
            PeriodDtype.construct_from_string('foo[D]')

        with tm.assertRaises(TypeError):
            PeriodDtype.construct_from_string('datetime64[ns]')
        with tm.assertRaises(TypeError):
            PeriodDtype.construct_from_string('datetime64[ns, US/Eastern]')
예제 #10
0
 def test_coerce_to_dtype(self):
     self.assertEqual(_coerce_to_dtype('period[D]'),
                      PeriodDtype('period[D]'))
     self.assertEqual(_coerce_to_dtype('period[3M]'),
                      PeriodDtype('period[3M]'))
예제 #11
0
    def test_identity(self):
        self.assertEqual(PeriodDtype('period[D]'), PeriodDtype('period[D]'))
        self.assertIs(PeriodDtype('period[D]'), PeriodDtype('period[D]'))

        self.assertEqual(PeriodDtype('period[3D]'), PeriodDtype('period[3D]'))
        self.assertIs(PeriodDtype('period[3D]'), PeriodDtype('period[3D]'))

        self.assertEqual(PeriodDtype('period[1S1U]'),
                         PeriodDtype('period[1000001U]'))
        self.assertIs(PeriodDtype('period[1S1U]'),
                      PeriodDtype('period[1000001U]'))
예제 #12
0
    def test_subclass(self):
        a = PeriodDtype('period[D]')
        b = PeriodDtype('period[3D]')

        self.assertTrue(issubclass(type(a), type(a)))
        self.assertTrue(issubclass(type(a), type(b)))
예제 #13
0
 def test_not_string(self):
     # though PeriodDtype has object kind, it cannot be string
     self.assertFalse(is_string_dtype(PeriodDtype('D')))
예제 #14
0
    def test_is_dtype(self):
        self.assertTrue(PeriodDtype.is_dtype(self.dtype))
        self.assertTrue(PeriodDtype.is_dtype('period[D]'))
        self.assertTrue(PeriodDtype.is_dtype('period[3D]'))
        self.assertTrue(PeriodDtype.is_dtype(PeriodDtype('3D')))
        self.assertTrue(PeriodDtype.is_dtype('period[U]'))
        self.assertTrue(PeriodDtype.is_dtype('period[S]'))
        self.assertTrue(PeriodDtype.is_dtype(PeriodDtype('U')))
        self.assertTrue(PeriodDtype.is_dtype(PeriodDtype('S')))

        self.assertFalse(PeriodDtype.is_dtype('D'))
        self.assertFalse(PeriodDtype.is_dtype('3D'))
        self.assertFalse(PeriodDtype.is_dtype('U'))
        self.assertFalse(PeriodDtype.is_dtype('S'))
        self.assertFalse(PeriodDtype.is_dtype('foo'))
        self.assertFalse(PeriodDtype.is_dtype(np.object_))
        self.assertFalse(PeriodDtype.is_dtype(np.int64))
        self.assertFalse(PeriodDtype.is_dtype(np.float64))
예제 #15
0
    def test_construction_from_string(self):
        result = PeriodDtype('period[D]')
        self.assertTrue(is_dtype_equal(self.dtype, result))
        result = PeriodDtype.construct_from_string('period[D]')
        self.assertTrue(is_dtype_equal(self.dtype, result))
        with tm.assertRaises(TypeError):
            PeriodDtype.construct_from_string('foo')
        with tm.assertRaises(TypeError):
            PeriodDtype.construct_from_string('period[foo]')
        with tm.assertRaises(TypeError):
            PeriodDtype.construct_from_string('foo[D]')

        with tm.assertRaises(TypeError):
            PeriodDtype.construct_from_string('datetime64[ns]')
        with tm.assertRaises(TypeError):
            PeriodDtype.construct_from_string('datetime64[ns, US/Eastern]')
예제 #16
0
파일: test_common.py 프로젝트: zmyer/pandas
    def test_categorical_dtype(self):
        self.assertEqual(pandas_dtype('category'), CategoricalDtype())

    def test_period_dtype(self):
        for dtype in ['period[D]', 'period[3M]', 'period[U]',
                      'Period[D]', 'Period[3M]', 'Period[U]']:
            self.assertIs(pandas_dtype(dtype), PeriodDtype(dtype))
            self.assertEqual(pandas_dtype(dtype), PeriodDtype(dtype))
            self.assertEqual(pandas_dtype(dtype), dtype)


dtypes = dict(datetime_tz=pandas_dtype('datetime64[ns, US/Eastern]'),
              datetime=pandas_dtype('datetime64[ns]'),
              timedelta=pandas_dtype('timedelta64[ns]'),
              period=PeriodDtype('D'),
              integer=np.dtype(np.int64),
              float=np.dtype(np.float64),
              object=np.dtype(np.object),
              category=pandas_dtype('category'))


@pytest.mark.parametrize('name1,dtype1',
                         list(dtypes.items()),
                         ids=lambda x: str(x))
@pytest.mark.parametrize('name2,dtype2',
                         list(dtypes.items()),
                         ids=lambda x: str(x))
def test_dtype_equal(name1, dtype1, name2, dtype2):

    # match equal to self, but not equal to other
예제 #17
0
 def test_empty(self):
     dt = PeriodDtype()
     with tm.assertRaises(AttributeError):
         str(dt)
예제 #18
0
 def dtype(self):
     return PeriodDtype.construct_from_string(self.freq)
예제 #19
0
 def dtype(self):
     return PeriodDtype.construct_from_string(self.freq)
예제 #20
0
 def setUp(self):
     self.dtype = PeriodDtype('D')