1515class Test_axisinfo (unittest .TestCase ):
1616 def test_axis_default_limits (self ):
1717 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 )
1919 result = NetCDFTimeConverter ().axisinfo (unit , None )
2020 expected_dt = [cftime .datetime (2000 , 1 , 1 ),
2121 cftime .datetime (2010 , 1 , 1 )]
@@ -25,21 +25,21 @@ def test_axis_default_limits(self):
2525
2626
2727class Test_default_units (unittest .TestCase ):
28- def test_360_day_calendar_point (self ):
28+ def test_360_day_calendar_point_CalendarDateTime (self ):
2929 calendar = '360_day'
3030 unit = 'days since 2000-01-01'
3131 val = CalendarDateTime (cftime .datetime (2014 , 8 , 12 ), calendar )
3232 result = NetCDFTimeConverter ().default_units (val , None )
33- self .assertEqual (result , (calendar , unit ))
33+ self .assertEqual (result , (calendar , unit , CalendarDateTime ))
3434
35- def test_360_day_calendar_list (self ):
35+ def test_360_day_calendar_list_CalendarDateTime (self ):
3636 calendar = '360_day'
3737 unit = 'days since 2000-01-01'
3838 val = [CalendarDateTime (cftime .datetime (2014 , 8 , 12 ), calendar )]
3939 result = NetCDFTimeConverter ().default_units (val , None )
40- self .assertEqual (result , (calendar , unit ))
40+ self .assertEqual (result , (calendar , unit , CalendarDateTime ))
4141
42- def test_360_day_calendar_nd (self ):
42+ def test_360_day_calendar_nd_CalendarDateTime (self ):
4343 # Test the case where the input is an nd-array.
4444 calendar = '360_day'
4545 unit = 'days since 2000-01-01'
@@ -48,7 +48,30 @@ def test_360_day_calendar_nd(self):
4848 [CalendarDateTime (cftime .datetime (2014 , 8 , 13 ),
4949 calendar )]])
5050 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 ))
5275
5376 def test_nonequal_calendars (self ):
5477 # Test that different supplied calendars causes an error.
@@ -84,17 +107,27 @@ def test_numeric_iterable(self):
84107 result = NetCDFTimeConverter ().convert (val , None , None )
85108 np .testing .assert_array_equal (result , val )
86109
87- def test_cftime (self ):
110+ def test_cftime_CalendarDateTime (self ):
88111 val = CalendarDateTime (cftime .datetime (2014 , 8 , 12 ), '365_day' )
89112 result = NetCDFTimeConverter ().convert (val , None , None )
90113 np .testing .assert_array_equal (result , 5333. )
91114
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 ):
93121 val = np .array ([CalendarDateTime (cftime .datetime (2012 , 6 , 4 ),
94122 '360_day' )], dtype = np .object )
95123 result = NetCDFTimeConverter ().convert (val , None , None )
96124 self .assertEqual (result , np .array ([4473. ]))
97125
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+
98131 def test_non_cftime_datetime (self ):
99132 val = CalendarDateTime (4 , '360_day' )
100133 msg = 'The datetime attribute of the CalendarDateTime object must ' \
@@ -103,7 +136,7 @@ def test_non_cftime_datetime(self):
103136 result = NetCDFTimeConverter ().convert (val , None , None )
104137
105138 def test_non_CalendarDateTime (self ):
106- val = cftime . datetime ( 1988 , 5 , 6 )
139+ val = 'test'
107140 msg = 'The values must be numbers or instances of ' \
108141 '"nc_time_axis.CalendarDateTime".'
109142 with assertRaisesRegex (self , ValueError , msg ):
0 commit comments