@@ -232,29 +232,27 @@ def test_perez(irrad_data, ephem_data, dni_et, relative_airmass):
232232def test_perez_components (irrad_data , ephem_data , dni_et , relative_airmass ):
233233 dni = irrad_data ['dni' ].copy ()
234234 dni .iloc [2 ] = np .nan
235- out , df_components = irradiance .perez (40 , 180 , irrad_data ['dhi' ], dni ,
236- dni_et , ephem_data ['apparent_zenith' ],
237- ephem_data ['azimuth' ], relative_airmass ,
238- return_components = True )
239- expected = pd .Series (np .array (
240- [ 0. , 31.46046871 , np .nan , 45.45539877 ]),
241- index = irrad_data .index )
242- expected_components = pd .DataFrame (
243- np .array ([[ 0. , 26.84138589 , np .nan , 31.72696071 ],
244- [ 0. , 0. , np .nan , 4.47966439 ],
245- [ 0. , 4.62212181 , np .nan , 9.25316454 ]]).T ,
246- columns = ['isotropic' , 'circumsolar' , 'horizon' ],
235+ out = irradiance .perez (40 , 180 , irrad_data ['dhi' ], dni ,
236+ dni_et , ephem_data ['apparent_zenith' ],
237+ ephem_data ['azimuth' ], relative_airmass ,
238+ return_components = True )
239+ expected = pd .DataFrame (np .array (
240+ [[ 0. , 31.46046871 , np .nan , 45.45539877 ],
241+ [ 0. , 26.84138589 , np .nan , 31.72696071 ],
242+ [ 0. , 0. , np .nan , 4.47966439 ],
243+ [ 0. , 4.62212181 , np .nan , 9.25316454 ]]).T ,
244+ columns = ['sky_diffuse' , 'isotropic' , 'circumsolar' , 'horizon' ],
247245 index = irrad_data .index
248246 )
249247 if pandas_0_22 ():
250- expected_for_sum = expected .copy ()
248+ expected_for_sum = expected [ 'sky_diffuse' ] .copy ()
251249 expected_for_sum .iloc [2 ] = 0
252250 else :
253- expected_for_sum = expected
254- sum_components = df_components .sum (axis = 1 )
251+ expected_for_sum = expected ['sky_diffuse' ]
252+ sum_components = out .iloc [:, 1 :].sum (axis = 1 )
253+ sum_components .name = 'sky_diffuse'
255254
256- assert_series_equal (out , expected , check_less_precise = 2 )
257- assert_frame_equal (df_components , expected_components )
255+ assert_frame_equal (out , expected , check_less_precise = 2 )
258256 assert_series_equal (sum_components , expected_for_sum , check_less_precise = 2 )
259257
260258
@@ -268,6 +266,15 @@ def test_perez_arrays(irrad_data, ephem_data, dni_et, relative_airmass):
268266 expected = np .array (
269267 [ 0. , 31.46046871 , np .nan , 45.45539877 ])
270268 assert_allclose (out , expected , atol = 1e-2 )
269+ assert isinstance (out , np .ndarray )
270+
271+
272+ def test_perez_scalar ():
273+ # copied values from fixtures
274+ out = irradiance .perez (40 , 180 , 118.45831879 , 939.95469881 ,
275+ 1321.1655834833093 , 10.56413562 , 144.76567754 ,
276+ 1.01688136 )
277+ assert_allclose (out , 109.084332 )
271278
272279
273280@pytest .mark .parametrize ('model' , ['isotropic' , 'klucher' , 'haydavies' ,
0 commit comments