@@ -232,29 +232,27 @@ def test_perez(irrad_data, ephem_data, dni_et, relative_airmass):
232
232
def test_perez_components (irrad_data , ephem_data , dni_et , relative_airmass ):
233
233
dni = irrad_data ['dni' ].copy ()
234
234
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' ],
247
245
index = irrad_data .index
248
246
)
249
247
if pandas_0_22 ():
250
- expected_for_sum = expected .copy ()
248
+ expected_for_sum = expected [ 'sky_diffuse' ] .copy ()
251
249
expected_for_sum .iloc [2 ] = 0
252
250
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'
255
254
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 )
258
256
assert_series_equal (sum_components , expected_for_sum , check_less_precise = 2 )
259
257
260
258
@@ -268,6 +266,15 @@ def test_perez_arrays(irrad_data, ephem_data, dni_et, relative_airmass):
268
266
expected = np .array (
269
267
[ 0. , 31.46046871 , np .nan , 45.45539877 ])
270
268
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 )
271
278
272
279
273
280
@pytest .mark .parametrize ('model' , ['isotropic' , 'klucher' , 'haydavies' ,
0 commit comments