Example #1
0
    def test_astype(self):
        # GH 13149, GH 13209
        idx = TimedeltaIndex([1e14, "NaT", NaT, np.NaN], name="idx")

        result = idx.astype(object)
        expected = Index([Timedelta("1 days 03:46:40")] + [NaT] * 3,
                         dtype=object,
                         name="idx")
        tm.assert_index_equal(result, expected)

        with tm.assert_produces_warning(FutureWarning):
            result = idx.astype(int)
        expected = Int64Index([100000000000000] + [-9223372036854775808] * 3,
                              dtype=np.int64,
                              name="idx")
        tm.assert_index_equal(result, expected)

        result = idx.astype(str)
        expected = Index([str(x) for x in idx], name="idx")
        tm.assert_index_equal(result, expected)

        rng = timedelta_range("1 days", periods=10)
        with tm.assert_produces_warning(FutureWarning):
            result = rng.astype("i8")
        tm.assert_index_equal(result, Index(rng.asi8))
        tm.assert_numpy_array_equal(rng.asi8, result.values)
Example #2
0
def test_is_timedelta():
    assert (com.is_timedelta64_dtype('timedelta64'))
    assert (com.is_timedelta64_dtype('timedelta64[ns]'))
    assert (not com.is_timedelta64_ns_dtype('timedelta64'))
    assert (com.is_timedelta64_ns_dtype('timedelta64[ns]'))

    tdi = TimedeltaIndex([1e14, 2e14], dtype='timedelta64')
    assert (com.is_timedelta64_dtype(tdi))
    assert (com.is_timedelta64_ns_dtype(tdi))
    assert (com.is_timedelta64_ns_dtype(tdi.astype('timedelta64[ns]')))
    # Conversion to Int64Index:
    assert (not com.is_timedelta64_ns_dtype(tdi.astype('timedelta64')))
    assert (not com.is_timedelta64_ns_dtype(tdi.astype('timedelta64[h]')))
Example #3
0
def test_is_timedelta():
    assert (com.is_timedelta64_dtype('timedelta64'))
    assert (com.is_timedelta64_dtype('timedelta64[ns]'))
    assert (not com.is_timedelta64_ns_dtype('timedelta64'))
    assert (com.is_timedelta64_ns_dtype('timedelta64[ns]'))

    tdi = TimedeltaIndex([1e14, 2e14], dtype='timedelta64')
    assert (com.is_timedelta64_dtype(tdi))
    assert (com.is_timedelta64_ns_dtype(tdi))
    assert (com.is_timedelta64_ns_dtype(tdi.astype('timedelta64[ns]')))
    # Conversion to Int64Index:
    assert (not com.is_timedelta64_ns_dtype(tdi.astype('timedelta64')))
    assert (not com.is_timedelta64_ns_dtype(tdi.astype('timedelta64[h]')))
Example #4
0
    def test_is_timedelta(self):
        self.assertTrue(is_timedelta64_dtype('timedelta64'))
        self.assertTrue(is_timedelta64_dtype('timedelta64[ns]'))
        self.assertFalse(is_timedelta64_ns_dtype('timedelta64'))
        self.assertTrue(is_timedelta64_ns_dtype('timedelta64[ns]'))

        tdi = TimedeltaIndex([1e14, 2e14], dtype='timedelta64')
        self.assertTrue(is_timedelta64_dtype(tdi))
        self.assertTrue(is_timedelta64_ns_dtype(tdi))
        self.assertTrue(is_timedelta64_ns_dtype(tdi.astype('timedelta64[ns]')))

        # Conversion to Int64Index:
        self.assertFalse(is_timedelta64_ns_dtype(tdi.astype('timedelta64')))
        self.assertFalse(is_timedelta64_ns_dtype(tdi.astype('timedelta64[h]')))
Example #5
0
    def test_is_timedelta(self):
        self.assertTrue(is_timedelta64_dtype('timedelta64'))
        self.assertTrue(is_timedelta64_dtype('timedelta64[ns]'))
        self.assertFalse(is_timedelta64_ns_dtype('timedelta64'))
        self.assertTrue(is_timedelta64_ns_dtype('timedelta64[ns]'))

        tdi = TimedeltaIndex([1e14, 2e14], dtype='timedelta64')
        self.assertTrue(is_timedelta64_dtype(tdi))
        self.assertTrue(is_timedelta64_ns_dtype(tdi))
        self.assertTrue(is_timedelta64_ns_dtype(tdi.astype('timedelta64[ns]')))

        # Conversion to Int64Index:
        self.assertFalse(is_timedelta64_ns_dtype(tdi.astype('timedelta64')))
        self.assertFalse(is_timedelta64_ns_dtype(tdi.astype('timedelta64[h]')))
Example #6
0
    def test_is_timedelta(self):
        assert is_timedelta64_dtype('timedelta64')
        assert is_timedelta64_dtype('timedelta64[ns]')
        assert not is_timedelta64_ns_dtype('timedelta64')
        assert is_timedelta64_ns_dtype('timedelta64[ns]')

        tdi = TimedeltaIndex([1e14, 2e14], dtype='timedelta64')
        assert is_timedelta64_dtype(tdi)
        assert is_timedelta64_ns_dtype(tdi)
        assert is_timedelta64_ns_dtype(tdi.astype('timedelta64[ns]'))

        # Conversion to Int64Index:
        assert not is_timedelta64_ns_dtype(tdi.astype('timedelta64'))
        assert not is_timedelta64_ns_dtype(tdi.astype('timedelta64[h]'))
Example #7
0
    def test_equals2(self):
        # GH#13107
        idx = TimedeltaIndex(["1 days", "2 days", "NaT"])
        assert idx.equals(idx)
        assert idx.equals(idx.copy())
        assert idx.equals(idx.astype(object))
        assert idx.astype(object).equals(idx)
        assert idx.astype(object).equals(idx.astype(object))
        assert not idx.equals(list(idx))
        assert not idx.equals(pd.Series(idx))

        idx2 = TimedeltaIndex(["2 days", "1 days", "NaT"])
        assert not idx.equals(idx2)
        assert not idx.equals(idx2.copy())
        assert not idx.equals(idx2.astype(object))
        assert not idx.astype(object).equals(idx2)
        assert not idx.astype(object).equals(idx2.astype(object))
        assert not idx.equals(list(idx2))
        assert not idx.equals(pd.Series(idx2))

        # Check that we dont raise OverflowError on comparisons outside the
        #  implementation range GH#28532
        oob = Index([timedelta(days=10**6)] * 3, dtype=object)
        assert not idx.equals(oob)
        assert not idx2.equals(oob)

        oob2 = Index([np.timedelta64(x) for x in oob], dtype=object)
        assert (oob == oob2).all()
        assert not idx.equals(oob2)
        assert not idx2.equals(oob2)

        oob3 = oob.map(np.timedelta64)
        assert (oob3 == oob).all()
        assert not idx.equals(oob3)
        assert not idx2.equals(oob3)
Example #8
0
    def test_is_timedelta(self):
        assert is_timedelta64_dtype('timedelta64')
        assert is_timedelta64_dtype('timedelta64[ns]')
        assert not is_timedelta64_ns_dtype('timedelta64')
        assert is_timedelta64_ns_dtype('timedelta64[ns]')

        tdi = TimedeltaIndex([1e14, 2e14], dtype='timedelta64')
        assert is_timedelta64_dtype(tdi)
        assert is_timedelta64_ns_dtype(tdi)
        assert is_timedelta64_ns_dtype(tdi.astype('timedelta64[ns]'))

        # Conversion to Int64Index:
        assert not is_timedelta64_ns_dtype(tdi.astype('timedelta64'))
        assert not is_timedelta64_ns_dtype(tdi.astype('timedelta64[h]'))
Example #9
0
    def test_equals(self):
        # GH 13107
        idx = TimedeltaIndex(["1 days", "2 days", "NaT"])
        assert idx.equals(idx)
        assert idx.equals(idx.copy())
        assert idx.equals(idx.astype(object))
        assert idx.astype(object).equals(idx)
        assert idx.astype(object).equals(idx.astype(object))
        assert not idx.equals(list(idx))
        assert not idx.equals(Series(idx))

        idx2 = TimedeltaIndex(["2 days", "1 days", "NaT"])
        assert not idx.equals(idx2)
        assert not idx.equals(idx2.copy())
        assert not idx.equals(idx2.astype(object))
        assert not idx.astype(object).equals(idx2)
        assert not idx.astype(object).equals(idx2.astype(object))
        assert not idx.equals(list(idx2))
        assert not idx.equals(Series(idx2))

        # Check that we dont raise OverflowError on comparisons outside the
        #  implementation range
        oob = pd.Index([timedelta(days=10**6)] * 3, dtype=object)
        assert not idx.equals(oob)
        assert not idx2.equals(oob)

        # FIXME: oob.apply(np.timedelta64) incorrectly overflows
        oob2 = pd.Index([np.timedelta64(x) for x in oob], dtype=object)
        assert not idx.equals(oob2)
        assert not idx2.equals(oob2)
Example #10
0
    def test_astype_timedelta64(self):
        # GH 13149, GH 13209
        idx = TimedeltaIndex([1e14, "NaT", NaT, np.NaN])

        result = idx.astype("timedelta64")
        expected = Float64Index([1e14] + [np.NaN] * 3, dtype="float64")
        tm.assert_index_equal(result, expected)

        result = idx.astype("timedelta64[ns]")
        tm.assert_index_equal(result, idx)
        assert result is not idx

        result = idx.astype("timedelta64[ns]", copy=False)
        tm.assert_index_equal(result, idx)
        assert result is idx
Example #11
0
    def test_astype_timedelta64(self):
        # GH 13149, GH 13209
        idx = TimedeltaIndex([1e14, 'NaT', pd.NaT, np.NaN])

        result = idx.astype('timedelta64')
        expected = Float64Index([1e+14] + [np.NaN] * 3, dtype='float64')
        tm.assert_index_equal(result, expected)

        result = idx.astype('timedelta64[ns]')
        tm.assert_index_equal(result, idx)
        self.assertFalse(result is idx)

        result = idx.astype('timedelta64[ns]', copy=False)
        tm.assert_index_equal(result, idx)
        self.assertTrue(result is idx)
Example #12
0
    def test_astype_timedelta64(self):
        # GH 13149, GH 13209
        idx = TimedeltaIndex([1e14, 'NaT', pd.NaT, np.NaN])

        result = idx.astype('timedelta64')
        expected = Float64Index([1e+14] + [np.NaN] * 3, dtype='float64')
        tm.assert_index_equal(result, expected)

        result = idx.astype('timedelta64[ns]')
        tm.assert_index_equal(result, idx)
        self.assertFalse(result is idx)

        result = idx.astype('timedelta64[ns]', copy=False)
        tm.assert_index_equal(result, idx)
        self.assertTrue(result is idx)
Example #13
0
    def test_astype_object(self):
        idx = timedelta_range(start='1 days', periods=4, freq='D', name='idx')
        expected_list = [
            Timedelta('1 days'),
            Timedelta('2 days'),
            Timedelta('3 days'),
            Timedelta('4 days')
        ]
        expected = pd.Index(expected_list, dtype=object, name='idx')
        result = idx.astype(object)
        assert isinstance(result, Index)

        assert result.dtype == object
        tm.assert_index_equal(result, expected)
        assert result.name == expected.name
        assert idx.tolist() == expected_list

        idx = TimedeltaIndex(
            [timedelta(days=1),
             timedelta(days=2), pd.NaT,
             timedelta(days=4)],
            name='idx')
        expected_list = [
            Timedelta('1 days'),
            Timedelta('2 days'), pd.NaT,
            Timedelta('4 days')
        ]
        expected = pd.Index(expected_list, dtype=object, name='idx')
        result = idx.astype(object)
        assert isinstance(result, Index)
        assert result.dtype == object
        tm.assert_index_equal(result, expected)
        assert result.name == expected.name
        assert idx.tolist() == expected_list
Example #14
0
    def test_astype(self):
        # GH 13149, GH 13209
        idx = TimedeltaIndex([1e14, 'NaT', pd.NaT, np.NaN])

        result = idx.astype(object)
        expected = Index([Timedelta('1 days 03:46:40')] + [pd.NaT] * 3,
                         dtype=object)
        tm.assert_index_equal(result, expected)

        result = idx.astype(int)
        expected = Int64Index([100000000000000] + [-9223372036854775808] * 3,
                              dtype=np.int64)
        tm.assert_index_equal(result, expected)

        rng = timedelta_range('1 days', periods=10)

        result = rng.astype('i8')
        self.assert_numpy_array_equal(result, rng.asi8)
Example #15
0
 def test_astype_object_with_nat(self):
     idx = TimedeltaIndex([timedelta(days=1), timedelta(days=2), NaT,
                           timedelta(days=4)], name='idx')
     expected_list = [Timedelta('1 days'), Timedelta('2 days'), NaT,
                      Timedelta('4 days')]
     result = idx.astype(object)
     expected = Index(expected_list, dtype=object, name='idx')
     tm.assert_index_equal(result, expected)
     assert idx.tolist() == expected_list
Example #16
0
    def test_astype(self):
        # GH 13149, GH 13209
        idx = TimedeltaIndex([1e14, 'NaT', pd.NaT, np.NaN])

        result = idx.astype(object)
        expected = Index([Timedelta('1 days 03:46:40')] + [pd.NaT] * 3,
                         dtype=object)
        tm.assert_index_equal(result, expected)

        result = idx.astype(int)
        expected = Int64Index([100000000000000] + [-9223372036854775808] * 3,
                              dtype=np.int64)
        tm.assert_index_equal(result, expected)

        rng = timedelta_range('1 days', periods=10)

        result = rng.astype('i8')
        self.assert_numpy_array_equal(result, rng.asi8)
Example #17
0
 def test_astype_object_with_nat(self):
     idx = TimedeltaIndex([timedelta(days=1), timedelta(days=2), NaT,
                           timedelta(days=4)], name='idx')
     expected_list = [Timedelta('1 days'), Timedelta('2 days'), NaT,
                      Timedelta('4 days')]
     result = idx.astype(object)
     expected = Index(expected_list, dtype=object, name='idx')
     tm.assert_index_equal(result, expected)
     assert idx.tolist() == expected_list
Example #18
0
    def test_astype_object(self):
        idx = timedelta_range(start='1 days', periods=4, freq='D', name='idx')
        expected_list = [Timedelta('1 days'), Timedelta('2 days'),
                         Timedelta('3 days'), Timedelta('4 days')]
        expected = pd.Index(expected_list, dtype=object, name='idx')
        result = idx.astype(object)
        assert isinstance(result, Index)

        assert result.dtype == object
        tm.assert_index_equal(result, expected)
        assert result.name == expected.name
        assert idx.tolist() == expected_list

        idx = TimedeltaIndex([timedelta(days=1), timedelta(days=2), pd.NaT,
                              timedelta(days=4)], name='idx')
        expected_list = [Timedelta('1 days'), Timedelta('2 days'), pd.NaT,
                         Timedelta('4 days')]
        expected = pd.Index(expected_list, dtype=object, name='idx')
        result = idx.astype(object)
        assert isinstance(result, Index)
        assert result.dtype == object
        tm.assert_index_equal(result, expected)
        assert result.name == expected.name
        assert idx.tolist() == expected_list
Example #19
0
 def test_astype_raises(self, dtype):
     # GH 13149, GH 13209
     idx = TimedeltaIndex([1e14, 'NaT', NaT, np.NaN])
     msg = 'Cannot cast TimedeltaIndex to dtype'
     with tm.assert_raises_regex(TypeError, msg):
         idx.astype(dtype)
Example #20
0
 def test_astype_raises(self, dtype):
     # GH 13149, GH 13209
     idx = TimedeltaIndex([1e14, 'NaT', NaT, np.NaN])
     msg = 'Cannot cast TimedeltaIndex to dtype'
     with pytest.raises(TypeError, match=msg):
         idx.astype(dtype)
Example #21
0
 def test_astype_raises(self, dtype):
     # GH 13149, GH 13209
     idx = TimedeltaIndex([1e14, "NaT", NaT, np.NaN])
     msg = "Cannot cast TimedeltaArray to dtype"
     with pytest.raises(TypeError, match=msg):
         idx.astype(dtype)
Example #22
0
 def test_astype_raises(self, dtype):
     # GH 13149, GH 13209
     idx = TimedeltaIndex([1e14, 'NaT', NaT, np.NaN])
     msg = 'Cannot cast TimedeltaIndex to dtype'
     with tm.assert_raises_regex(TypeError, msg):
         idx.astype(dtype)
Example #23
0
 def test_astype_raises(self, dtype):
     # GH 13149, GH 13209
     idx = TimedeltaIndex([1e14, 'NaT', NaT, np.NaN])
     msg = 'Cannot cast TimedeltaArrayMixin to dtype'
     with pytest.raises(TypeError, match=msg):
         idx.astype(dtype)