|
2 | 2 | import pytest |
3 | 3 | from pymap3d.timeconv import str2dt |
4 | 4 | from datetime import datetime |
| 5 | +import numpy as np |
5 | 6 |
|
6 | 7 | t0 = datetime(2014, 4, 6, 8) |
7 | 8 |
|
8 | 9 |
|
9 | | -def test_str2dt(): |
| 10 | +def test_types(): |
10 | 11 | assert str2dt(t0) == t0 # passthrough |
11 | 12 | assert str2dt('2014-04-06T08:00:00') == t0 |
12 | 13 | ti = [str2dt('2014-04-06T08:00:00'), str2dt('2014-04-06T08:01:02')] |
13 | 14 | to = [t0, datetime(2014, 4, 6, 8, 1, 2)] |
14 | 15 | assert ti == to # even though ti is numpy array of datetime and to is list of datetime |
15 | 16 |
|
| 17 | + t1 = [t0, t0] |
| 18 | + assert (np.asarray(str2dt(t1)) == t0).all() |
| 19 | + |
| 20 | + |
| 21 | +def test_datetime64(): |
| 22 | + t1 = np.datetime64(t0) |
| 23 | + assert str2dt(t1) == t0 |
| 24 | + |
| 25 | + t1 = np.array([np.datetime64(t0), np.datetime64(t0)]) |
| 26 | + assert (str2dt(t1) == t0).all() |
| 27 | + |
16 | 28 |
|
17 | 29 | def test_xarray_time(): |
18 | 30 | xarray = pytest.importorskip('xarray') |
19 | 31 |
|
20 | 32 | t = {'time': t0} |
21 | | - |
22 | 33 | ds = xarray.Dataset(t) |
23 | 34 | assert str2dt(ds['time']) == t0 |
24 | 35 |
|
| 36 | + t2 = {'time': [t0, t0]} |
| 37 | + ds = xarray.Dataset(t2) |
| 38 | + assert (str2dt(ds['time']) == t0).all() |
| 39 | + |
25 | 40 |
|
26 | 41 | def test_pandas_time(): |
27 | 42 | pandas = pytest.importorskip('pandas') |
28 | 43 |
|
29 | 44 | t = pandas.Series(t0) |
30 | | - assert str2dt(t) == t0 |
| 45 | + assert (str2dt(t) == t0).all() |
| 46 | + |
| 47 | + t = pandas.Series([t0, t0]) |
| 48 | + assert (str2dt(t) == t0).all() |
31 | 49 |
|
32 | 50 |
|
33 | 51 | if __name__ == '__main__': |
34 | | - pytest.main([__file__]) |
| 52 | + pytest.main(['-x', __file__]) |
0 commit comments