6
6
from pvlib .pvsystem import PVSystem
7
7
from pvlib .location import Location
8
8
9
- from pandas .util .testing import assert_series_equal , assert_frame_equal
10
- from nose .tools import with_setup , raises
9
+ from pandas .util .testing import assert_series_equal
10
+ from nose .tools import raises
11
+
12
+ from . import incompatible_conda_linux_py3
11
13
12
14
# should store this test data locally, but for now...
13
15
sam_data = {}
@@ -91,7 +93,7 @@ def singlediode_setup():
91
93
def test_ModelChain_creation ():
92
94
system = PVSystem ()
93
95
location = Location (32.2 , - 111 , altitude = 700 )
94
- mc = ModelChain (system , location )
96
+ ModelChain (system , location )
95
97
96
98
97
99
def test_orientation_strategy ():
@@ -111,7 +113,7 @@ def run_orientation_strategy(strategy, expected):
111
113
112
114
# the || accounts for the coercion of 'None' to None
113
115
assert (mc .orientation_strategy == strategy or
114
- mc .orientation_strategy == None )
116
+ mc .orientation_strategy is None )
115
117
assert system .surface_tilt == expected [0 ]
116
118
assert system .surface_azimuth == expected [1 ]
117
119
@@ -124,11 +126,12 @@ def test_run_model_ModelChain():
124
126
mc .run_model ()
125
127
126
128
129
+ @incompatible_conda_linux_py3
127
130
def test_run_model ():
128
131
times = pd .date_range ('20160101 1200-0700' , periods = 2 , freq = '6H' )
129
132
expected = {}
130
133
expected [SAPM ] = \
131
- pd .Series (np .array ([ 1.82033564e+02 , - 2.00000000e-02 ]), index = times )
134
+ pd .Series (np .array ([1.82033564e+02 , - 2.00000000e-02 ]), index = times )
132
135
expected [SingleDiode ] = \
133
136
pd .Series (np .array ([179.720353871 , np .nan ]), index = times )
134
137
@@ -140,13 +143,14 @@ def run_test(mc):
140
143
yield run_test , mc
141
144
142
145
146
+ @incompatible_conda_linux_py3
143
147
def test_run_model_with_irradiance ():
144
148
times = pd .date_range ('20160101 1200-0700' , periods = 2 , freq = '6H' )
145
149
irradiance = pd .DataFrame (
146
150
{'dni' : [900 , 0 ], 'ghi' : [600 , 50 ], 'dhi' : [150 , 50 ]}, index = times )
147
151
expected = {}
148
152
expected [SAPM ] = \
149
- pd .Series (np .array ([ 1.90054749e+02 , - 2.00000000e-02 ]), index = times )
153
+ pd .Series (np .array ([1.90054749e+02 , - 2.00000000e-02 ]), index = times )
150
154
expected [SingleDiode ] = \
151
155
pd .Series (np .array ([186.979595403 , 7.89417460232 ]), index = times )
152
156
@@ -158,12 +162,13 @@ def run_test(mc):
158
162
yield run_test , mc
159
163
160
164
165
+ @incompatible_conda_linux_py3
161
166
def test_run_model_with_weather ():
162
167
times = pd .date_range ('20160101 1200-0700' , periods = 2 , freq = '6H' )
163
168
weather = pd .DataFrame ({'wind_speed' : 5 , 'temp_air' : 10 }, index = times )
164
169
expected = {}
165
170
expected [SAPM ] = \
166
- pd .Series (np .array ([ 1.99952400e+02 , - 2.00000000e-02 ]), index = times )
171
+ pd .Series (np .array ([1.99952400e+02 , - 2.00000000e-02 ]), index = times )
167
172
expected [SingleDiode ] = \
168
173
pd .Series (np .array ([198.13564009 , np .nan ]), index = times )
169
174
@@ -187,10 +192,9 @@ def test_basic_chain_required():
187
192
latitude = 32
188
193
longitude = - 111
189
194
altitude = 700
190
- modules = sam_data ['sandiamod' ]
191
- module_parameters = modules ['Canadian_Solar_CS5P_220M___2009_' ]
192
- inverters = sam_data ['cecinverter' ]
193
- inverter_parameters = inverters ['ABB__MICRO_0_25_I_OUTD_US_208_208V__CEC_2014_' ]
195
+
196
+ module_parameters = get_sapm_module_parameters ()
197
+ inverter_parameters = get_cec_inverter_parameters ()
194
198
195
199
dc , ac = modelchain .basic_chain (times , latitude , longitude ,
196
200
module_parameters , inverter_parameters ,
@@ -202,20 +206,18 @@ def test_basic_chain_alt_az():
202
206
end = '20160101 1800-0700' , freq = '6H' )
203
207
latitude = 32.2
204
208
longitude = - 111
205
- altitude = 700
206
209
surface_tilt = 0
207
210
surface_azimuth = 0
208
- modules = sam_data ['sandiamod' ]
209
- module_parameters = modules ['Canadian_Solar_CS5P_220M___2009_' ]
210
- inverters = sam_data ['cecinverter' ]
211
- inverter_parameters = inverters ['ABB__MICRO_0_25_I_OUTD_US_208_208V__CEC_2014_' ]
211
+
212
+ module_parameters = get_sapm_module_parameters ()
213
+ inverter_parameters = get_cec_inverter_parameters ()
212
214
213
215
dc , ac = modelchain .basic_chain (times , latitude , longitude ,
214
216
module_parameters , inverter_parameters ,
215
217
surface_tilt = surface_tilt ,
216
218
surface_azimuth = surface_azimuth )
217
219
218
- expected = pd .Series (np .array ([ 1.14490928477e+02 , - 2.00000000e-02 ]),
220
+ expected = pd .Series (np .array ([1.14490928477e+02 , - 2.00000000e-02 ]),
219
221
index = times )
220
222
assert_series_equal (ac , expected )
221
223
@@ -226,17 +228,15 @@ def test_basic_chain_strategy():
226
228
latitude = 32.2
227
229
longitude = - 111
228
230
altitude = 700
229
- modules = sam_data ['sandiamod' ]
230
- module_parameters = modules ['Canadian_Solar_CS5P_220M___2009_' ]
231
- inverters = sam_data ['cecinverter' ]
232
- inverter_parameters = inverters ['ABB__MICRO_0_25_I_OUTD_US_208_208V__CEC_2014_' ]
233
231
234
- dc , ac = modelchain .basic_chain (times , latitude , longitude ,
235
- module_parameters , inverter_parameters ,
236
- orientation_strategy = 'south_at_latitude_tilt' ,
237
- altitude = altitude )
232
+ module_parameters = get_sapm_module_parameters ()
233
+ inverter_parameters = get_cec_inverter_parameters ()
238
234
239
- expected = pd .Series (np .array ([ 1.82033563543e+02 , - 2.00000000e-02 ]),
235
+ dc , ac = modelchain .basic_chain (
236
+ times , latitude , longitude , module_parameters , inverter_parameters ,
237
+ orientation_strategy = 'south_at_latitude_tilt' , altitude = altitude )
238
+
239
+ expected = pd .Series (np .array ([1.82033563543e+02 , - 2.00000000e-02 ]),
240
240
index = times )
241
241
assert_series_equal (ac , expected )
242
242
@@ -249,18 +249,17 @@ def test_basic_chain_altitude_pressure():
249
249
altitude = 700
250
250
surface_tilt = 0
251
251
surface_azimuth = 0
252
- modules = sam_data ['sandiamod' ]
253
- module_parameters = modules ['Canadian_Solar_CS5P_220M___2009_' ]
254
- inverters = sam_data ['cecinverter' ]
255
- inverter_parameters = inverters ['ABB__MICRO_0_25_I_OUTD_US_208_208V__CEC_2014_' ]
252
+
253
+ module_parameters = get_sapm_module_parameters ()
254
+ inverter_parameters = get_cec_inverter_parameters ()
256
255
257
256
dc , ac = modelchain .basic_chain (times , latitude , longitude ,
258
257
module_parameters , inverter_parameters ,
259
258
surface_tilt = surface_tilt ,
260
259
surface_azimuth = surface_azimuth ,
261
260
pressure = 93194 )
262
261
263
- expected = pd .Series (np .array ([ 1.15771428788e+02 , - 2.00000000e-02 ]),
262
+ expected = pd .Series (np .array ([1.15771428788e+02 , - 2.00000000e-02 ]),
264
263
index = times )
265
264
assert_series_equal (ac , expected )
266
265
@@ -270,6 +269,6 @@ def test_basic_chain_altitude_pressure():
270
269
surface_azimuth = surface_azimuth ,
271
270
altitude = altitude )
272
271
273
- expected = pd .Series (np .array ([ 1.15771428788e+02 , - 2.00000000e-02 ]),
272
+ expected = pd .Series (np .array ([1.15771428788e+02 , - 2.00000000e-02 ]),
274
273
index = times )
275
274
assert_series_equal (ac , expected )
0 commit comments