diff --git a/nc_time_axis/__init__.py b/nc_time_axis/__init__.py index ccb8d87..ff0e52e 100644 --- a/nc_time_axis/__init__.py +++ b/nc_time_axis/__init__.py @@ -287,11 +287,11 @@ def convert(cls, value, unit, axis): ut = cftime.utime(cls.standard_unit, calendar=first_value.calendar) - if isinstance(value, (CalendarDateTime, cftime.datetime)): - value = [value] - if isinstance(first_value, CalendarDateTime): - result = ut.date2num([v.datetime for v in value]) + if isinstance(value, np.ndarray): + result = ut.date2num([v.datetime for v in value]) + else: + result = ut.date2num(value.datetime) else: result = ut.date2num(value) diff --git a/nc_time_axis/tests/unit/test_NetCDFTimeConverter.py b/nc_time_axis/tests/unit/test_NetCDFTimeConverter.py index 5d5edaf..9bdad63 100644 --- a/nc_time_axis/tests/unit/test_NetCDFTimeConverter.py +++ b/nc_time_axis/tests/unit/test_NetCDFTimeConverter.py @@ -110,12 +110,16 @@ def test_numeric_iterable(self): def test_cftime_CalendarDateTime(self): val = CalendarDateTime(cftime.datetime(2014, 8, 12), '365_day') result = NetCDFTimeConverter().convert(val, None, None) - np.testing.assert_array_equal(result, 5333.) + expected = 5333.0 + assert result == expected + assert np.isscalar(result) def test_cftime_raw_date(self): val = cftime.DatetimeNoLeap(2014, 8, 12) result = NetCDFTimeConverter().convert(val, None, None) - np.testing.assert_array_equal(result, 5333.) + expected = 5333.0 + assert result == expected + assert np.isscalar(result) def test_cftime_np_array_CalendarDateTime(self): val = np.array([CalendarDateTime(cftime.datetime(2012, 6, 4),