diff --git a/py_wake/tests/notebook.py b/py_wake/tests/notebook.py index 9259fe3adf95167ac08396dd21ac78b91249f026..1f730a40c0bb14117f1db41ab622ceeb4067b18e 100644 --- a/py_wake/tests/notebook.py +++ b/py_wake/tests/notebook.py @@ -6,9 +6,16 @@ import re import ssl import sys import matplotlib.pyplot as plt +from _io import StringIO class Notebook(): + pip_header = """# Install PyWake if needed +try: + import py_wake +except ModuleNotFoundError: + !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/PyWake.git""" + def __init__(self, filename): self.filename = filename try: @@ -99,8 +106,8 @@ class Notebook(): try: import contextlib - with contextlib.redirect_stdout(None): - with contextlib.redirect_stderr(None): + with contextlib.redirect_stdout(StringIO()): + with contextlib.redirect_stderr(StringIO()): exec("def test():\n " + "\n ".join(lines) + "\ntest()", {}, {}) plt.close() except Exception as e: @@ -130,19 +137,15 @@ class Notebook(): # print(txt) def check_pip_header(self): - pip_header = """# Install PyWake if needed -try: - import py_wake -except ModuleNotFoundError: - !pip install git+https://gitlab.windenergy.dtu.dk/TOPFARM/PyWake.git""" + code = self.get_code() if not code: return - if code[0].strip() != pip_header: + if code[0].strip() != self.pip_header: for i, cell in enumerate(self.cells): if cell['cell_type'] == "code": break - self.insert_code_cell(i, pip_header) + self.insert_code_cell(i, self.pip_header) self.save() raise Exception("""pip install header was not present in %s. It has now been auto insert. Please check the notebook and commit the changes""" % os.path.abspath(self.filename)) diff --git a/py_wake/tests/test_wind_farm_models/test_enginering_wind_farm_model.py b/py_wake/tests/test_wind_farm_models/test_enginering_wind_farm_model.py index 47f72d8a75efb8f0985b62191838a43df928a1f0..2562314a3d4ac5372d5b4dda72b6ec0d5eac52dc 100644 --- a/py_wake/tests/test_wind_farm_models/test_enginering_wind_farm_model.py +++ b/py_wake/tests/test_wind_farm_models/test_enginering_wind_farm_model.py @@ -241,3 +241,16 @@ def test_double_wind_farm_model(): PropagateDownwind(site, windTurbines, wake_deficitModel=NoWakeDeficit()) aep = wfm(x, y).aep().sum() npt.assert_array_equal(aep, aep_ref) + + +def test_double_wind_farm_model_All2AllIterative(): + """Check that a new wind farm model does not change results of previous""" + site = IEA37Site(64) + x, y = site.initial_position.T + x, y = wt_x, wt_y + windTurbines = IEA37_WindTurbines() + wfm = All2AllIterative(site, windTurbines, wake_deficitModel=IEA37SimpleBastankhahGaussianDeficit()) + aep_ref = wfm(x, y).aep().sum() + All2AllIterative(site, windTurbines, wake_deficitModel=NoWakeDeficit())(x, y) + aep = wfm(x, y).aep().sum() + npt.assert_array_equal(aep, aep_ref) diff --git a/py_wake/utils/progressbar.py b/py_wake/utils/progressbar.py index a14332172bc6974689a5bbdb2d98dc5791be417d..b51b9f545680869273e95ff3bd85779c2aa5dd7e 100644 --- a/py_wake/utils/progressbar.py +++ b/py_wake/utils/progressbar.py @@ -1,11 +1,8 @@ def progressbar(it, show=True): if show and len(it) > 1: - try: - from tqdm import tqdm - return tqdm(it) - except Exception: - return it + from tqdm import tqdm + return tqdm(it) else: return it