9
9
from resdata .summary import Summary
10
10
11
11
from ert .config import ErtConfig
12
- from ert .config .design_matrix import DESIGN_MATRIX_GROUP , DesignMatrix
13
- from ert .enkf_main import sample_prior , save_design_matrix_to_ensemble
12
+ from ert .enkf_main import sample_prior
14
13
from ert .libres_facade import LibresFacade
15
14
from ert .storage import open_storage
16
15
@@ -219,17 +218,30 @@ def test_get_observations(tmpdir):
219
218
assert "FOPR_1" in facade .get_observations ()
220
219
221
220
222
- def test_load_gen_kw_not_sorted (storage , tmpdir , snapshot ):
221
+ # TODO refactor this & use design matrix too!!!
222
+ def test_load_scalar_parameters (storage , tmpdir , snapshot ):
223
223
"""
224
224
This test checks two things, loading multiple parameters and
225
225
loading log parameters.
226
226
"""
227
227
with tmpdir .as_cwd ():
228
+ design_path = "design_matrix.xlsx"
229
+ ensemble_size = 10
230
+ a_values = np .random .default_rng ().uniform (- 5 , 5 , 10 )
231
+ b_values = np .random .default_rng ().uniform (- 5 , 5 , 10 )
232
+ c_values = np .random .default_rng ().uniform (- 5 , 5 , 10 )
233
+ design_matrix_df = DataFrame ({"a" : a_values , "b" : b_values , "c" : c_values })
234
+ with ExcelWriter (design_path ) as xl_write :
235
+ design_matrix_df .to_excel (xl_write , index = False , sheet_name = "DesignSheet01" )
236
+ DataFrame ().to_excel (
237
+ xl_write , index = False , sheet_name = "DefaultValues" , header = False
238
+ )
228
239
config = dedent (
229
240
"""
230
241
NUM_REALIZATIONS 10
231
242
GEN_KW PARAM_2 template.txt kw.txt prior.txt
232
243
GEN_KW PARAM_1 template.txt kw.txt prior.txt
244
+ DESIGN_MATRIX design_matrix.xlsx DESIGN_SHEET:DesignSheet01 DEFAULT_SHEET:DefaultValues
233
245
RANDOM_SEED 1234
234
246
"""
235
247
)
@@ -242,64 +254,75 @@ def test_load_gen_kw_not_sorted(storage, tmpdir, snapshot):
242
254
243
255
ert_config = ErtConfig .from_file ("config.ert" )
244
256
245
- experiment_id = storage .create_experiment (
246
- parameters = ert_config .ensemble_config .parameter_configuration
247
- )
257
+ params = [
258
+ ert_config .analysis_config .design_matrix .merge_with_existing_parameters (
259
+ ert_config .ensemble_config .parameter_configuration [0 ]
260
+ )
261
+ ]
262
+ experiment_id = storage .create_experiment (parameters = params )
248
263
ensemble_size = 10
249
264
ensemble = storage .create_ensemble (
250
265
experiment_id , name = "default" , ensemble_size = ensemble_size
251
266
)
252
-
253
- sample_prior (ensemble , range (ensemble_size ), random_seed = 1234 )
254
-
255
- data = ensemble .load_all_gen_kw_data ()
256
- snapshot .assert_match (data .round (12 ).to_csv (), "gen_kw_unsorted" )
257
-
258
-
259
- @pytest .mark .parametrize (
260
- "reals, expect_error" ,
261
- [
262
- pytest .param (
263
- list (range (10 )),
264
- False ,
265
- id = "correct_active_realizations" ,
266
- ),
267
- pytest .param ([10 , 11 ], True , id = "incorrect_active_realizations" ),
268
- ],
269
- )
270
- def test_save_parameters_to_storage_from_design_dataframe (
271
- tmp_path , reals , expect_error
272
- ):
273
- design_path = tmp_path / "design_matrix.xlsx"
274
- ensemble_size = 10
275
- a_values = np .random .default_rng ().uniform (- 5 , 5 , 10 )
276
- b_values = np .random .default_rng ().uniform (- 5 , 5 , 10 )
277
- c_values = np .random .default_rng ().uniform (- 5 , 5 , 10 )
278
- design_matrix_df = DataFrame ({"a" : a_values , "b" : b_values , "c" : c_values })
279
- with ExcelWriter (design_path ) as xl_write :
280
- design_matrix_df .to_excel (xl_write , index = False , sheet_name = "DesignSheet01" )
281
- DataFrame ().to_excel (
282
- xl_write , index = False , sheet_name = "DefaultValues" , header = False
283
- )
284
- design_matrix = DesignMatrix (design_path , "DesignSheet01" , "DefaultValues" )
285
- with open_storage (tmp_path / "storage" , mode = "w" ) as storage :
286
- experiment_id = storage .create_experiment (
287
- parameters = [design_matrix .parameter_configuration ]
288
- )
289
- ensemble = storage .create_ensemble (
290
- experiment_id , name = "default" , ensemble_size = ensemble_size
267
+ sample_prior (
268
+ ensemble ,
269
+ range (ensemble_size ),
270
+ random_seed = 1234 ,
271
+ design_matrix_df = ert_config .analysis_config .design_matrix .design_matrix_df ,
291
272
)
292
- if expect_error :
293
- with pytest .raises (KeyError ):
294
- save_design_matrix_to_ensemble (
295
- design_matrix .design_matrix_df , ensemble , reals
296
- )
297
- else :
298
- save_design_matrix_to_ensemble (
299
- design_matrix .design_matrix_df , ensemble , reals
300
- )
301
- params = ensemble .load_parameters (DESIGN_MATRIX_GROUP )["values" ]
302
- all (params .names .values == ["a" , "b" , "c" ])
303
- np .testing .assert_array_almost_equal (params [:, 0 ], a_values )
304
- np .testing .assert_array_almost_equal (params [:, 1 ], b_values )
305
- np .testing .assert_array_almost_equal (params [:, 2 ], c_values )
273
+ data = ensemble .load_parameters_scalar ()
274
+ print (data )
275
+ print (ert_config .ensemble_config .parameter_configuration )
276
+ # TODO refactor this!!!
277
+ # data = ensemble.load_all_gen_kw_data()
278
+ # snapshot.assert_match(data.round(12).to_csv(), "gen_kw_unsorted")
279
+
280
+
281
+ # TODO remove this test
282
+ # @pytest.mark.parametrize(
283
+ # "reals, expect_error",
284
+ # [
285
+ # pytest.param(
286
+ # list(range(10)),
287
+ # False,
288
+ # id="correct_active_realizations",
289
+ # ),
290
+ # pytest.param([10, 11], True, id="incorrect_active_realizations"),
291
+ # ],
292
+ # )
293
+ # def test_save_parameters_to_storage_from_design_dataframe(
294
+ # tmp_path, reals, expect_error
295
+ # ):
296
+ # design_path = tmp_path / "design_matrix.xlsx"
297
+ # ensemble_size = 10
298
+ # a_values = np.random.default_rng().uniform(-5, 5, 10)
299
+ # b_values = np.random.default_rng().uniform(-5, 5, 10)
300
+ # c_values = np.random.default_rng().uniform(-5, 5, 10)
301
+ # design_matrix_df = DataFrame({"a": a_values, "b": b_values, "c": c_values})
302
+ # with ExcelWriter(design_path) as xl_write:
303
+ # design_matrix_df.to_excel(xl_write, index=False, sheet_name="DesignSheet01")
304
+ # DataFrame().to_excel(
305
+ # xl_write, index=False, sheet_name="DefaultValues", header=False
306
+ # )
307
+ # design_matrix = DesignMatrix(design_path, "DesignSheet01", "DefaultValues")
308
+ # with open_storage(tmp_path / "storage", mode="w") as storage:
309
+ # experiment_id = storage.create_experiment(
310
+ # parameters=[design_matrix.parameter_configuration]
311
+ # )
312
+ # ensemble = storage.create_ensemble(
313
+ # experiment_id, name="default", ensemble_size=ensemble_size
314
+ # )
315
+ # if expect_error:
316
+ # with pytest.raises(KeyError):
317
+ # save_design_matrix_to_ensemble(
318
+ # design_matrix.design_matrix_df, ensemble, reals
319
+ # )
320
+ # else:
321
+ # save_design_matrix_to_ensemble(
322
+ # design_matrix.design_matrix_df, ensemble, reals
323
+ # )
324
+ # params = ensemble.load_parameters(DESIGN_MATRIX_GROUP)["values"]
325
+ # all(params.names.values == ["a", "b", "c"])
326
+ # np.testing.assert_array_almost_equal(params[:, 0], a_values)
327
+ # np.testing.assert_array_almost_equal(params[:, 1], b_values)
328
+ # np.testing.assert_array_almost_equal(params[:, 2], c_values)
0 commit comments