|
6 | 6 | """
|
7 | 7 |
|
8 | 8 | import numpy as np
|
| 9 | +import pytest |
9 | 10 |
|
10 | 11 | from calisim.base import ExampleModelContainer
|
11 | 12 | from calisim.data_model import ParameterSpecification
|
|
14 | 15 | from ..conftest import get_calibrator, is_close
|
15 | 16 |
|
16 | 17 |
|
| 18 | +def test_ies_unsupported_smoother( |
| 19 | + sir_model: ExampleModelContainer, |
| 20 | + sir_parameter_spec: ParameterSpecification, |
| 21 | + outdir: str, |
| 22 | +) -> None: |
| 23 | + observed_data = sir_model.observed_data |
| 24 | + output_labels = sir_model.output_labels |
| 25 | + |
| 26 | + calibration_kwargs = dict( |
| 27 | + method="__functional_test__", |
| 28 | + n_samples=50, |
| 29 | + n_iterations=10, |
| 30 | + covariance=np.eye(observed_data[output_labels].values.flatten().shape[0]), |
| 31 | + calibration_func_kwargs=dict(t=observed_data.day), |
| 32 | + method_kwargs=dict(truncation=1.0), |
| 33 | + ) |
| 34 | + |
| 35 | + calibrator = get_calibrator( |
| 36 | + HistoryMatchingMethod, |
| 37 | + HistoryMatchingMethodModel, |
| 38 | + sir_model, |
| 39 | + sir_parameter_spec, |
| 40 | + "ies", |
| 41 | + outdir, |
| 42 | + output_labels, |
| 43 | + calibration_kwargs, |
| 44 | + ) |
| 45 | + |
| 46 | + with pytest.raises(ValueError) as exc_info: |
| 47 | + calibrator.specify().execute().analyze() |
| 48 | + assert "Unsupported iterative ensemble smoother" in str(exc_info.value) |
| 49 | + |
| 50 | + |
17 | 51 | def test_ies_sies(
|
18 | 52 | sir_model: ExampleModelContainer,
|
19 | 53 | sir_parameter_spec: ParameterSpecification,
|
@@ -78,6 +112,40 @@ def test_ies_esmda(
|
78 | 112 | assert is_close(sir_model, calibrator)
|
79 | 113 |
|
80 | 114 |
|
| 115 | +def test_pyesmda_unsupported_smoother( |
| 116 | + sir_model: ExampleModelContainer, |
| 117 | + sir_parameter_spec: ParameterSpecification, |
| 118 | + outdir: str, |
| 119 | +) -> None: |
| 120 | + observed_data = sir_model.observed_data |
| 121 | + output_labels = sir_model.output_labels |
| 122 | + |
| 123 | + calibration_kwargs = dict( |
| 124 | + method="__functional_test__", |
| 125 | + n_samples=50, |
| 126 | + n_iterations=20, |
| 127 | + covariance=np.eye(observed_data[output_labels].values.flatten().shape[0]), |
| 128 | + calibration_func_kwargs=dict(t=observed_data.day), |
| 129 | + method_kwargs=dict(save_ensembles_history=True), |
| 130 | + n_jobs=10, |
| 131 | + ) |
| 132 | + |
| 133 | + calibrator = get_calibrator( |
| 134 | + HistoryMatchingMethod, |
| 135 | + HistoryMatchingMethodModel, |
| 136 | + sir_model, |
| 137 | + sir_parameter_spec, |
| 138 | + "pyesmda", |
| 139 | + outdir, |
| 140 | + output_labels, |
| 141 | + calibration_kwargs, |
| 142 | + ) |
| 143 | + |
| 144 | + with pytest.raises(ValueError) as exc_info: |
| 145 | + calibrator.specify().execute().analyze() |
| 146 | + assert "Unsupported ensemble smoother" in str(exc_info.value) |
| 147 | + |
| 148 | + |
81 | 149 | def test_pyesmda_esmda_rs(
|
82 | 150 | sir_model: ExampleModelContainer,
|
83 | 151 | sir_parameter_spec: ParameterSpecification,
|
|
0 commit comments