Skip to content

Commit 28f6030

Browse files
committed
Adapt tests to changes of density corrected power curve function
1 parent 4ca47d5 commit 28f6030

File tree

1 file changed

+60
-40
lines changed

1 file changed

+60
-40
lines changed

tests/test_power_output.py

Lines changed: 60 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
from pandas.util.testing import assert_series_equal
22
from windpowerlib.power_output import (power_coefficient_curve,
3-
cp_curve_density_corr,
4-
power_curve, p_curve_density_corr)
3+
power_curve, _p_curve_density_corr)
54
import pandas as pd
65
import numpy as np
76
from numpy.testing import assert_allclose
7+
import pytest
88

99

1010
class TestPowerOutput:
@@ -16,6 +16,7 @@ def test_power_coefficient_curve(self):
1616
'cp_values': pd.Series([0.3, 0.4, 0.5],
1717
index=[4.0, 5.0, 6.0])}
1818

19+
# Tests without density correction:
1920
# Test wind_speed as pd.Series with density as pd.Series and np.array
2021
power_output_exp = pd.Series(data=[0.0, 244615.399, 0.0],
2122
name='feedin_wind_turbine')
@@ -24,7 +25,6 @@ def test_power_coefficient_curve(self):
2425
parameters['density'] = np.array(parameters['density'])
2526
assert_series_equal(power_coefficient_curve(**parameters),
2627
power_output_exp)
27-
2828
# Test wind_speed as np.array with density as np.array and pd.Series
2929
power_output_exp = np.array([0.0, 244615.399, 0.0])
3030
parameters['wind_speed'] = np.array(parameters['wind_speed'])
@@ -36,71 +36,91 @@ def test_power_coefficient_curve(self):
3636
power_output_exp)
3737
assert isinstance(power_coefficient_curve(**parameters), np.ndarray)
3838

39-
def test_cp_curve_density_corrected(self):
40-
parameters = {'wind_speed': pd.Series(data=[2.0, 5.5, 7.0]),
41-
'density': pd.Series(data=[1.3, 1.3, 1.3]),
42-
'rotor_diameter': 80,
43-
'cp_values': pd.Series([0.3, 0.4, 0.5],
44-
index=[4.0, 5.0, 6.0])}
45-
46-
# Test wind_speed as pd.Series with density as pd.Series and np.array
39+
# Tests with density correction:
40+
# Test wind_speed as np.array with density as pd.Series and np.array
41+
power_output_exp = np.array([0.0, 262869.785, 0.0])
42+
parameters['density_corr'] = True
43+
assert_allclose(power_coefficient_curve(**parameters),
44+
power_output_exp)
45+
assert isinstance(power_coefficient_curve(**parameters), np.ndarray)
46+
parameters['density'] = np.array(parameters['density'])
47+
assert_allclose(power_coefficient_curve(**parameters),
48+
power_output_exp)
49+
assert isinstance(power_coefficient_curve(**parameters), np.ndarray)
50+
# Test wind_speed as pd.Series with density as np. array and pd.Series
4751
power_output_exp = pd.Series(data=[0.0, 262869.785, 0.0],
4852
name='feedin_wind_turbine')
49-
assert_series_equal(cp_curve_density_corr(**parameters),
53+
parameters['wind_speed'] = pd.Series(data=parameters['wind_speed'])
54+
assert_series_equal(power_coefficient_curve(**parameters),
5055
power_output_exp)
51-
parameters['density'] = np.array(parameters['density'])
52-
assert_series_equal(cp_curve_density_corr(**parameters),
56+
parameters['density'] = pd.Series(data=parameters['density'])
57+
assert_series_equal(power_coefficient_curve(**parameters),
5358
power_output_exp)
5459

55-
# Test wind_speed as np.array with density as np.array and pd.Series
56-
power_output_exp = np.array([0.0, 262869.785, 0.0])
57-
parameters['wind_speed'] = np.array(parameters['wind_speed'])
58-
assert_allclose(cp_curve_density_corr(**parameters),
59-
power_output_exp)
60-
assert isinstance(cp_curve_density_corr(**parameters), np.ndarray)
61-
parameters['density'] = pd.Series(data=parameters['density'])
62-
assert_allclose(cp_curve_density_corr(**parameters),
63-
power_output_exp)
64-
assert isinstance(cp_curve_density_corr(**parameters), np.ndarray)
60+
# Raise TypeErrors due to wrong type of `density_corr`
61+
with pytest.raises(TypeError):
62+
parameters['density'] = 'wrong_type'
63+
power_coefficient_curve(**parameters)
6564

6665
def test_power_curve(self):
6766
parameters = {'wind_speed': pd.Series(data=[2.0, 5.5, 7.0]),
6867
'p_values': pd.Series([300, 400, 500],
69-
index=[4.0, 5.0, 6.0])}
68+
index=[4.0, 5.0, 6.0]),
69+
'density': pd.Series(data=[1.3, 1.3, 1.3]),
70+
'density_corr': False}
7071

72+
# Tests without density correction:
7173
# Test wind_speed as pd.Series
7274
power_output_exp = pd.Series(data=[0.0, 450.0, 0.0],
7375
name='feedin_wind_turbine')
7476
assert_series_equal(power_curve(**parameters), power_output_exp)
75-
7677
# Test wind_speed as np.array
7778
power_output_exp = np.array([0.0, 450.0, 0.0])
7879
parameters['wind_speed'] = np.array(parameters['wind_speed'])
7980
assert_allclose(power_curve(**parameters), power_output_exp)
8081
assert isinstance(power_curve(**parameters), np.ndarray)
8182

83+
# Tests with density correction:
84+
# Test wind_speed as np.array with density as pd.Series and np.array
85+
power_output_exp = np.array([0.0, 461.00290572, 0.0])
86+
parameters['density_corr'] = True
87+
assert_allclose(power_curve(**parameters), power_output_exp)
88+
assert isinstance(power_curve(**parameters), np.ndarray)
89+
parameters['density'] = np.array(parameters['density'])
90+
assert_allclose(power_curve(**parameters), power_output_exp)
91+
assert isinstance(power_curve(**parameters), np.ndarray)
92+
# Test wind_speed as pd.Series with density as np. array and pd.Series
93+
power_output_exp = pd.Series(data=[0.0, 461.00290572, 0.0],
94+
name='feedin_wind_turbine')
95+
parameters['wind_speed'] = pd.Series(data=parameters['wind_speed'])
96+
assert_series_equal(power_curve(**parameters), power_output_exp)
97+
parameters['density'] = pd.Series(data=parameters['density'])
98+
assert_series_equal(power_curve(**parameters),
99+
power_output_exp)
100+
101+
# Raise TypeErrors due to wrong type of `density_corr`
102+
with pytest.raises(TypeError):
103+
parameters['density'] = 'wrong_type'
104+
power_curve(**parameters)
105+
82106
def test_p_curve_density_corrected(self):
83107
parameters = {'wind_speed': pd.Series(data=[2.0, 5.5, 7.0]),
84108
'density': pd.Series(data=[1.3, 1.3, 1.3]),
85109
'p_values': pd.Series([300, 400, 500],
86110
index=[4.0, 5.0, 6.0])}
87111

88112
# Test wind_speed as pd.Series with density as pd.Series and np.array
89-
power_output_exp = pd.Series(data=[0.0, 461.00290572, 0.0],
90-
name='feedin_wind_turbine')
91-
assert_series_equal(p_curve_density_corr(**parameters),
92-
power_output_exp)
113+
power_output_exp = [0.0, 461.00290572240806, 0.0]
114+
assert _p_curve_density_corr(**parameters) == power_output_exp
93115
parameters['density'] = np.array(parameters['density'])
94-
assert_series_equal(p_curve_density_corr(**parameters),
95-
power_output_exp)
116+
assert _p_curve_density_corr(**parameters) == power_output_exp
96117

97118
# Test wind_speed as np.array with density as np.array and pd.Series
98-
power_output_exp = np.array([0.0, 461.00290572, 0.0])
99-
parameters['wind_speed'] = np.array(parameters['wind_speed'])
100-
assert_allclose(p_curve_density_corr(**parameters),
101-
power_output_exp)
102-
assert isinstance(p_curve_density_corr(**parameters), np.ndarray)
119+
assert _p_curve_density_corr(**parameters) == power_output_exp
103120
parameters['density'] = pd.Series(data=parameters['density'])
104-
assert_allclose(p_curve_density_corr(**parameters),
105-
power_output_exp)
106-
assert isinstance(p_curve_density_corr(**parameters), np.ndarray)
121+
assert _p_curve_density_corr(**parameters) == power_output_exp
122+
123+
# Raise TypeError due to density is None
124+
with pytest.raises(TypeError):
125+
parameters['density'] = None
126+
_p_curve_density_corr(**parameters)

0 commit comments

Comments
 (0)