diff --git a/src/ert/gui/simulation/experiment_panel.py b/src/ert/gui/simulation/experiment_panel.py index 3e4a494f872..4a2de6c3d4f 100644 --- a/src/ert/gui/simulation/experiment_panel.py +++ b/src/ert/gui/simulation/experiment_panel.py @@ -191,7 +191,7 @@ def addExperimentConfigPanel( experiment_type = panel.get_experiment_type() self._experiment_widgets[experiment_type] = panel self._experiment_type_combo.addDescriptionItem( - experiment_type.name(), + experiment_type.display_name(), experiment_type.description(), experiment_type.group(), ) @@ -220,9 +220,11 @@ def getActions() -> list[QAction]: return [] def get_current_experiment_type(self) -> Any: - experiment_type_name = self._experiment_type_combo.currentText() + experiment_type_display_name = self._experiment_type_combo.currentText() return next( - w for w in self._experiment_widgets if w.name() == experiment_type_name + w + for w in self._experiment_widgets + if w.display_name() == experiment_type_display_name ) def get_experiment_arguments(self) -> Any: diff --git a/src/ert/run_models/base_run_model.py b/src/ert/run_models/base_run_model.py index 1b859277cef..7907f9a368f 100644 --- a/src/ert/run_models/base_run_model.py +++ b/src/ert/run_models/base_run_model.py @@ -204,6 +204,10 @@ def log_at_startup(self) -> None: @abstractmethod def name(cls) -> str: ... + @classmethod + def display_name(cls) -> str: + return cls.name() + @classmethod @abstractmethod def description(cls) -> str: ... diff --git a/src/ert/run_models/iterated_ensemble_smoother.py b/src/ert/run_models/iterated_ensemble_smoother.py index ab75697bed2..d6772c97147 100644 --- a/src/ert/run_models/iterated_ensemble_smoother.py +++ b/src/ert/run_models/iterated_ensemble_smoother.py @@ -224,4 +224,4 @@ def name(cls) -> str: @classmethod def description(cls) -> str: - return "Sample parameters → [evaluate → update] several iterations" + return "Sample parameters → [evaluate → update] several iterations.\nDeprecated algorithm. Prefer ES-MDA." diff --git a/src/ert/run_models/multiple_data_assimilation.py b/src/ert/run_models/multiple_data_assimilation.py index 4d08b49ae73..d99a94d37b5 100644 --- a/src/ert/run_models/multiple_data_assimilation.py +++ b/src/ert/run_models/multiple_data_assimilation.py @@ -192,9 +192,13 @@ def parse_weights(weights: str) -> list[float]: def name(cls) -> str: return "Multiple data assimilation" + @classmethod + def display_name(cls) -> str: + return cls.name() + " - Recommended algorithm" + @classmethod def description(cls) -> str: - return "[Sample|restart] → [evaluate → update] for each weight" + return "[Sample|restart] → [evaluate → update] for each weight." @classmethod def group(cls) -> str | None: diff --git a/tests/ert/ui_tests/gui/conftest.py b/tests/ert/ui_tests/gui/conftest.py index bfdddf77a97..2100ced7685 100644 --- a/tests/ert/ui_tests/gui/conftest.py +++ b/tests/ert/ui_tests/gui/conftest.py @@ -239,7 +239,7 @@ def func(experiment_mode, gui, click_done=True): assert isinstance(experiment_panel, ExperimentPanel) simulation_mode_combo = experiment_panel.findChild(QComboBox) assert isinstance(simulation_mode_combo, QComboBox) - simulation_mode_combo.setCurrentText(experiment_mode.name()) + simulation_mode_combo.setCurrentText(experiment_mode.display_name()) simulation_settings = experiment_panel._experiment_widgets[ experiment_panel.get_current_experiment_type() ] @@ -255,7 +255,7 @@ def handle_dialog(): lambda: handle_run_path_dialog(gui, qtbot, delete_run_path=False), ) - if not experiment_mode.name() in { + if experiment_mode.name() not in { "Ensemble experiment", "Evaluate ensemble", }: diff --git a/tests/ert/ui_tests/gui/test_csv_export.py b/tests/ert/ui_tests/gui/test_csv_export.py index 7d53cd9a0a5..035332ee4a7 100644 --- a/tests/ert/ui_tests/gui/test_csv_export.py +++ b/tests/ert/ui_tests/gui/test_csv_export.py @@ -89,7 +89,7 @@ def test_csv_export(esmda_has_run, qtbot, ensemble_select): def run_experiment_via_gui(gui, qtbot): experiment_panel = get_child(gui, ExperimentPanel) simulation_mode_combo = get_child(experiment_panel, QComboBox) - simulation_mode_combo.setCurrentText(EnsembleExperiment.name()) + simulation_mode_combo.setCurrentText(EnsembleExperiment.display_name()) ensemble_experiment_panel = get_child(experiment_panel, EnsembleExperimentPanel) ensemble_experiment_panel._ensemble_name_field.setText("iter-0") diff --git a/tests/ert/ui_tests/gui/test_main_window.py b/tests/ert/ui_tests/gui/test_main_window.py index 4562dd86a67..1dcc268578f 100644 --- a/tests/ert/ui_tests/gui/test_main_window.py +++ b/tests/ert/ui_tests/gui/test_main_window.py @@ -244,7 +244,7 @@ def test_that_es_mda_is_disabled_when_weights_are_invalid(qtbot): combo_box = get_child(gui, QComboBox, name="experiment_type") combo_box.setCurrentIndex(3) - assert combo_box.currentText() == "Multiple data assimilation" + assert combo_box.currentText() == MultipleDataAssimilation.display_name() es_mda_panel = get_child(gui, QWidget, name="ES_MDA_panel") assert es_mda_panel @@ -702,7 +702,7 @@ def test_that_es_mda_restart_run_box_is_disabled_when_there_are_no_cases(qtbot): assert combo_box.count() == 7 combo_box.setCurrentIndex(3) - assert combo_box.currentText() == "Multiple data assimilation" + assert combo_box.currentText() == MultipleDataAssimilation.display_name() es_mda_panel = get_child(gui, QWidget, name="ES_MDA_panel") assert es_mda_panel @@ -752,10 +752,13 @@ def test_validation_of_experiment_names_in_run_models( run_experiment = get_child(experiment_panel, QWidget, name="run_experiment") experiment_types_to_test = ( - (EnsembleExperiment.name(), "Ensemble_experiment_panel"), - (EnsembleSmoother.name(), "ensemble_smoother_panel"), - (MultipleDataAssimilation.name(), "ES_MDA_panel"), - (IteratedEnsembleSmoother.name(), "iterated_ensemble_smoother_panel"), + (EnsembleExperiment.display_name(), "Ensemble_experiment_panel"), + (EnsembleSmoother.display_name(), "ensemble_smoother_panel"), + ( + MultipleDataAssimilation.display_name(), + "ES_MDA_panel", + ), + (IteratedEnsembleSmoother.display_name(), "iterated_ensemble_smoother_panel"), ) for exp_type, panel_name in experiment_types_to_test: experiment_types.setCurrentText(exp_type) diff --git a/tests/ert/ui_tests/gui/test_missing_parameters_to_update.py b/tests/ert/ui_tests/gui/test_missing_parameters_to_update.py index 02fc047604a..e8d744924a1 100644 --- a/tests/ert/ui_tests/gui/test_missing_parameters_to_update.py +++ b/tests/ert/ui_tests/gui/test_missing_parameters_to_update.py @@ -5,6 +5,12 @@ from qtpy.QtWidgets import QComboBox from ert.gui.simulation.experiment_panel import ExperimentPanel +from ert.run_models import ( + EnsembleExperiment, + EnsembleSmoother, + IteratedEnsembleSmoother, + MultipleDataAssimilation, +) from tests.ert.ui_tests.gui.conftest import get_child, open_gui_with_config @@ -20,19 +26,19 @@ def test_no_updateable_parameters(qtbot): for gui in open_gui_with_config("poly.ert"): experiment_panel = get_child(gui, ExperimentPanel) simulation_mode_combo = get_child(experiment_panel, QComboBox) - idx = simulation_mode_combo.findText("Ensemble smoother") + idx = simulation_mode_combo.findText(EnsembleSmoother.display_name()) assert not ( simulation_mode_combo.model().item(idx).flags() & Qt.ItemFlag.ItemIsEnabled ) - idx = simulation_mode_combo.findText("Multiple data assimilation") + idx = simulation_mode_combo.findText(MultipleDataAssimilation.display_name()) assert not ( simulation_mode_combo.model().item(idx).flags() & Qt.ItemFlag.ItemIsEnabled ) - idx = simulation_mode_combo.findText("Iterated ensemble smoother") + idx = simulation_mode_combo.findText(IteratedEnsembleSmoother.display_name()) assert not ( simulation_mode_combo.model().item(idx).flags() & Qt.ItemFlag.ItemIsEnabled ) - idx = simulation_mode_combo.findText("Ensemble experiment") + idx = simulation_mode_combo.findText(EnsembleExperiment.display_name()) assert ( simulation_mode_combo.model().item(idx).flags() & Qt.ItemFlag.ItemIsEnabled ) diff --git a/tests/ert/ui_tests/gui/test_restart_esmda.py b/tests/ert/ui_tests/gui/test_restart_esmda.py index 6c7c8e312ed..e99f39e4350 100644 --- a/tests/ert/ui_tests/gui/test_restart_esmda.py +++ b/tests/ert/ui_tests/gui/test_restart_esmda.py @@ -18,7 +18,7 @@ def test_restart_esmda(ensemble_experiment_has_run_no_failure, qtbot): experiment_panel = get_child(gui, ExperimentPanel) simulation_mode_combo = get_child(experiment_panel, QComboBox) - simulation_mode_combo.setCurrentText(MultipleDataAssimilation.name()) + simulation_mode_combo.setCurrentText(MultipleDataAssimilation.display_name()) es_mda_panel = gui.findChild(QWidget, name="ES_MDA_panel") assert es_mda_panel @@ -49,7 +49,7 @@ def test_active_realizations_esmda(opened_main_window_poly, qtbot): experiment_panel = get_child(gui, ExperimentPanel) simulation_mode_combo = get_child(experiment_panel, QComboBox) - simulation_mode_combo.setCurrentText(SingleTestRun.name()) + simulation_mode_combo.setCurrentText(SingleTestRun.display_name()) single_test_run_panel = gui.findChild(QWidget, name="Single_test_run_panel") assert single_test_run_panel @@ -63,7 +63,7 @@ def test_active_realizations_esmda(opened_main_window_poly, qtbot): == "Total progress 100% — Experiment completed." ) - simulation_mode_combo.setCurrentText(MultipleDataAssimilation.name()) + simulation_mode_combo.setCurrentText(MultipleDataAssimilation.display_name()) es_mda_panel = gui.findChild(QWidget, name="ES_MDA_panel") assert es_mda_panel active_reals = gui.findChild(StringBox, "active_realizations_box") @@ -88,7 +88,7 @@ def test_custom_weights_stored_and_retrieved_from_metadata_esmda( experiment_panel = get_child(gui, ExperimentPanel) simulation_mode_combo = get_child(experiment_panel, QComboBox) - simulation_mode_combo.setCurrentText(MultipleDataAssimilation.name()) + simulation_mode_combo.setCurrentText(MultipleDataAssimilation.display_name()) es_mda_panel = gui.findChild(QWidget, name="ES_MDA_panel") assert es_mda_panel