def test_slice_decoded_cf_datetime_array(self): actual = conventions.DecodedCFDatetimeArray( np.array([0, 1, 2]), 'days since 1900-01-01', 'standard') expected = pd.date_range('1900-01-01', periods=3).values self.assertEqual(actual.dtype, np.dtype('datetime64[ns]')) self.assertArrayEqual(actual[slice(0, 2)], expected[slice(0, 2)]) actual = conventions.DecodedCFDatetimeArray( np.array([0, 1, 2]), 'days since 1900-01-01', 'standard') expected = pd.date_range('1900-01-01', periods=3).values self.assertEqual(actual.dtype, np.dtype('datetime64[ns]')) self.assertArrayEqual(actual[[0, 2]], expected[[0, 2]])
def test_decoded_cf_datetime_array(self): actual = conventions.DecodedCFDatetimeArray( np.array([0, 1, 2]), 'days since 1900-01-01', 'standard') expected = pd.date_range('1900-01-01', periods=3).values self.assertEqual(actual.dtype, np.dtype('datetime64[ns]')) self.assertArrayEqual(actual, expected) # default calendar actual = conventions.DecodedCFDatetimeArray( np.array([0, 1, 2]), 'days since 1900-01-01') self.assertEqual(actual.dtype, np.dtype('datetime64[ns]')) self.assertArrayEqual(actual, expected)
def test_decoded_cf_datetime_array_2d(self): # regression test for GH1229 array = conventions.DecodedCFDatetimeArray(np.array([[0, 1], [2, 3]]), 'days since 2000-01-01') assert array.dtype == 'datetime64[ns]' expected = pd.date_range('2000-01-01', periods=4).values.reshape(2, 2) self.assertArrayEqual(np.asarray(array), expected)
def test_dataset_repr_with_netcdf4_datetimes(self): # regression test for #347 attrs = {'units': 'days since 0001-01-01', 'calendar': 'noleap'} with warnings.catch_warnings(): warnings.filterwarnings('ignore', 'unable to decode time') ds = decode_cf(Dataset({'time': ('time', [0, 1], attrs)})) self.assertIn('(time) object', repr(ds)) attrs = {'units': 'days since 1900-01-01'} ds = decode_cf(Dataset({'time': ('time', [0, 1], attrs)})) self.assertIn('(time) datetime64[ns]', repr(ds)) # this should not throw a warning (GH1111) with warnings.catch_warnings(): warnings.filterwarnings('error') conventions.DecodedCFDatetimeArray(np.asarray([722624]), "days since 0001-01-01")