15
15
class Test_axisinfo (unittest .TestCase ):
16
16
def test_axis_default_limits (self ):
17
17
cal = '360_day'
18
- unit = (cal , 'days since 2000-02-25 00:00:00' )
18
+ unit = (cal , 'days since 2000-02-25 00:00:00' , CalendarDateTime )
19
19
result = NetCDFTimeConverter ().axisinfo (unit , None )
20
20
expected_dt = [cftime .datetime (2000 , 1 , 1 ),
21
21
cftime .datetime (2010 , 1 , 1 )]
@@ -25,21 +25,21 @@ def test_axis_default_limits(self):
25
25
26
26
27
27
class Test_default_units (unittest .TestCase ):
28
- def test_360_day_calendar_point (self ):
28
+ def test_360_day_calendar_point_CalendarDateTime (self ):
29
29
calendar = '360_day'
30
30
unit = 'days since 2000-01-01'
31
31
val = CalendarDateTime (cftime .datetime (2014 , 8 , 12 ), calendar )
32
32
result = NetCDFTimeConverter ().default_units (val , None )
33
- self .assertEqual (result , (calendar , unit ))
33
+ self .assertEqual (result , (calendar , unit , CalendarDateTime ))
34
34
35
- def test_360_day_calendar_list (self ):
35
+ def test_360_day_calendar_list_CalendarDateTime (self ):
36
36
calendar = '360_day'
37
37
unit = 'days since 2000-01-01'
38
38
val = [CalendarDateTime (cftime .datetime (2014 , 8 , 12 ), calendar )]
39
39
result = NetCDFTimeConverter ().default_units (val , None )
40
- self .assertEqual (result , (calendar , unit ))
40
+ self .assertEqual (result , (calendar , unit , CalendarDateTime ))
41
41
42
- def test_360_day_calendar_nd (self ):
42
+ def test_360_day_calendar_nd_CalendarDateTime (self ):
43
43
# Test the case where the input is an nd-array.
44
44
calendar = '360_day'
45
45
unit = 'days since 2000-01-01'
@@ -48,7 +48,30 @@ def test_360_day_calendar_nd(self):
48
48
[CalendarDateTime (cftime .datetime (2014 , 8 , 13 ),
49
49
calendar )]])
50
50
result = NetCDFTimeConverter ().default_units (val , None )
51
- self .assertEqual (result , (calendar , unit ))
51
+ self .assertEqual (result , (calendar , unit , CalendarDateTime ))
52
+
53
+ def test_360_day_calendar_point_raw_date (self ):
54
+ calendar = '360_day'
55
+ unit = 'days since 2000-01-01'
56
+ val = cftime .Datetime360Day (2014 , 8 , 12 )
57
+ result = NetCDFTimeConverter ().default_units (val , None )
58
+ self .assertEqual (result , (calendar , unit , cftime .Datetime360Day ))
59
+
60
+ def test_360_day_calendar_list_raw_date (self ):
61
+ calendar = '360_day'
62
+ unit = 'days since 2000-01-01'
63
+ val = [cftime .Datetime360Day (2014 , 8 , 12 )]
64
+ result = NetCDFTimeConverter ().default_units (val , None )
65
+ self .assertEqual (result , (calendar , unit , cftime .Datetime360Day ))
66
+
67
+ def test_360_day_calendar_nd_raw_date (self ):
68
+ # Test the case where the input is an nd-array.
69
+ calendar = '360_day'
70
+ unit = 'days since 2000-01-01'
71
+ val = np .array ([[cftime .Datetime360Day (2014 , 8 , 12 )],
72
+ [cftime .Datetime360Day (2014 , 8 , 13 )]])
73
+ result = NetCDFTimeConverter ().default_units (val , None )
74
+ self .assertEqual (result , (calendar , unit , cftime .Datetime360Day ))
52
75
53
76
def test_nonequal_calendars (self ):
54
77
# Test that different supplied calendars causes an error.
@@ -84,17 +107,27 @@ def test_numeric_iterable(self):
84
107
result = NetCDFTimeConverter ().convert (val , None , None )
85
108
np .testing .assert_array_equal (result , val )
86
109
87
- def test_cftime (self ):
110
+ def test_cftime_CalendarDateTime (self ):
88
111
val = CalendarDateTime (cftime .datetime (2014 , 8 , 12 ), '365_day' )
89
112
result = NetCDFTimeConverter ().convert (val , None , None )
90
113
np .testing .assert_array_equal (result , 5333. )
91
114
92
- def test_cftime_np_array (self ):
115
+ def test_cftime_raw_date (self ):
116
+ val = cftime .DatetimeNoLeap (2014 , 8 , 12 )
117
+ result = NetCDFTimeConverter ().convert (val , None , None )
118
+ np .testing .assert_array_equal (result , 5333. )
119
+
120
+ def test_cftime_np_array_CalendarDateTime (self ):
93
121
val = np .array ([CalendarDateTime (cftime .datetime (2012 , 6 , 4 ),
94
122
'360_day' )], dtype = np .object )
95
123
result = NetCDFTimeConverter ().convert (val , None , None )
96
124
self .assertEqual (result , np .array ([4473. ]))
97
125
126
+ def test_cftime_np_array_raw_date (self ):
127
+ val = np .array ([cftime .Datetime360Day (2012 , 6 , 4 )], dtype = np .object )
128
+ result = NetCDFTimeConverter ().convert (val , None , None )
129
+ self .assertEqual (result , np .array ([4473. ]))
130
+
98
131
def test_non_cftime_datetime (self ):
99
132
val = CalendarDateTime (4 , '360_day' )
100
133
msg = 'The datetime attribute of the CalendarDateTime object must ' \
@@ -103,7 +136,7 @@ def test_non_cftime_datetime(self):
103
136
result = NetCDFTimeConverter ().convert (val , None , None )
104
137
105
138
def test_non_CalendarDateTime (self ):
106
- val = cftime . datetime ( 1988 , 5 , 6 )
139
+ val = 'test'
107
140
msg = 'The values must be numbers or instances of ' \
108
141
'"nc_time_axis.CalendarDateTime".'
109
142
with assertRaisesRegex (self , ValueError , msg ):
0 commit comments