@@ -1141,20 +1141,21 @@ def test_dirindex_min_cos_zenith_max_zenith():
11411141
11421142
11431143def test_dirint_array_inputs ():
1144- """np.array inputs work correctly. GH #2751"""
1145- times = pd .DatetimeIndex (['2023-06-21 12:00' ], tz = 'UTC' )
1144+ """np.array and pd.Series inputs work correctly. GH #2751"""
1145+ # dirint requires >= 2 time points
1146+ times = pd .date_range ('2023-06-21 10:00' , periods = 2 , freq = 'h' , tz = 'UTC' )
11461147
1147- # np.array input (1-element) -- return pd.Series
1148+ # np.array input → should return pd.Series
11481149 result = irradiance .dirint (
1149- ghi = np .array ([500.0 ]),
1150- solar_zenith = np .array ([45.0 ]),
1150+ ghi = np .array ([500.0 , 400.0 ]),
1151+ solar_zenith = np .array ([45.0 , 50.0 ]),
11511152 times = times ,
11521153 use_delta_kt_prime = False
11531154 )
11541155 assert isinstance (result , pd .Series )
11551156 assert result .iloc [0 ] > 0
11561157
1157- # pd.Series input -- return pd.Series
1158+ # pd.Series input → should return pd.Series
11581159 times2 = pd .date_range ('2023-06-21 10:00' , periods = 3 , freq = 'h' , tz = 'UTC' )
11591160 result2 = irradiance .dirint (
11601161 ghi = pd .Series ([400 , 500 , 300 ], index = times2 ),
@@ -1164,6 +1165,15 @@ def test_dirint_array_inputs():
11641165 assert isinstance (result2 , pd .Series )
11651166 assert (result2 >= 0 ).all ()
11661167
1168+ # single time point → ValueError regardless of use_delta_kt_prime
1169+ times_single = pd .DatetimeIndex (['2023-06-21 12:00' ], tz = 'UTC' )
1170+ with pytest .raises (ValueError , match = "requires at least two times" ):
1171+ irradiance .dirint (
1172+ ghi = np .array ([500.0 ]),
1173+ solar_zenith = np .array ([45.0 ]),
1174+ times = times_single
1175+ )
1176+
11671177
11681178def test_dni ():
11691179 ghi = pd .Series ([90 , 100 , 100 , 100 , 100 ])
0 commit comments