33from datetime import datetime , timedelta
44from pathlib import Path
55from textwrap import dedent
6+ from typing import cast
67
78import hypothesis .strategies as st
89import polars as pl
2526 ObservationConfigError ,
2627 ObservationType ,
2728)
29+ from ert .config .rft_config import RFTConfig
2830from ert .namespace import Namespace
2931
3032pytestmark = pytest .mark .filterwarnings ("ignore:Config contains a SUMMARY key" )
@@ -103,7 +105,7 @@ def make_refcase_observations(
103105 run_convert_observations (Namespace (config = "config.ert" ))
104106
105107 migrated_config = ErtConfig .from_file ("config.ert" )
106- return migrated_config .observations
108+ return create_observation_dataframes ( migrated_config .observation_declarations , None )
107109
108110
109111@pytest .mark .usefixtures ("use_tmpdir" )
@@ -228,7 +230,9 @@ def test_that_summary_observations_can_use_restart_for_index_if_refcase_is_given
228230 run_convert_observations (Namespace (config = str (config_file )))
229231
230232 migrated_config = ErtConfig .from_file ("config.ert" )
231- observations = migrated_config .observations ["summary" ]
233+ observations = create_observation_dataframes (
234+ migrated_config .observation_declarations , None
235+ )["summary" ]
232236
233237 assert len (observations ["time" ]) == 1
234238 assert list (observations ["observations" ]) == pytest .approx ([value ])
@@ -279,7 +283,9 @@ def test_that_summary_observations_can_use_restart_for_index_if_time_map_is_give
279283 run_convert_observations (Namespace (config = str (config_file )))
280284
281285 migrated_config = ErtConfig .from_file ("config.ert" )
282- observations = migrated_config .observations ["summary" ]
286+ observations = create_observation_dataframes (
287+ migrated_config .observation_declarations , None
288+ )["summary" ]
283289
284290 # RESTART is a 1-based index; Python lists are 0-based.
285291 assert list (observations ["time" ]) == [datetime .fromisoformat (time_map [restart ])]
@@ -308,8 +314,10 @@ def test_that_rft_config_is_created_from_observations():
308314 ),
309315 }
310316 )
311-
312- observations = ert_config .observations ["rft" ]
317+ rft_config = cast (RFTConfig , ert_config .ensemble_config .response_configs ["rft" ])
318+ observations = create_observation_dataframes (
319+ ert_config .observation_declarations , rft_config
320+ )["rft" ]
313321 assert_frame_equal (
314322 observations ,
315323 pl .DataFrame (
@@ -325,14 +333,13 @@ def test_that_rft_config_is_created_from_observations():
325333 }
326334 ),
327335 )
328- rft_config = ert_config .ensemble_config .response_configs ["rft" ]
329336 assert rft_config .data_to_read == {"well" : {"2013-03-31" : ["PRESSURE" ]}}
330337 assert rft_config .locations == [(30.0 , 71.0 , 2000.0 )]
331338
332339
333340def test_that_rft_observations_with_unknown_zones_errors ():
334341 with pytest .raises (ConfigValidationError , match = "no such zone" ):
335- _ = ErtConfig .from_dict (
342+ ErtConfig .from_dict (
336343 {
337344 "ECLBASE" : "ECLIPSE_CASE" ,
338345 "OBS_CONFIG" : (
@@ -388,7 +395,9 @@ def test_that_the_date_keyword_sets_the_summary_index_without_time_map_or_refcas
388395 run_convert_observations (Namespace (config = "config.ert" ))
389396
390397 migrated = ErtConfig .from_file ("config.ert" )
391- observations = migrated .observations ["summary" ]
398+ observations = create_observation_dataframes (
399+ migrated .observation_declarations , None
400+ )["summary" ]
392401
393402 assert list (observations ["time" ]) == [datetime .fromisoformat (date )]
394403
@@ -457,12 +466,10 @@ def test_that_the_date_keyword_sets_the_general_index_by_looking_up_time_map():
457466 Path ("config.ert" ).write_text (config_content , encoding = "utf-8" )
458467
459468 run_convert_observations (Namespace (config = "config.ert" ))
460- assert (
461- ErtConfig .from_file ("config.ert" )
462- .observations ["gen_data" ]
463- .to_dicts ()[0 ]["report_step" ]
464- == restart
469+ observations = create_observation_dataframes (
470+ ErtConfig .from_file ("config.ert" ).observation_declarations , None
465471 )
472+ assert observations ["gen_data" ].to_dicts ()[0 ]["report_step" ] == restart
466473
467474
468475@given (summary = summaries (), data = st .data ())
@@ -512,12 +519,10 @@ def test_that_the_date_keyword_sets_the_report_step_by_looking_up_refcase(
512519 )
513520 Path ("config.ert" ).write_text (config_content , encoding = "utf-8" )
514521 run_convert_observations (Namespace (config = "config.ert" ))
515- assert (
516- ErtConfig .from_file ("config.ert" )
517- .observations ["gen_data" ]
518- .to_dicts ()[0 ]["report_step" ]
519- == restart
522+ observations = create_observation_dataframes (
523+ ErtConfig .from_file ("config.ert" ).observation_declarations , None
520524 )
525+ assert observations ["gen_data" ].to_dicts ()[0 ]["report_step" ] == restart
521526
522527
523528@pytest .mark .parametrize ("std" , [- 1.0 , 0 , 0.0 ])
@@ -1228,7 +1233,9 @@ def test_that_history_observations_values_are_fetched_from_refcase(
12281233 Path ("config.ert" ).write_text (config_content , encoding = "utf-8" )
12291234
12301235 run_convert_observations (Namespace (config = "config.ert" ))
1231- observations = ErtConfig .from_file ("config.ert" ).observations ["summary" ]
1236+ observations = create_observation_dataframes (
1237+ ErtConfig .from_file ("config.ert" ).observation_declarations , None
1238+ )["summary" ]
12321239
12331240 steps = len (unsmry .steps )
12341241 assert list (observations ["response_key" ]) == ["FOPR" ] * steps
@@ -1407,7 +1414,9 @@ def test_that_history_observation_errors_are_calculated_correctly(tmpdir):
14071414 Path ("config.ert" ).write_text (config_content , encoding = "utf-8" )
14081415
14091416 run_convert_observations (Namespace (config = "config.ert" ))
1410- observations = ErtConfig .from_file ("config.ert" ).observations ["summary" ]
1417+ observations = create_observation_dataframes (
1418+ ErtConfig .from_file ("config.ert" ).observation_declarations , None
1419+ )["summary" ]
14111420
14121421 assert list (observations ["response_key" ]) == ["FGPR" , "FOPR" , "FWPR" ]
14131422 assert list (observations ["observations" ]) == pytest .approx ([15 , 20 , 25 ])
@@ -1448,7 +1457,9 @@ def test_that_segment_defaults_are_applied(tmpdir):
14481457 Path ("config.ert" ).write_text (config_content , encoding = "utf-8" )
14491458
14501459 run_convert_observations (Namespace (config = "config.ert" ))
1451- observations = ErtConfig .from_file ("config.ert" ).observations ["summary" ]
1460+ observations = create_observation_dataframes (
1461+ ErtConfig .from_file ("config.ert" ).observation_declarations , None
1462+ )["summary" ]
14521463
14531464 # default error_min is 0.1
14541465 # default error method is RELMIN
0 commit comments