Test failures with pandas 0.24.0 · Issue #2717 · pydata/xarray (original) (raw)
=================================== FAILURES ===================================
___________________ test_cf_timedelta[timedeltas7-days-nan] ____________________
timedeltas = numpy.datetime64('NaT'), units = 'days', numbers = array(nan)
@pytest.mark.parametrize(
['timedeltas', 'units', 'numbers'],
[('1D', 'days', np.int64(1)),
(['1D', '2D', '3D'], 'days', np.array([1, 2, 3], 'int64')),
('1h', 'hours', np.int64(1)),
('1ms', 'milliseconds', np.int64(1)),
('1us', 'microseconds', np.int64(1)),
(['NaT', '0s', '1s'], None, [np.nan, 0, 1]),
(['30m', '60m'], 'hours', [0.5, 1.0]),
(np.timedelta64('NaT', 'ns'), 'days', np.nan),
(['NaT', 'NaT'], 'days', [np.nan, np.nan])])
def test_cf_timedelta(timedeltas, units, numbers):
timedeltas = pd.to_timedelta(timedeltas, box=False)
numbers = np.array(numbers)
expected = numbers
> actual, _ = coding.times.encode_cf_timedelta(timedeltas, units)
xarray/tests/test_coding_times.py:550:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
timedeltas = numpy.datetime64('NaT'), units = 'days'
def encode_cf_timedelta(timedeltas, units=None):
if units is None:
units = infer_timedelta_units(timedeltas)
np_unit = _netcdf_to_numpy_timeunit(units)
> num = 1.0 * timedeltas / np.timedelta64(1, np_unit)
E TypeError: ufunc multiply cannot use operands with types dtype('float64') and dtype('<M8[ns]')
xarray/coding/times.py:379: TypeError
_____________________ TestDataArray.test_struct_array_dims _____________________
self = <xarray.tests.test_dataarray.TestDataArray object at 0x7fb508944a90>
def test_struct_array_dims(self):
"""
This test checks subraction of two DataArrays for the case
when dimension is a structured array.
"""
# GH837, GH861
# checking array subraction when dims are the same
p_data = np.array([('John', 180), ('Stacy', 150), ('Dick', 200)],
dtype=[('name', '|S256'), ('height', object)])
p_data_1 = np.array([('John', 180), ('Stacy', 150), ('Dick', 200)],
dtype=[('name', '|S256'), ('height', object)])
p_data_2 = np.array([('John', 180), ('Dick', 200)],
dtype=[('name', '|S256'), ('height', object)])
weights_0 = DataArray([80, 56, 120], dims=['participant'],
coords={'participant': p_data})
weights_1 = DataArray([81, 52, 115], dims=['participant'],
coords={'participant': p_data_1})
actual = weights_1 - weights_0
expected = DataArray([1, -4, -5], dims=['participant'],
coords={'participant': p_data})
assert_identical(actual, expected)
# checking array subraction when dims are not the same
p_data_1 = np.array([('John', 180), ('Stacy', 151), ('Dick', 200)],
dtype=[('name', '|S256'), ('height', object)])
weights_1 = DataArray([81, 52, 115], dims=['participant'],
coords={'participant': p_data_1})
actual = weights_1 - weights_0
expected = DataArray([1, -5], dims=['participant'],
coords={'participant': p_data_2})
> assert_identical(actual, expected)
E AssertionError: Left and right DataArray objects are not identical
E
E Differing values:
E L
E array([-5, 1])
E R
E array([ 1, -5])
E Differing coordinates:
E L * participant (participant) object (b'Dick', 200) (b'John', 180)
E R * participant (participant) [('name', 'S256'), ('height', 'O')] (b'John', 180) (b'Dick', 200)