diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index aea34402aac..170f05ffed5 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -12,7 +12,7 @@ _Short description of the approach_ - [ ] Added appropriate release note label - [ ] Commit history is consistent and clean, in line with the [contribution guidelines](https://github.com/equinor/ert/blob/main/CONTRIBUTING.md). - [ ] Make sure unit tests pass locally after every commit (`git rebase -i main - --exec 'pytest tests/ert/unit_tests -n auto --hypothesis-profile=fast -m "not integration_test"'`) + --exec 'pytest tests/ert/unit_tests tests/everest -n auto --hypothesis-profile=fast -m "not integration_test"'`) ## When applicable - [ ] **When there are user facing changes**: Updated documentation diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 16736f5146c..1a0d944922f 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -33,7 +33,7 @@ jobs: strategy: fail-fast: false matrix: - test-type: [ 'performance-tests', 'unit-tests', 'gui-tests', 'cli-tests' ] + test-type: [ 'performance-and-unit-tests', 'gui-tests', 'cli-tests' ] python-version: [ '3.11', '3.12' ] os: [ ubuntu-latest ] uses: ./.github/workflows/test_ert.yml @@ -47,7 +47,7 @@ jobs: strategy: fail-fast: false matrix: - test-type: [ 'test', 'integration-test', 'everest-models-test', 'doc'] + test-type: [ 'test', 'everest-models-test', 'doc'] python-version: [ '3.11', '3.12' ] os: [ ubuntu-latest ] exclude: @@ -66,7 +66,7 @@ jobs: fail-fast: false matrix: os: [ ubuntu-latest ] - python-version: [ '3.11', '3.12' ] + python-version: [ '3.11' ] uses: ./.github/workflows/test_ert_with_slurm.yml with: os: ${{ matrix.os }} @@ -78,7 +78,7 @@ jobs: fail-fast: false matrix: os: [ ubuntu-latest ] - python-version: [ '3.11', '3.12' ] + python-version: [ '3.11' ] uses: ./.github/workflows/test_ert_with_flow.yml with: os: ${{ matrix.os }} @@ -90,7 +90,7 @@ jobs: strategy: fail-fast: false matrix: - test-type: [ 'test', 'integration-test', 'everest-models-test' ] + test-type: [ 'test', 'everest-models-test' ] os: [ 'macos-latest' ] python-version: [ '3.12' ] @@ -106,7 +106,7 @@ jobs: strategy: fail-fast: false matrix: - test-type: [ 'performance-tests', 'unit-tests', 'gui-tests', 'cli-tests' ] + test-type: [ 'performance-and-unit-tests', 'gui-tests', 'cli-tests' ] python-version: [ '3.12' ] os: [ 'macos-latest'] @@ -115,6 +115,7 @@ jobs: os: ${{ matrix.os }} python-version: ${{ matrix.python-version }} test-type: ${{ matrix.test-type }} + select-string: '"not skip_mac_ci"' secrets: inherit docs-ert: diff --git a/.github/workflows/run_ert_test_data_setups.yml b/.github/workflows/run_ert_test_data_setups.yml index 6f2f2a0b0d0..c5ec7c0bf83 100644 --- a/.github/workflows/run_ert_test_data_setups.yml +++ b/.github/workflows/run_ert_test_data_setups.yml @@ -37,12 +37,6 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Install Ubuntu dependencies - if: matrix.os == 'ubuntu-latest' - run: | - sudo apt-get update - sudo apt-get install xvfb libxcb-image0 libxcb-icccm4 libxcb-keysyms1 libxcb-randr0 libxcb-render0 libxcb-render-util0 libxcb-shape0 libxcb-shm0 libxcb-xfixes0 libxcb-xinerama0 libfontconfig1 libxcb-xkb1 libxkbcommon-x11-0 libdbus-1-3 - - name: Install uv uses: astral-sh/setup-uv@v5 diff --git a/.github/workflows/test_ert.yml b/.github/workflows/test_ert.yml index 9e0da2f02d7..c38a0f520dc 100644 --- a/.github/workflows/test_ert.yml +++ b/.github/workflows/test_ert.yml @@ -7,6 +7,9 @@ on: type: string test-type: type: string + select-string: + type: string + default: "''" env: ERT_SHOW_BACKTRACE: 1 @@ -40,7 +43,7 @@ jobs: - name: GUI Test if: inputs.test-type == 'gui-tests' run: | - pytest --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy -v --mpl --benchmark-disable tests/ert/ui_tests/gui --durations=25 + pytest -m ${{ inputs.select-string }} --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy -v --mpl --benchmark-disable tests/ert/ui_tests/gui --durations=25 - name: Upload artifact images uses: actions/upload-artifact@v4 @@ -53,19 +56,14 @@ jobs: - name: CLI Test if: inputs.test-type == 'cli-tests' run: | - pytest --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy -v --benchmark-disable --dist loadgroup tests/ert/ui_tests/cli --durations=25 + pytest -m ${{ inputs.select-string }} --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy -v --benchmark-disable --dist loadgroup tests/ert/ui_tests/cli --durations=25 - name: Unit Test - if: inputs.test-type == 'unit-tests' + if: inputs.test-type == 'performance-and-unit-tests' run: | - pytest --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy -n logical --show-capture=stderr -v --benchmark-disable --mpl --dist loadgroup tests/ert/unit_tests --durations=25 + pytest -m ${{ inputs.select-string }} --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy -n logical --show-capture=stderr -v --benchmark-disable --mpl --dist loadgroup tests/ert/unit_tests tests/ert/performance_tests --durations=25 pytest --doctest-modules --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov2.xml src/ --ignore src/ert/dark_storage - - name: Performance Test - if: inputs.test-type == 'performance-tests' - run: | - pytest --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy -n logical --show-capture=stderr -v --benchmark-disable --dist loadgroup tests/ert/performance_tests --durations=25 - - name: Upload coverage to Codecov id: codecov1 uses: codecov/codecov-action@v5 diff --git a/.github/workflows/test_ert_with_slurm.yml b/.github/workflows/test_ert_with_slurm.yml index 2acc76cb723..80041c70bad 100644 --- a/.github/workflows/test_ert_with_slurm.yml +++ b/.github/workflows/test_ert_with_slurm.yml @@ -13,7 +13,7 @@ jobs: test-ert-on-slurm: name: Run ert tests timeout-minutes: 20 - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 @@ -34,13 +34,20 @@ jobs: run: | set -e - sudo apt install slurmd slurmctld -y + sudo apt install libpmix-dev slurmd slurmctld -y + + sudo mkdir /var/spool/slurm + sudo chown slurm /var/spool/slurm cat < slurm.conf ClusterName=localcluster + SlurmUser=slurm SlurmctldHost=localhost - SelectType=select/cons_res # Select nodes based on consumable resources + SchedulerType=sched/builtin # Avoid default backfill scheduler which adds delays + SelectType=select/cons_tres # Select nodes based on consumable resources SelectTypeParameters=CR_Core # Cores are the consumable resource + StateSaveLocation=/var/spool/slurm + PriorityType=priority/basic # Tests depend on FIFO scheduling ProctrackType=proctrack/linuxproc # Use /proc to track processes PartitionName=LocalQ Nodes=ALL Default=YES MaxTime=INFINITE State=UP PartitionName=AlternativeQ Nodes=ALL Default=YES MaxTime=INFINITE State=UP @@ -54,9 +61,13 @@ jobs: sudo mv slurm.conf /etc/slurm/ sudo systemctl start slurmd # The compute node slurm daemon sudo systemctl start slurmctld # The slurm controller daemon + sleep 1 + systemctl status slurmd + systemctl status slurmctld # Show partition and node information configured: sinfo + scontrol show nodes - name: Verify slurm cluster works # Timeout is set low to catch a misconfigured cluster where srun will hang. @@ -69,7 +80,10 @@ jobs: run: | set -e export _ERT_TESTS_ALTERNATIVE_QUEUE=AlternativeQ - pytest tests/ert/unit_tests/scheduler --slurm + pytest tests/ert/unit_tests/scheduler/test_{generic,slurm}_driver.py -sv --slurm \ + -n 8 --durations=10 -k "not (LsfDriver or LocalDriver or OpenPBSDriver)" + scontrol show job + pytest tests/ert/ui_tests/cli/test_missing_runpath.py --slurm - name: Test poly-example on slurm diff --git a/.github/workflows/test_everest.yml b/.github/workflows/test_everest.yml index f3dfb60f845..3becdf4feda 100644 --- a/.github/workflows/test_everest.yml +++ b/.github/workflows/test_everest.yml @@ -41,22 +41,12 @@ jobs: - name: Run Tests Linux if: ${{ inputs.test-type == 'test' && runner.os != 'macOS'}} run: | - pytest tests/everest -n 4 --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy -m "not integration_test" --dist loadgroup -sv + pytest tests/everest -n 4 --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy --dist loadgroup -sv - name: Run Tests macOS if: ${{ inputs.test-type == 'test' && runner.os == 'macOS'}} run: | - python -m pytest tests/everest -n 4 --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy -m "not integration_test and not fails_on_macos_github_workflow" --dist loadgroup -sv - - - name: Run Integration Tests Linux - if: ${{inputs.test-type == 'integration-test' && runner.os != 'macOS'}} - run: | - pytest tests/everest -n 4 --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy -m "integration_test" --dist loadgroup -sv - - - name: Run Integration Tests macOS - if: ${{inputs.test-type == 'integration-test' && runner.os == 'macOS'}} - run: | - python -m pytest tests/everest -n 4 --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy -m "integration_test and not fails_on_macos_github_workflow" --dist loadgroup + python -m pytest tests/everest -n 4 --cov=ert --cov=everest --cov=_ert --cov-report=xml:cov1.xml --junit-xml=junit.xml -o junit_family=legacy -m "not skip_mac_ci" --dist loadgroup -sv - name: Build Documentation if: inputs.test-type == 'doc' diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a0e849e59f9..ffb4ff25131 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,3 +1,4 @@ +default_install_hook_types: [pre-commit] repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v5.0.0 @@ -16,3 +17,14 @@ repos: - id: ruff args: [ --fix ] - id: ruff-format + +- repo: local + hooks: + - id: pytest + name: pytest + entry: pytest + args: [-n, auto, tests/ert/unit_tests, tests/everest, --hypothesis-profile=fast, -m, not integration_test] + language: system + types: [python] + stages: [pre-push] + pass_filenames: false diff --git a/README.md b/README.md index 9f77ae49b26..714560d6e3c 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ There are many kinds of tests in the `tests` directory, while iterating on your code you can run a fast subset of the tests with ```sh -pytest -n auto --hypothesis-profile=fast tests/ert/unit_tests -m "not integration_test" +pytest -n auto --hypothesis-profile=fast tests/ert/unit_tests tests/everest -m "not integration_test" ``` [Git LFS](https://git-lfs.com/) must be installed to get all the files. This is @@ -124,6 +124,14 @@ $ pip install pre-commit $ pre-commit install ``` +There is also a pre-push hook configured in `pre-commit` to run a collection of +relatively fast tests, to install this hook: + +```sh +$ pre-commit install --hook-type pre-push +``` + + ### Trouble with setup As a simple test of your `ert` installation, you may try to run one of the diff --git a/justfile b/justfile index 7de5c605d55..810d6793548 100644 --- a/justfile +++ b/justfile @@ -10,4 +10,14 @@ snake_oil: # execute rapid unittests rapid-tests: - nice pytest -n auto tests/ert/unit_tests --hypothesis-profile=fast -m "not integration_test" + nice pytest -n auto tests/ert/unit_tests tests/everest --hypothesis-profile=fast -m "not integration_test" + +check-all: + mypy src/ert src/everest + pre-commit run --all-files + pytest tests/everest -n 4 -m everest_models_test --dist loadgroup + pytest tests/everest -n 4 -m integration_test --dist loadgroup + pytest tests/ert/ui_tests/ --mpl --dist loadgroup + pytest tests/ert/unit_tests/ -n 4 --dist loadgroup + pytest --doctest-modules src/ --ignore src/ert/dark_storage + pytest tests/ert/performance_tests --benchmark-disable --dist loadgroup diff --git a/pyproject.toml b/pyproject.toml index 010607a8298..c08c27b0a6e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -171,7 +171,7 @@ markers = [ "slow", "everest_models_test", "integration_test", - "fails_on_macos_github_workflow", # Tests marked fail due to gui-related issues + "skip_mac_ci", ] log_cli = "false" asyncio_mode = "auto" diff --git a/src/_ert/async_utils.py b/src/_ert/async_utils.py deleted file mode 100644 index efd49b958b8..00000000000 --- a/src/_ert/async_utils.py +++ /dev/null @@ -1,54 +0,0 @@ -from __future__ import annotations - -import asyncio -import logging -import traceback -from collections.abc import Coroutine, Generator -from contextlib import suppress -from typing import Any, TypeVar - -logger = logging.getLogger(__name__) - -_T = TypeVar("_T") -_T_co = TypeVar("_T_co", covariant=True) - - -def new_event_loop() -> asyncio.AbstractEventLoop: - loop = asyncio.new_event_loop() - loop.set_task_factory(_create_task) - return loop - - -def get_running_loop() -> asyncio.AbstractEventLoop: - try: - return asyncio.get_running_loop() - except RuntimeError: - loop = new_event_loop() - asyncio.set_event_loop(loop) - return loop - - -def _create_task( - loop: asyncio.AbstractEventLoop, - coro: Coroutine[Any, Any, _T] | Generator[Any, None, _T], -) -> asyncio.Task[_T]: - assert asyncio.iscoroutine(coro) - task = asyncio.Task(coro, loop=loop) - task.add_done_callback(_done_callback) - return task - - -def _done_callback(task: asyncio.Task[_T_co]) -> None: - assert task.done() - with suppress(asyncio.CancelledError): - if (exc := task.exception()) is None: - return - - exc_traceback = "".join( - traceback.format_exception(None, exc, exc.__traceback__) - ) - logger.error( - f"Exception in scheduler task {task.get_name()}: {exc}\n" - f"Traceback: {exc_traceback}" - ) - raise exc diff --git a/src/_ert/forward_model_runner/client.py b/src/_ert/forward_model_runner/client.py index 62fdd4056fb..cf9f6ea7edd 100644 --- a/src/_ert/forward_model_runner/client.py +++ b/src/_ert/forward_model_runner/client.py @@ -18,6 +18,8 @@ class ClientConnectionError(Exception): CONNECT_MSG = b"CONNECT" DISCONNECT_MSG = b"DISCONNECT" ACK_MSG = b"ACK" +HEARTBEAT_MSG = b"BEAT" +HEARTBEAT_TIMEOUT = 5.0 class Client: @@ -83,7 +85,7 @@ async def connect(self) -> None: await self._term_receiver_task() self._receiver_task = asyncio.create_task(self._receiver()) try: - await self.send(CONNECT_MSG, retries=1) + await self.send(CONNECT_MSG) except ClientConnectionError: await self._term_receiver_task() self.term() @@ -93,11 +95,23 @@ async def process_message(self, msg: str) -> None: raise NotImplementedError("Only monitor can receive messages!") async def _receiver(self) -> None: + last_heartbeat_time: float | None = None while True: try: _, raw_msg = await self.socket.recv_multipart() if raw_msg == ACK_MSG: self._ack_event.set() + elif raw_msg == HEARTBEAT_MSG: + if ( + last_heartbeat_time + and (asyncio.get_running_loop().time() - last_heartbeat_time) + > 2 * HEARTBEAT_TIMEOUT + ): + await self.socket.send_multipart([b"", CONNECT_MSG]) + logger.warning( + f"{self.dealer_id} heartbeat failed - reconnecting." + ) + last_heartbeat_time = asyncio.get_running_loop().time() else: await self.process_message(raw_msg.decode("utf-8")) except zmq.ZMQError as exc: @@ -144,5 +158,5 @@ async def send(self, message: str | bytes, retries: int | None = None) -> None: self.socket.connect(self.url) backoff = min(backoff * 2, 10) # Exponential backoff raise ClientConnectionError( - f"{self.dealer_id} Failed to send {message!r} after retries!" + f"{self.dealer_id} Failed to send {message!r} to {self.url} after retries!" ) diff --git a/src/_ert/forward_model_runner/forward_model_step.py b/src/_ert/forward_model_runner/forward_model_step.py index b9350ce1b00..0757be89003 100644 --- a/src/_ert/forward_model_runner/forward_model_step.py +++ b/src/_ert/forward_model_runner/forward_model_step.py @@ -186,9 +186,11 @@ def _run(self) -> Generator[Start | Exited | Running | None]: exit_code = None max_memory_usage = 0 + max_cpu_seconds = 0 fm_step_pids = {int(process.pid)} while exit_code is None: (memory_rss, cpu_seconds, oom_score, pids) = _get_processtree_data(process) + max_cpu_seconds = max(max_cpu_seconds, cpu_seconds or 0) fm_step_pids |= pids max_memory_usage = max(memory_rss, max_memory_usage) yield Running( @@ -198,7 +200,7 @@ def _run(self) -> Generator[Start | Exited | Running | None]: max_rss=max_memory_usage, fm_step_id=self.index, fm_step_name=self.job_data.get("name"), - cpu_seconds=cpu_seconds, + cpu_seconds=max_cpu_seconds, oom_score=oom_score, ), ) diff --git a/src/ert/__main__.py b/src/ert/__main__.py index 11808d0ed2c..6b5155ecbb7 100755 --- a/src/ert/__main__.py +++ b/src/ert/__main__.py @@ -53,7 +53,9 @@ def run_ert_storage(args: Namespace, _: ErtPluginManager | None = None) -> None: with StorageService.start_server( - verbose=True, project=ErtConfig.from_file(args.config).ens_path + verbose=True, + project=ErtConfig.from_file(args.config).ens_path, + parent_pid=os.getpid(), ) as server: server.wait() diff --git a/src/ert/analysis/misfit_preprocessor.py b/src/ert/analysis/misfit_preprocessor.py index beb6a5e21c7..af5ac5f5e7b 100644 --- a/src/ert/analysis/misfit_preprocessor.py +++ b/src/ert/analysis/misfit_preprocessor.py @@ -132,7 +132,7 @@ def main( scale_factors = np.ones(len(obs_errors)) nr_components = np.ones(len(obs_errors), dtype=int) - scaled_responses = responses * obs_errors.reshape(-1, 1) + scaled_responses = responses / obs_errors.reshape(-1, 1) if len(obs_errors) <= 2: # Either observations are not correlated, or only correlated diff --git a/src/ert/config/design_matrix.py b/src/ert/config/design_matrix.py index 4d38933c2a6..1ecd5995bd8 100644 --- a/src/ert/config/design_matrix.py +++ b/src/ert/config/design_matrix.py @@ -100,19 +100,15 @@ def merge_with_other(self, dm_other: DesignMatrix) -> None: except ValueError as exc: errors.append(ErrorInfo(f"Error when merging design matrices {exc}!")) - pc_other = dm_other.parameter_configuration[DESIGN_MATRIX_GROUP] - pc_self = self.parameter_configuration[DESIGN_MATRIX_GROUP] - assert isinstance(pc_other, GenKwConfig) - assert isinstance(pc_self, GenKwConfig) - for tfd in pc_other.transform_function_definitions: - pc_self.transform_function_definitions.append(tfd) + for tfd in dm_other.parameter_configuration.transform_function_definitions: + self.parameter_configuration.transform_function_definitions.append(tfd) if errors: raise ConfigValidationError.from_collected(errors) def merge_with_existing_parameters( self, existing_parameters: list[ParameterConfig] - ) -> tuple[list[ParameterConfig], ParameterConfig | None]: + ) -> tuple[list[ParameterConfig], GenKwConfig]: """ This method merges the design matrix parameters with the existing parameters and returns the new list of existing parameters, wherein we drop GEN_KW group having a full overlap with the design matrix group. @@ -131,10 +127,8 @@ def merge_with_existing_parameters( new_param_config: list[ParameterConfig] = [] - design_parameter_group = self.parameter_configuration[DESIGN_MATRIX_GROUP] - design_keys = [] - if isinstance(design_parameter_group, GenKwConfig): - design_keys = [e.name for e in design_parameter_group.transform_functions] + design_parameter_group = self.parameter_configuration + design_keys = [e.name for e in design_parameter_group.transform_functions] design_group_added = False for parameter_group in existing_parameters: @@ -163,7 +157,7 @@ def merge_with_existing_parameters( def read_design_matrix( self, - ) -> tuple[list[bool], pd.DataFrame, dict[str, ParameterConfig]]: + ) -> tuple[list[bool], pd.DataFrame, GenKwConfig]: # Read the parameter names (first row) as strings to prevent pandas from modifying them. # This ensures that duplicate or empty column names are preserved exactly as they appear in the Excel sheet. # By doing this, we can properly validate variable names, including detecting duplicates or missing names. @@ -204,7 +198,6 @@ def read_design_matrix( ) design_matrix_df = design_matrix_df.assign(**defaults_to_use) - parameter_configuration: dict[str, ParameterConfig] = {} transform_function_definitions: list[TransformFunctionDefinition] = [] for parameter in design_matrix_df.columns: transform_function_definitions.append( @@ -214,7 +207,7 @@ def read_design_matrix( values=[], ) ) - parameter_configuration[DESIGN_MATRIX_GROUP] = GenKwConfig( + parameter_configuration = GenKwConfig( name=DESIGN_MATRIX_GROUP, forward_init=False, template_file=None, diff --git a/src/ert/config/ert_config.py b/src/ert/config/ert_config.py index 2153caa2502..1ce9b13d0a6 100644 --- a/src/ert/config/ert_config.py +++ b/src/ert/config/ert_config.py @@ -528,7 +528,7 @@ def from_dict(cls, config_dict) -> Self: env_vars = {} for key, val in config_dict.get("SETENV", []): - env_vars[key] = val + env_vars[key] = substitutions.substitute(val) return cls( substitutions=substitutions, @@ -753,7 +753,7 @@ def _create_list_of_forward_model_steps_to_run( env_vars = {} for key, val in config_dict.get("SETENV", []): - env_vars[key] = val + env_vars[key] = substitutions.substitute(val) for fm_step_description in config_dict.get(ConfigKeys.FORWARD_MODEL, []): if len(fm_step_description) > 1: diff --git a/src/ert/config/gen_kw_config.py b/src/ert/config/gen_kw_config.py index e7b9124d22c..a415026243e 100644 --- a/src/ert/config/gen_kw_config.py +++ b/src/ert/config/gen_kw_config.py @@ -156,22 +156,34 @@ def from_config_list(cls, gen_kw: list[str]) -> Self: "Loading GEN_KW from files requires %d in file format", gen_kw ) ) + if errors: raise ConfigValidationError.from_collected(errors) transform_function_definitions: list[TransformFunctionDefinition] = [] with open(parameter_file, encoding="utf-8") as file: - for item in file: + for line_number, item in enumerate(file): item = item.split("--")[0] # remove comments if item.strip(): # only lines with content items = item.split() - transform_function_definitions.append( - TransformFunctionDefinition( - name=items[0], - param_name=items[1], - values=items[2:], + if len(items) < 2: + errors.append( + ConfigValidationError.with_context( + f"Too few values on line {line_number} in parameter file {parameter_file}", + gen_kw, + ) ) - ) + else: + transform_function_definitions.append( + TransformFunctionDefinition( + name=items[0], + param_name=items[1], + values=items[2:], + ) + ) + + if errors: + raise ConfigValidationError.from_collected(errors) if gen_kw_key == "PRED" and update_parameter: ConfigWarning.warn( diff --git a/src/ert/enkf_main.py b/src/ert/enkf_main.py index 73114a7c8e9..78b04a9e7f2 100644 --- a/src/ert/enkf_main.py +++ b/src/ert/enkf_main.py @@ -65,9 +65,24 @@ def _value_export_json( if len(values) == 0: return + def parse_value(value: float | int | str) -> float | int | str: + if isinstance(value, float | int): + return value + try: + return int(value) + except ValueError: + try: + return float(value) + except ValueError: + return value + # Hierarchical - json_out: dict[str, float | dict[str, float]] = { - key: dict(param_map.items()) for key, param_map in values.items() + json_out: dict[str, float | dict[str, float | int | str]] = { + key: { + inner_key: parse_value(inner_value) + for inner_key, inner_value in param_map.items() + } + for key, param_map in values.items() } # Disallow NaN from being written: ERT produces the parameters and the only diff --git a/src/ert/ensemble_evaluator/evaluator.py b/src/ert/ensemble_evaluator/evaluator.py index e17beb95923..b9ea3bfaa78 100644 --- a/src/ert/ensemble_evaluator/evaluator.py +++ b/src/ert/ensemble_evaluator/evaluator.py @@ -5,6 +5,7 @@ import logging import traceback from collections.abc import Awaitable, Callable, Iterable, Sequence +from enum import Enum from typing import Any, get_args import zmq.asyncio @@ -27,7 +28,13 @@ event_from_json, event_to_json, ) -from _ert.forward_model_runner.client import ACK_MSG, CONNECT_MSG, DISCONNECT_MSG +from _ert.forward_model_runner.client import ( + ACK_MSG, + CONNECT_MSG, + DISCONNECT_MSG, + HEARTBEAT_MSG, + HEARTBEAT_TIMEOUT, +) from ert.ensemble_evaluator import identifiers as ids from ._ensemble import FMStepSnapshot @@ -45,13 +52,17 @@ EVENT_HANDLER = Callable[[list[Event]], Awaitable[None]] +class HeartbeatEvent(Enum): + event = HEARTBEAT_MSG + + class EnsembleEvaluator: def __init__(self, ensemble: Ensemble, config: EvaluatorServerConfig): self._config: EvaluatorServerConfig = config self._ensemble: Ensemble = ensemble self._events: asyncio.Queue[Event] = asyncio.Queue() - self._events_to_send: asyncio.Queue[Event] = asyncio.Queue() + self._events_to_send: asyncio.Queue[Event | HeartbeatEvent] = asyncio.Queue() self._manifest_queue: asyncio.Queue[Any] = asyncio.Queue() self._ee_tasks: list[asyncio.Task[None]] = [] @@ -62,9 +73,9 @@ def __init__(self, ensemble: Ensemble, config: EvaluatorServerConfig): list[tuple[EVENT_HANDLER, Event]] ] = asyncio.Queue() self._max_batch_size: int = 500 - self._batching_interval: float = 2.0 + self._batching_interval: float = 0.5 self._complete_batch: asyncio.Event = asyncio.Event() - self._server_started: asyncio.Event = asyncio.Event() + self._server_started: asyncio.Future[None] = asyncio.Future() self._clients_connected: set[bytes] = set() self._clients_empty: asyncio.Event = asyncio.Event() self._clients_empty.set() @@ -72,14 +83,26 @@ def __init__(self, ensemble: Ensemble, config: EvaluatorServerConfig): self._dispatchers_empty: asyncio.Event = asyncio.Event() self._dispatchers_empty.set() + async def _do_heartbeat_clients(self) -> None: + while True: + if self._clients_connected: + await self._events_to_send.put(HeartbeatEvent.event) + await asyncio.sleep(HEARTBEAT_TIMEOUT) + else: + await asyncio.sleep(0.1) + async def _publisher(self) -> None: - await self._server_started.wait() while True: event = await self._events_to_send.get() for identity in self._clients_connected: - await self._router_socket.send_multipart( - [identity, b"", event_to_json(event).encode("utf-8")] - ) + if isinstance(event, HeartbeatEvent): + await self._router_socket.send_multipart( + [identity, b"", event.value] + ) + else: + await self._router_socket.send_multipart( + [identity, b"", event_to_json(event).encode("utf-8")] + ) self._events_to_send.task_done() async def _append_message(self, snapshot_update_event: EnsembleSnapshot) -> None: @@ -197,6 +220,8 @@ def ensemble(self) -> Ensemble: async def handle_client(self, dealer: bytes, frame: bytes) -> None: if frame == CONNECT_MSG: + if dealer in self._clients_connected: + logger.warning(f"{dealer!r} wants to reconnect.") self._clients_connected.add(dealer) self._clients_empty.clear() current_snapshot_dict = self._ensemble.snapshot.to_dict() @@ -243,7 +268,6 @@ async def handle_dispatch(self, dealer: bytes, frame: bytes) -> None: await self._events.put(event) async def listen_for_messages(self) -> None: - await self._server_started.wait() while True: try: dealer, _, frame = await self._router_socket.recv_multipart() @@ -285,9 +309,10 @@ async def _server(self) -> None: self._router_socket.bind(f"tcp://*:{self._config.router_port}") else: self._router_socket.bind(self._config.url) - self._server_started.set() + self._server_started.set_result(None) except zmq.error.ZMQError as e: logger.error(f"ZMQ error encountered {e} during evaluator initialization") + self._server_started.set_exception(e) raise try: await self._server_done.wait() @@ -340,25 +365,23 @@ async def _signal_cancel(self) -> None: async def _start_running(self) -> None: if not self._config: raise ValueError("no config for evaluator") - self._ee_tasks = [ - asyncio.create_task(self._server(), name="server_task"), + self._ee_tasks = [asyncio.create_task(self._server(), name="server_task")] + await self._server_started + self._ee_tasks += [ + asyncio.create_task(self._do_heartbeat_clients(), name="heartbeat_task"), asyncio.create_task( self._batch_events_into_buffer(), name="dispatcher_task" ), asyncio.create_task(self._process_event_buffer(), name="processing_task"), asyncio.create_task(self._publisher(), name="publisher_task"), asyncio.create_task(self.listen_for_messages(), name="listener_task"), - ] - - await self._server_started.wait() - self._ee_tasks.append( asyncio.create_task( self._ensemble.evaluate( self._config, self._events, self._manifest_queue ), name="ensemble_task", - ) - ) + ), + ] CLOSE_SERVER_TIMEOUT = 60 diff --git a/src/ert/gui/simulation/experiment_panel.py b/src/ert/gui/simulation/experiment_panel.py index 7be4a058423..3de30c78a4d 100644 --- a/src/ert/gui/simulation/experiment_panel.py +++ b/src/ert/gui/simulation/experiment_panel.py @@ -192,7 +192,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(), ) @@ -221,9 +221,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 d8c795e10ac..f4fd22c9844 100644 --- a/src/ert/run_models/base_run_model.py +++ b/src/ert/run_models/base_run_model.py @@ -220,6 +220,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: ... @@ -579,7 +583,7 @@ async def run_ensemble_evaluator_async( evaluator_task = asyncio.create_task( evaluator.run_and_get_successful_realizations() ) - await evaluator._server_started.wait() + await evaluator._server_started if not (await self.run_monitor(ee_config, ensemble.iteration)): return [] diff --git a/src/ert/run_models/iterated_ensemble_smoother.py b/src/ert/run_models/iterated_ensemble_smoother.py index e89c7935533..29245dc7ae0 100644 --- a/src/ert/run_models/iterated_ensemble_smoother.py +++ b/src/ert/run_models/iterated_ensemble_smoother.py @@ -50,7 +50,6 @@ def __init__( update_settings: UpdateSettings, status_queue: SimpleQueue[StatusEvents], ): - self.support_restart = False self.analysis_config = analysis_config self.update_settings = update_settings @@ -83,6 +82,7 @@ def __init__( random_seed=random_seed, minimum_required_realizations=minimum_required_realizations, ) + self.support_restart = False # Initialize sies_smoother to None # It is initialized later, but kept track of here @@ -244,4 +244,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 9d7a43ad802..ca20865e860 100644 --- a/src/ert/run_models/multiple_data_assimilation.py +++ b/src/ert/run_models/multiple_data_assimilation.py @@ -51,7 +51,6 @@ def __init__( update_settings: UpdateSettings, status_queue: SimpleQueue[StatusEvents], ): - self.support_restart = False self._relative_weights = weights self.weights = self.parse_weights(weights) @@ -89,6 +88,7 @@ def __init__( random_seed=random_seed, minimum_required_realizations=minimum_required_realizations, ) + self.support_restart = False self._observations = config.observations self._parameter_configuration = config.ensemble_config.parameter_configuration self._response_configuration = config.ensemble_config.response_configuration @@ -208,9 +208,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/src/ert/scheduler/local_driver.py b/src/ert/scheduler/local_driver.py index 6db0bd838f8..4fbb532b053 100644 --- a/src/ert/scheduler/local_driver.py +++ b/src/ert/scheduler/local_driver.py @@ -63,9 +63,9 @@ async def finish(self) -> None: raise result logger.info("All realization tasks finished") - async def _run(self, iens: int, executable: str, /, *args: str) -> None: + async def _run(self, iens: int, executable: str, /, *args: str | Path) -> None: logger.debug( - f"Submitting realization {iens} as command '{executable} {' '.join(args)}'" + f"Submitting realization {iens} as command '{executable} {' '.join(str(arg) for arg in args)}'" ) try: proc = await self._init( @@ -100,7 +100,7 @@ async def _dispatch_finished_event(self, iens: int, returncode: int) -> None: self._sent_finished_events.add(iens) @staticmethod - async def _init(iens: int, executable: str, /, *args: str) -> Process: + async def _init(iens: int, executable: str, /, *args: str | Path) -> Process: """This method exists to allow for mocking it in tests""" return await asyncio.create_subprocess_exec( executable, diff --git a/src/ert/services/_storage_main.py b/src/ert/services/_storage_main.py index 14b1626b560..43c89b5cf9d 100644 --- a/src/ert/services/_storage_main.py +++ b/src/ert/services/_storage_main.py @@ -106,7 +106,9 @@ def run_server( config_args.update(reload=True, reload_dirs=[os.path.dirname(ert_shared_path)]) os.environ["ERT_STORAGE_DEBUG"] = "1" - sock = find_available_socket(custom_host=args.host) + sock = find_available_socket( + custom_host=args.host, custom_range=range(51850, 51870) + ) connection_info = _create_connection_info(sock, authtoken) # Appropriated from uvicorn.main:run @@ -139,14 +141,14 @@ def run_server( def terminate_on_parent_death( - stopped: threading.Event, poll_interval: float = 1.0 + stopped: threading.Event, parent: int, poll_interval: float = 1.0 ) -> None: """ Quit the server when the parent process is no longer running. """ def check_parent_alive() -> bool: - return os.getppid() != 1 + return os.getppid() == parent while check_parent_alive(): if stopped.is_set(): @@ -182,7 +184,7 @@ def main() -> None: stopped = threading.Event() terminate_on_parent_death_thread = threading.Thread( - target=terminate_on_parent_death, args=[stopped, 1.0] + target=terminate_on_parent_death, args=[stopped, args.parent_pid, 1.0] ) with ErtPluginContext(logger=logging.getLogger(), trace_provider=tracer_provider): terminate_on_parent_death_thread.start() @@ -190,6 +192,7 @@ def main() -> None: logger = logging.getLogger("ert.shared.storage.info") try: logger.info("Starting dark storage") + logger.info(f"Started dark storage with parent {args.parent_pid}") run_server(args, debug=False, uvicorn_config=uvicorn_config) except SystemExit: logger.info("Stopping dark storage") diff --git a/src/ert/services/storage_service.py b/src/ert/services/storage_service.py index 10a6b4c7018..017937259f2 100644 --- a/src/ert/services/storage_service.py +++ b/src/ert/services/storage_service.py @@ -22,6 +22,7 @@ def __init__( self, exec_args: Sequence[str] = (), timeout: int = 120, + parent_pid: int | None = None, conn_info: Mapping[str, Any] | Exception | None = None, project: str | None = None, verbose: bool = False, @@ -39,6 +40,8 @@ def __init__( get_traceparent() if traceparent == "inherit_parent" else traceparent ) exec_args.extend(["--traceparent", str(traceparent)]) + if parent_pid is not None: + exec_args.extend(["--parent_pid", str(parent_pid)]) super().__init__(exec_args, timeout, conn_info, project) diff --git a/src/ert/shared/storage/command.py b/src/ert/shared/storage/command.py index 73be6dcd75b..295827e0bd4 100644 --- a/src/ert/shared/storage/command.py +++ b/src/ert/shared/storage/command.py @@ -22,6 +22,12 @@ def add_parser_options(ap: ArgumentParser) -> None: help="Trace parent id to be used by the storage root span", default=None, ) + ap.add_argument( + "--parent_pid", + type=int, + help="The parent process id", + default=os.getppid(), + ) ap.add_argument( "--host", type=str, default=os.environ.get("ERT_STORAGE_HOST", "127.0.0.1") ) diff --git a/src/everest/bin/main.py b/src/everest/bin/main.py index 438c22a6604..df063e48776 100644 --- a/src/everest/bin/main.py +++ b/src/everest/bin/main.py @@ -3,7 +3,10 @@ import logging import sys -from ert.shared.version import __version__ as everest_version +try: + from ert.shared.version import __version__ as everest_version +except ImportError: + everest_version = "0.0.0" from everest.bin.config_branch_script import config_branch_entry from everest.bin.everconfigdump_script import config_dump_entry from everest.bin.everest_script import everest_entry diff --git a/src/everest/config/everest_config.py b/src/everest/config/everest_config.py index d9dc43c9657..333bc4b15e8 100644 --- a/src/everest/config/everest_config.py +++ b/src/everest/config/everest_config.py @@ -797,14 +797,13 @@ def load_file(config_file: str) -> "EverestConfig": for e in error.errors( include_context=True, include_input=True, include_url=False ): - if e["type"] == "literal_error": + if e["type"] in {"missing", "value_error"} or e["input"] is None: + exp.errors.append((e, None)) + else: for index, line in enumerate(file_content): - if (pos := line.find(e["input"])) != -1: + if (pos := line.find(str(e["input"]))) != -1: exp.errors.append((e, (index + 1, pos + 1))) break - else: - exp.errors.append((e, None)) - raise exp from error @staticmethod diff --git a/src/everest/util/__init__.py b/src/everest/util/__init__.py index d1c32bbb51b..29f5d69cd2f 100644 --- a/src/everest/util/__init__.py +++ b/src/everest/util/__init__.py @@ -4,7 +4,10 @@ from ropt.version import version as ropt_version -from ert.shared.version import version as ert_version +try: + from ert.shared.version import version as ert_version +except ImportError: + ert_version = "0.0.0" from everest.strings import DATE_FORMAT, EVEREST try: diff --git a/tests/ert/performance_tests/test_dark_storage_performance.py b/tests/ert/performance_tests/test_dark_storage_performance.py index 669c98d43bb..7890ea824e8 100644 --- a/tests/ert/performance_tests/test_dark_storage_performance.py +++ b/tests/ert/performance_tests/test_dark_storage_performance.py @@ -1,9 +1,9 @@ +import asyncio import contextlib import gc import io import os import time -from asyncio import get_event_loop from collections.abc import Awaitable from datetime import datetime, timedelta from typing import TypeVar @@ -45,7 +45,13 @@ def test_escape(s: str) -> str: def run_in_loop(coro: Awaitable[T]) -> T: - return get_event_loop().run_until_complete(coro) + try: + loop = asyncio.get_running_loop() + except RuntimeError: + loop = asyncio.new_event_loop() + + asyncio.set_event_loop(loop) + return loop.run_until_complete(coro) def get_single_record_csv(storage, ensemble_id1, keyword, poly_ran): diff --git a/tests/ert/ui_tests/cli/analysis/test_design_matrix.py b/tests/ert/ui_tests/cli/analysis/test_design_matrix.py index 13ad73d06da..87fe0f57719 100644 --- a/tests/ert/ui_tests/cli/analysis/test_design_matrix.py +++ b/tests/ert/ui_tests/cli/analysis/test_design_matrix.py @@ -1,5 +1,7 @@ +import json import os import stat +from pathlib import Path from textwrap import dedent import numpy as np @@ -90,17 +92,32 @@ def _evaluate(coeffs, x): "test-experiment", ) storage_path = ErtConfig.from_file("poly.ert").ens_path + config_path = ErtConfig.from_file("poly.ert").config_path with open_storage(storage_path) as storage: experiment = storage.get_experiment_by_name("test-experiment") params = experiment.get_ensemble_by_name("default").load_parameters( "DESIGN_MATRIX" )["values"] - # All parameters are strings, this needs to be fixed np.testing.assert_array_equal(params[:, 0], [str(idx) for idx in a_values]) np.testing.assert_array_equal(params[:, 1], 5 * ["cat1"] + 5 * ["cat2"]) np.testing.assert_array_equal(params[:, 2], 10 * ["1"]) np.testing.assert_array_equal(params[:, 3], 10 * ["2"]) + real_0_iter_0_parameters_json_path = ( + Path(config_path) / "poly_out" / "realization-0" / "iter-0" / "parameters.json" + ) + assert real_0_iter_0_parameters_json_path.exists() + with open(real_0_iter_0_parameters_json_path, mode="r+", encoding="utf-8") as fs: + parameters_contents = json.load(fs) + assert isinstance(parameters_contents, dict) + design_matrix_content = parameters_contents.get("DESIGN_MATRIX") + assert isinstance(design_matrix_content, dict) + for k, v in design_matrix_content.items(): + if k == "category": + assert isinstance(v, str) + else: + assert isinstance(v, float | int) + @pytest.mark.usefixtures("copy_poly_case") @pytest.mark.parametrize( diff --git a/tests/ert/ui_tests/cli/test_cli.py b/tests/ert/ui_tests/cli/test_cli.py index 0859197d02f..2c3509a3f80 100644 --- a/tests/ert/ui_tests/cli/test_cli.py +++ b/tests/ert/ui_tests/cli/test_cli.py @@ -990,6 +990,9 @@ async def _wait_for_storage_process_to_shut_down(): if not storage_process.is_running(): storage_server_has_shutdown.set() await asyncio.sleep(0.1) + print( + f"Waiting for killed ert:{ert_subprocess.pid} to stop storage:{storage_process.pid}" + ) - await asyncio.wait_for(_wait_for_storage_process_to_shut_down(), timeout=45) + await asyncio.wait_for(_wait_for_storage_process_to_shut_down(), timeout=90) assert not storage_process.is_running() diff --git a/tests/ert/ui_tests/cli/test_parameter_passing.py b/tests/ert/ui_tests/cli/test_parameter_passing.py index b808a467c65..e1090ed7f6f 100644 --- a/tests/ert/ui_tests/cli/test_parameter_passing.py +++ b/tests/ert/ui_tests/cli/test_parameter_passing.py @@ -19,7 +19,7 @@ import xtgeo from hypothesis import given, note, settings from hypothesis.extra.numpy import arrays -from pytest import MonkeyPatch, TempPathFactory +from pytest import MonkeyPatch, TempPathFactory, mark from resdata import ResDataType from resdata.grid import GridGenerator from resdata.resfile import ResdataKW @@ -409,6 +409,7 @@ def check(self, io_source: IoProvider, mask, num_realizations: int): max_size=3, ), ) +@mark.skip_mac_ci # test is slow def test_that_parameters_are_placed_in_the_runpath_as_expected( io_source: IoProvider, grid_format: Literal["grid", "egrid"], diff --git a/tests/ert/ui_tests/cli/test_run_flow_simulator.py b/tests/ert/ui_tests/cli/test_run_flow_simulator.py index 5ffdeb24942..1ed8a41eac5 100644 --- a/tests/ert/ui_tests/cli/test_run_flow_simulator.py +++ b/tests/ert/ui_tests/cli/test_run_flow_simulator.py @@ -81,28 +81,6 @@ def test_user_can_specify_threads_and_mpi_processes_and_oversubscribe_compute_no assert re.search(r"Threads per MPI process:\s+2", flow_stdout) -@pytest.mark.usefixtures("eightcells") -@pytest.mark.skipif(not shutil.which("flowrun"), reason="flowrun not available") -def test_setenv_can_be_used_to_set_threads(): - Path("flow.ert").write_text( - dedent(""" - NUM_REALIZATIONS 1 - ECLBASE EIGHTCELLS - DATA_FILE EIGHTCELLS.DATA - RUNPATH realization- - SETENV OMP_NUM_THREADS 2 - NUM_CPU 1 - FORWARD_MODEL FLOW() - """).strip(), - encoding="utf-8", - ) - - run_cli(TEST_RUN_MODE, "--disable-monitoring", "flow.ert") - flow_stdout = Path("realization-0/FLOW.stdout.0").read_text(encoding="utf-8") - assert re.search(r"Number of MPI processes:\s+1", flow_stdout) - assert re.search(r"Threads per MPI process:\s+2", flow_stdout) - - @pytest.mark.usefixtures("eightcells") @pytest.mark.skipif(not shutil.which("flowrun"), reason="flowrun not available") def test_ert_will_fetch_parallel_keyword_and_set_mpi_processes(): 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 9452c236b86..263b0278cd8 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 f31f6ff0928..7d51123c6f0 100644 --- a/tests/ert/ui_tests/gui/test_main_window.py +++ b/tests/ert/ui_tests/gui/test_main_window.py @@ -242,7 +242,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 @@ -701,7 +701,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 @@ -751,10 +751,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_plotting_of_snake_oil.py b/tests/ert/ui_tests/gui/test_plotting_of_snake_oil.py index 617acceb206..1e5691bc290 100644 --- a/tests/ert/ui_tests/gui/test_plotting_of_snake_oil.py +++ b/tests/ert/ui_tests/gui/test_plotting_of_snake_oil.py @@ -121,6 +121,7 @@ def plot_figure(qtbot, heat_equation_storage, snake_oil_case_storage, request): # The tolerance is chosen by guess, in one bug we observed a # mismatch of 58 which would fail the test by being above 10.0 @pytest.mark.mpl_image_compare(tolerance=10.0) +@pytest.mark.skip_mac_ci # test is slow def test_that_all_snake_oil_visualisations_matches_snapshot(plot_figure): return plot_figure 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 diff --git a/tests/ert/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess0/update_log b/tests/ert/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess0/update_log index c3046ca1832..816518149a4 100644 --- a/tests/ert/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess0/update_log +++ b/tests/ert/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess0/update_log @@ -1,212 +1,212 @@ ------------- ----------------------- ----- ----- ----- ----- ------ ----- ------ -FOPR 2010-01-10 00:00:00.000 0.002 0.100 5.657 0.566 0.076 0.105 Active -FOPR 2010-01-20 00:00:00.000 0.008 0.100 5.657 0.566 0.079 0.107 Active -FOPR 2010-01-30 00:00:00.000 0.018 0.100 5.657 0.566 0.085 0.110 Active -FOPR 2010-02-09 00:00:00.000 0.032 0.100 5.657 0.566 0.092 0.114 Active -FOPR 2010-02-19 00:00:00.000 0.050 0.100 5.657 0.566 0.103 0.118 Active -FOPR 2010-03-01 00:00:00.000 0.071 0.100 5.657 0.566 0.117 0.122 Active -FOPR 2010-03-11 00:00:00.000 0.097 0.100 5.657 0.566 0.133 0.128 Active -FOPR 2010-03-21 00:00:00.000 0.126 0.100 5.657 0.566 0.151 0.134 Active -FOPR 2010-03-31 00:00:00.000 0.159 0.100 5.657 0.566 0.171 0.140 Active -FOPR 2010-04-10 00:00:00.000 0.194 0.100 5.657 0.566 0.193 0.148 Active -FOPR 2010-04-20 00:00:00.000 0.233 0.100 5.385 0.539 0.221 0.154 Active -FOPR 2010-04-30 00:00:00.000 0.274 0.100 5.385 0.539 0.251 0.161 Active -FOPR 2010-05-10 00:00:00.000 0.318 0.100 5.385 0.539 0.293 0.164 Active -FOPR 2010-05-20 00:00:00.000 0.363 0.100 5.385 0.539 0.340 0.163 Active -FOPR 2010-05-30 00:00:00.000 0.411 0.100 5.385 0.539 0.389 0.163 Active -FOPR 2010-06-09 00:00:00.000 0.460 0.100 5.385 0.539 0.439 0.163 Active -FOPR 2010-06-19 00:00:00.000 0.510 0.100 5.385 0.539 0.491 0.164 Active -FOPR 2010-06-29 00:00:00.000 0.561 0.100 5.657 0.566 0.544 0.164 Active -FOPR 2010-07-09 00:00:00.000 0.613 0.100 5.657 0.566 0.598 0.164 Active -FOPR 2010-07-19 00:00:00.000 0.666 0.100 5.657 0.566 0.652 0.163 Active -FOPR 2010-07-29 00:00:00.000 0.718 0.100 5.657 0.566 0.706 0.164 Active -FOPR 2010-08-08 00:00:00.000 0.770 0.100 3.317 0.332 0.760 0.164 Active -FOPR 2010-08-18 00:00:00.000 0.823 0.100 3.317 0.332 0.813 0.164 Active -FOPR 2010-08-28 00:00:00.000 0.875 0.100 3.317 0.332 0.864 0.164 Active -FOPR 2010-09-07 00:00:00.000 0.926 0.100 3.317 0.332 0.914 0.165 Active -FOPR 2010-09-17 00:00:00.000 0.977 0.100 3.317 0.332 0.963 0.165 Active -FOPR 2010-09-27 00:00:00.000 1.027 0.103 3.317 0.341 1.008 0.167 Active -FOPR 2010-10-07 00:00:00.000 1.075 0.108 3.317 0.357 1.049 0.169 Active -FOPR 2010-10-17 00:00:00.000 1.122 0.112 3.317 0.372 1.089 0.171 Active -FOPR 2010-10-27 00:00:00.000 1.166 0.117 3.317 0.387 1.126 0.172 Active -FOPR 2010-11-06 00:00:00.000 1.208 0.121 3.317 0.400 1.160 0.174 Active -FOPR 2010-11-16 00:00:00.000 1.247 0.125 3.317 0.414 1.192 0.175 Active -FOPR 2010-11-26 00:00:00.000 1.284 0.128 2.000 0.257 1.219 0.175 Active -FOPR 2010-12-06 00:00:00.000 1.317 0.132 2.000 0.263 1.243 0.175 Active -FOPR 2010-12-16 00:00:00.000 1.346 0.135 2.000 0.269 1.263 0.176 Active -FOPR 2010-12-26 00:00:00.000 1.371 0.137 2.000 0.274 1.279 0.176 Active -FOPR 2011-01-05 00:00:00.000 1.392 0.139 3.317 0.462 1.292 0.177 Active -FOPR 2011-01-15 00:00:00.000 1.407 0.141 3.317 0.467 1.300 0.179 Active -FOPR 2011-01-25 00:00:00.000 1.418 0.142 3.317 0.470 1.303 0.181 Active -FOPR 2011-02-04 00:00:00.000 1.422 0.142 3.317 0.472 1.303 0.183 Active -FOPR 2011-02-14 00:00:00.000 1.424 0.142 3.317 0.472 1.299 0.185 Active -FOPR 2011-02-24 00:00:00.000 1.425 0.143 3.317 0.473 1.294 0.187 Active -FOPR 2011-03-06 00:00:00.000 1.427 0.143 3.317 0.473 1.290 0.188 Active -FOPR 2011-03-16 00:00:00.000 1.430 0.143 3.317 0.474 1.283 0.189 Active -FOPR 2011-03-26 00:00:00.000 1.433 0.143 3.317 0.475 1.275 0.187 Active -FOPR 2011-04-05 00:00:00.000 1.438 0.144 3.317 0.477 1.263 0.186 Active -FOPR 2011-04-15 00:00:00.000 1.443 0.144 3.317 0.479 1.250 0.186 Active -FOPR 2011-04-25 00:00:00.000 1.449 0.145 3.000 0.435 1.237 0.186 Active -FOPR 2011-05-05 00:00:00.000 1.455 0.145 3.000 0.436 1.222 0.185 Active -FOPR 2011-05-15 00:00:00.000 1.460 0.146 3.000 0.438 1.207 0.184 Active -FOPR 2011-05-25 00:00:00.000 1.466 0.147 4.472 0.655 1.190 0.184 Active -FOPR 2011-06-04 00:00:00.000 1.470 0.147 4.472 0.658 1.170 0.183 Active -FOPR 2011-06-14 00:00:00.000 1.474 0.147 4.472 0.659 1.146 0.183 Active -FOPR 2011-06-24 00:00:00.000 1.475 0.148 4.472 0.660 1.122 0.184 Active -FOPR 2011-07-04 00:00:00.000 1.474 0.147 3.000 0.442 1.098 0.188 Active -FOPR 2011-07-14 00:00:00.000 1.469 0.147 4.472 0.657 1.077 0.192 Active -FOPR 2011-07-24 00:00:00.000 1.461 0.146 4.472 0.653 1.053 0.194 Active -FOPR 2011-08-03 00:00:00.000 1.449 0.145 3.000 0.435 1.027 0.196 Active -FOPR 2011-08-13 00:00:00.000 1.436 0.144 4.472 0.642 1.002 0.196 Active -FOPR 2011-08-23 00:00:00.000 1.421 0.142 4.472 0.636 0.975 0.197 Active -FOPR 2011-09-02 00:00:00.000 1.403 0.140 3.000 0.421 0.947 0.200 Active -FOPR 2011-09-12 00:00:00.000 1.379 0.138 4.472 0.617 0.928 0.200 Active -FOPR 2011-09-22 00:00:00.000 1.353 0.135 4.472 0.605 0.902 0.203 Active -FOPR 2011-10-02 00:00:00.000 1.324 0.132 4.472 0.592 0.878 0.206 Active -FOPR 2011-10-12 00:00:00.000 1.297 0.130 4.472 0.580 0.851 0.210 Active -FOPR 2011-10-22 00:00:00.000 1.270 0.127 3.000 0.381 0.824 0.213 Active -FOPR 2011-11-01 00:00:00.000 1.243 0.124 3.000 0.373 0.801 0.215 Active -FOPR 2011-11-11 00:00:00.000 1.216 0.122 3.000 0.365 0.781 0.216 Active -FOPR 2011-11-21 00:00:00.000 1.189 0.119 4.472 0.532 0.762 0.216 Active -FOPR 2011-12-01 00:00:00.000 1.161 0.116 4.472 0.519 0.744 0.215 Active -FOPR 2011-12-11 00:00:00.000 1.134 0.113 4.472 0.507 0.725 0.212 Active -FOPR 2011-12-21 00:00:00.000 1.112 0.111 4.472 0.497 0.704 0.206 Active -FOPR 2011-12-31 00:00:00.000 1.091 0.109 4.472 0.488 0.683 0.200 Active -FOPR 2012-01-10 00:00:00.000 1.072 0.107 4.472 0.479 0.661 0.194 Active -FOPR 2012-01-20 00:00:00.000 1.053 0.105 4.472 0.471 0.640 0.189 Active -FOPR 2012-01-30 00:00:00.000 1.033 0.103 4.472 0.462 0.619 0.185 Active -FOPR 2012-02-09 00:00:00.000 1.013 0.101 5.385 0.545 0.597 0.181 Active -FOPR 2012-02-19 00:00:00.000 0.995 0.100 5.385 0.539 0.576 0.176 Active -FOPR 2012-02-29 00:00:00.000 0.975 0.100 5.385 0.539 0.555 0.171 Active -FOPR 2012-03-10 00:00:00.000 0.956 0.100 5.385 0.539 0.533 0.171 Active -FOPR 2012-03-20 00:00:00.000 0.936 0.100 5.385 0.539 0.513 0.171 Active -FOPR 2012-03-30 00:00:00.000 0.916 0.100 5.385 0.539 0.494 0.170 Active -FOPR 2012-04-09 00:00:00.000 0.893 0.100 5.385 0.539 0.477 0.169 Active -FOPR 2012-04-19 00:00:00.000 0.869 0.100 5.385 0.539 0.462 0.169 Active -FOPR 2012-04-29 00:00:00.000 0.842 0.100 5.385 0.539 0.447 0.170 Active -FOPR 2012-05-09 00:00:00.000 0.812 0.100 5.385 0.539 0.432 0.170 Active -FOPR 2012-05-19 00:00:00.000 0.779 0.100 5.385 0.539 0.417 0.171 Active -FOPR 2012-05-29 00:00:00.000 0.742 0.100 5.385 0.539 0.403 0.170 Active -FOPR 2012-06-08 00:00:00.000 0.702 0.100 5.385 0.539 0.389 0.171 Active -FOPR 2012-06-18 00:00:00.000 0.661 0.100 5.385 0.539 0.379 0.171 Active -FOPR 2012-06-28 00:00:00.000 0.619 0.100 5.385 0.539 0.370 0.171 Active -FOPR 2012-07-08 00:00:00.000 0.578 0.100 5.385 0.539 0.361 0.169 Active -FOPR 2012-07-18 00:00:00.000 0.540 0.100 5.385 0.539 0.354 0.168 Active -FOPR 2012-07-28 00:00:00.000 0.505 0.100 5.385 0.539 0.349 0.166 Active -FOPR 2012-08-07 00:00:00.000 0.475 0.100 5.385 0.539 0.344 0.165 Active -FOPR 2012-08-17 00:00:00.000 0.450 0.100 5.385 0.539 0.340 0.165 Active -FOPR 2012-08-27 00:00:00.000 0.431 0.100 5.385 0.539 0.344 0.168 Active -FOPR 2012-09-06 00:00:00.000 0.419 0.100 5.385 0.539 0.350 0.171 Active -FOPR 2012-09-16 00:00:00.000 0.410 0.100 5.385 0.539 0.349 0.171 Active -FOPR 2012-09-26 00:00:00.000 0.406 0.100 5.385 0.539 0.350 0.173 Active -FOPR 2012-10-06 00:00:00.000 0.404 0.100 5.385 0.539 0.347 0.171 Active -FOPR 2012-10-16 00:00:00.000 0.399 0.100 5.385 0.539 0.344 0.168 Active -FOPR 2012-10-26 00:00:00.000 0.389 0.100 5.385 0.539 0.346 0.165 Active -FOPR 2012-11-05 00:00:00.000 0.374 0.100 5.385 0.539 0.348 0.162 Active -FOPR 2012-11-15 00:00:00.000 0.355 0.100 5.385 0.539 0.350 0.156 Active -FOPR 2012-11-25 00:00:00.000 0.332 0.100 1.732 0.173 0.350 0.148 Active -FOPR 2012-12-05 00:00:00.000 0.306 0.100 1.732 0.173 0.349 0.140 Active -FOPR 2012-12-15 00:00:00.000 0.282 0.100 1.732 0.173 0.348 0.133 Active -FOPR 2012-12-25 00:00:00.000 0.264 0.100 4.583 0.458 0.344 0.125 Active -FOPR 2013-01-04 00:00:00.000 0.248 0.100 4.583 0.458 0.340 0.118 Active -FOPR 2013-01-14 00:00:00.000 0.233 0.100 4.583 0.458 0.337 0.114 Active -FOPR 2013-01-24 00:00:00.000 0.219 0.100 4.583 0.458 0.335 0.112 Active -FOPR 2013-02-03 00:00:00.000 0.205 0.100 4.583 0.458 0.334 0.110 Active -FOPR 2013-02-13 00:00:00.000 0.192 0.100 4.583 0.458 0.333 0.110 Active -FOPR 2013-02-23 00:00:00.000 0.180 0.100 4.583 0.458 0.332 0.109 Active -FOPR 2013-03-05 00:00:00.000 0.169 0.100 4.583 0.458 0.330 0.107 Active -FOPR 2013-03-15 00:00:00.000 0.160 0.100 4.583 0.458 0.327 0.106 Active -FOPR 2013-03-25 00:00:00.000 0.152 0.100 4.583 0.458 0.323 0.105 Active -FOPR 2013-04-04 00:00:00.000 0.146 0.100 4.583 0.458 0.317 0.102 Active -FOPR 2013-04-14 00:00:00.000 0.141 0.100 4.583 0.458 0.310 0.100 Active -FOPR 2013-04-24 00:00:00.000 0.137 0.100 4.583 0.458 0.303 0.098 Active -FOPR 2013-05-04 00:00:00.000 0.134 0.100 4.583 0.458 0.296 0.096 Active -FOPR 2013-05-14 00:00:00.000 0.130 0.100 4.583 0.458 0.290 0.094 Active -FOPR 2013-05-24 00:00:00.000 0.127 0.100 4.583 0.458 0.284 0.092 Active -FOPR 2013-06-03 00:00:00.000 0.123 0.100 4.583 0.458 0.279 0.090 Active -FOPR 2013-06-13 00:00:00.000 0.119 0.100 4.583 0.458 0.275 0.088 Active -FOPR 2013-06-23 00:00:00.000 0.120 0.100 4.583 0.458 0.270 0.085 Active -FOPR 2013-07-03 00:00:00.000 0.128 0.100 4.583 0.458 0.266 0.081 Active -FOPR 2013-07-13 00:00:00.000 0.136 0.100 4.583 0.458 0.263 0.077 Active -FOPR 2013-07-23 00:00:00.000 0.143 0.100 1.000 0.100 0.261 0.073 Active -FOPR 2013-08-02 00:00:00.000 0.150 0.100 2.000 0.200 0.258 0.069 Active -FOPR 2013-08-12 00:00:00.000 0.155 0.100 2.000 0.200 0.256 0.066 Active -FOPR 2013-08-22 00:00:00.000 0.159 0.100 2.000 0.200 0.254 0.063 Active -FOPR 2013-09-01 00:00:00.000 0.163 0.100 2.000 0.200 0.251 0.061 Active -FOPR 2013-09-11 00:00:00.000 0.166 0.100 3.464 0.346 0.248 0.059 Active -FOPR 2013-09-21 00:00:00.000 0.167 0.100 3.464 0.346 0.247 0.058 Active -FOPR 2013-10-01 00:00:00.000 0.167 0.100 3.464 0.346 0.245 0.058 Active -FOPR 2013-10-11 00:00:00.000 0.166 0.100 3.464 0.346 0.243 0.058 Active -FOPR 2013-10-21 00:00:00.000 0.165 0.100 3.464 0.346 0.243 0.058 Active -FOPR 2013-10-31 00:00:00.000 0.164 0.100 3.464 0.346 0.242 0.059 Active -FOPR 2013-11-10 00:00:00.000 0.165 0.100 3.464 0.346 0.243 0.059 Active -FOPR 2013-11-20 00:00:00.000 0.169 0.100 3.464 0.346 0.243 0.059 Active -FOPR 2013-11-30 00:00:00.000 0.176 0.100 3.464 0.346 0.242 0.058 Active -FOPR 2013-12-10 00:00:00.000 0.186 0.100 3.464 0.346 0.242 0.057 Active -FOPR 2013-12-20 00:00:00.000 0.197 0.100 3.464 0.346 0.241 0.057 Active -FOPR 2013-12-30 00:00:00.000 0.211 0.100 3.464 0.346 0.239 0.058 Active -FOPR 2014-01-09 00:00:00.000 0.225 0.100 1.000 0.100 0.238 0.059 Active -FOPR 2014-01-19 00:00:00.000 0.239 0.100 1.414 0.141 0.238 0.061 Active -FOPR 2014-01-29 00:00:00.000 0.252 0.100 1.414 0.141 0.238 0.061 Active -FOPR 2014-02-08 00:00:00.000 0.264 0.100 2.236 0.224 0.237 0.061 Active -FOPR 2014-02-18 00:00:00.000 0.275 0.100 2.236 0.224 0.236 0.062 Active -FOPR 2014-02-28 00:00:00.000 0.285 0.100 2.236 0.224 0.236 0.064 Active -FOPR 2014-03-10 00:00:00.000 0.295 0.100 2.236 0.224 0.236 0.066 Active -FOPR 2014-03-20 00:00:00.000 0.303 0.100 2.236 0.224 0.235 0.069 Active -FOPR 2014-03-30 00:00:00.000 0.309 0.100 2.449 0.245 0.234 0.072 Active -FOPR 2014-04-09 00:00:00.000 0.312 0.100 2.449 0.245 0.231 0.074 Active -FOPR 2014-04-19 00:00:00.000 0.313 0.100 2.449 0.245 0.229 0.076 Active -FOPR 2014-04-29 00:00:00.000 0.310 0.100 2.449 0.245 0.225 0.077 Active -FOPR 2014-05-09 00:00:00.000 0.304 0.100 2.449 0.245 0.220 0.078 Active -FOPR 2014-05-19 00:00:00.000 0.296 0.100 2.449 0.245 0.215 0.078 Active -FOPR 2014-05-29 00:00:00.000 0.286 0.100 5.657 0.566 0.209 0.078 Active -FOPR 2014-06-08 00:00:00.000 0.275 0.100 5.657 0.566 0.202 0.078 Active -FOPR 2014-06-18 00:00:00.000 0.264 0.100 5.657 0.566 0.195 0.079 Active -FOPR 2014-06-28 00:00:00.000 0.253 0.100 5.657 0.566 0.188 0.079 Active -FOPR 2014-07-08 00:00:00.000 0.241 0.100 5.657 0.566 0.181 0.080 Active -FOPR 2014-07-18 00:00:00.000 0.230 0.100 5.657 0.566 0.173 0.082 Active -FOPR 2014-07-28 00:00:00.000 0.218 0.100 5.657 0.566 0.167 0.084 Active -FOPR 2014-08-07 00:00:00.000 0.207 0.100 5.657 0.566 0.161 0.086 Active -FOPR 2014-08-17 00:00:00.000 0.197 0.100 5.657 0.566 0.155 0.088 Active -FOPR 2014-08-27 00:00:00.000 0.187 0.100 5.657 0.566 0.149 0.090 Active -FOPR 2014-09-06 00:00:00.000 0.178 0.100 5.657 0.566 0.143 0.092 Active -FOPR 2014-09-16 00:00:00.000 0.168 0.100 5.385 0.539 0.138 0.094 Active -FOPR 2014-09-26 00:00:00.000 0.159 0.100 5.385 0.539 0.132 0.095 Active -FOPR 2014-10-06 00:00:00.000 0.150 0.100 5.385 0.539 0.128 0.096 Active -FOPR 2014-10-16 00:00:00.000 0.141 0.100 5.385 0.539 0.124 0.096 Active -FOPR 2014-10-26 00:00:00.000 0.134 0.100 5.385 0.539 0.120 0.096 Active -FOPR 2014-11-05 00:00:00.000 0.127 0.100 5.385 0.539 0.116 0.097 Active -FOPR 2014-11-15 00:00:00.000 0.120 0.100 5.385 0.539 0.113 0.097 Active -FOPR 2014-11-25 00:00:00.000 0.115 0.100 5.385 0.539 0.110 0.096 Active -FOPR 2014-12-05 00:00:00.000 0.111 0.100 5.385 0.539 0.107 0.096 Active -FOPR 2014-12-15 00:00:00.000 0.107 0.100 5.385 0.539 0.105 0.095 Active -FOPR 2014-12-25 00:00:00.000 0.101 0.100 5.385 0.539 0.102 0.095 Active -FOPR 2015-01-04 00:00:00.000 0.096 0.100 5.385 0.539 0.100 0.095 Active -FOPR 2015-01-14 00:00:00.000 0.089 0.100 5.385 0.539 0.097 0.096 Active -FOPR 2015-01-24 00:00:00.000 0.081 0.100 5.385 0.539 0.094 0.096 Active -FOPR 2015-02-03 00:00:00.000 0.073 0.100 5.385 0.539 0.092 0.098 Active -FOPR 2015-02-13 00:00:00.000 0.065 0.100 5.385 0.539 0.090 0.099 Active -FOPR 2015-02-23 00:00:00.000 0.058 0.100 5.385 0.539 0.088 0.101 Active -FOPR 2015-03-05 00:00:00.000 0.050 0.100 5.385 0.539 0.087 0.103 Active -FOPR 2015-03-15 00:00:00.000 0.044 0.100 5.385 0.539 0.086 0.104 Active -FOPR 2015-03-25 00:00:00.000 0.038 0.100 5.385 0.539 0.085 0.106 Active -FOPR 2015-04-04 00:00:00.000 0.033 0.100 5.385 0.539 0.084 0.107 Active -FOPR 2015-04-14 00:00:00.000 0.029 0.100 5.385 0.539 0.084 0.108 Active -FOPR 2015-04-24 00:00:00.000 0.026 0.100 5.657 0.566 0.084 0.108 Active -FOPR 2015-05-04 00:00:00.000 0.024 0.100 5.657 0.566 0.084 0.109 Active -FOPR 2015-05-14 00:00:00.000 0.022 0.100 5.657 0.566 0.084 0.109 Active -FOPR 2015-05-24 00:00:00.000 0.021 0.100 5.657 0.566 0.084 0.109 Active -FOPR 2015-06-03 00:00:00.000 0.020 0.100 5.657 0.566 0.084 0.110 Active -FOPR 2015-06-13 00:00:00.000 0.020 0.100 5.657 0.566 0.084 0.110 Active -FOPR 2015-06-23 00:00:00.000 0.020 0.100 5.657 0.566 0.084 0.110 Active -WOPR_OP1_108 2012-12-15 00:00:00.000 0.300 0.075 1.000 0.075 0.257 0.099 Active -WOPR_OP1_144 2013-12-10 00:00:00.000 0.200 0.035 1.000 0.035 0.183 0.106 Active -WOPR_OP1_190 2015-03-15 00:00:00.000 0.015 0.010 1.732 0.017 0.042 0.041 Active -WOPR_OP1_36 2010-12-26 00:00:00.000 0.700 0.070 1.732 0.121 0.650 0.084 Active -WOPR_OP1_72 2011-12-21 00:00:00.000 0.500 0.050 1.000 0.050 0.405 0.170 Active -WOPR_OP1_9 2010-03-31 00:00:00.000 0.100 0.050 1.732 0.087 0.096 0.060 Active -WPR_DIFF_1 199, 1200 0.200 0.150 1.000 0.150 0.073 0.130 Active -WPR_DIFF_1 199, 1800 0.000 0.050 1.000 0.050 0.127 0.125 Active -WPR_DIFF_1 199, 400 0.000 0.100 1.000 0.100 -0.011 0.060 Active -WPR_DIFF_1 199, 800 0.100 0.200 1.000 0.200 0.081 0.126 Active ------------- ----------------------- ----- ----- ----- ----- ------ ----- ------ +------------ ----------------------- ----- ----- ------ ----- ------ ----- ------ +FOPR 2010-01-10 00:00:00.000 0.002 0.100 14.491 1.449 0.076 0.105 Active +FOPR 2010-01-20 00:00:00.000 0.008 0.100 14.491 1.449 0.079 0.107 Active +FOPR 2010-01-30 00:00:00.000 0.018 0.100 14.491 1.449 0.085 0.110 Active +FOPR 2010-02-09 00:00:00.000 0.032 0.100 14.491 1.449 0.092 0.114 Active +FOPR 2010-02-19 00:00:00.000 0.050 0.100 14.491 1.449 0.103 0.118 Active +FOPR 2010-03-01 00:00:00.000 0.071 0.100 14.491 1.449 0.117 0.122 Active +FOPR 2010-03-11 00:00:00.000 0.097 0.100 14.491 1.449 0.133 0.128 Active +FOPR 2010-03-21 00:00:00.000 0.126 0.100 14.491 1.449 0.151 0.134 Active +FOPR 2010-03-31 00:00:00.000 0.159 0.100 14.491 1.449 0.171 0.140 Active +FOPR 2010-04-10 00:00:00.000 0.194 0.100 14.491 1.449 0.193 0.148 Active +FOPR 2010-04-20 00:00:00.000 0.233 0.100 14.491 1.449 0.221 0.154 Active +FOPR 2010-04-30 00:00:00.000 0.274 0.100 14.491 1.449 0.251 0.161 Active +FOPR 2010-05-10 00:00:00.000 0.318 0.100 14.491 1.449 0.293 0.164 Active +FOPR 2010-05-20 00:00:00.000 0.363 0.100 14.491 1.449 0.340 0.163 Active +FOPR 2010-05-30 00:00:00.000 0.411 0.100 14.491 1.449 0.389 0.163 Active +FOPR 2010-06-09 00:00:00.000 0.460 0.100 14.491 1.449 0.439 0.163 Active +FOPR 2010-06-19 00:00:00.000 0.510 0.100 14.491 1.449 0.491 0.164 Active +FOPR 2010-06-29 00:00:00.000 0.561 0.100 14.491 1.449 0.544 0.164 Active +FOPR 2010-07-09 00:00:00.000 0.613 0.100 14.491 1.449 0.598 0.164 Active +FOPR 2010-07-19 00:00:00.000 0.666 0.100 14.491 1.449 0.652 0.163 Active +FOPR 2010-07-29 00:00:00.000 0.718 0.100 14.491 1.449 0.706 0.164 Active +FOPR 2010-08-08 00:00:00.000 0.770 0.100 14.491 1.449 0.760 0.164 Active +FOPR 2010-08-18 00:00:00.000 0.823 0.100 14.491 1.449 0.813 0.164 Active +FOPR 2010-08-28 00:00:00.000 0.875 0.100 14.491 1.449 0.864 0.164 Active +FOPR 2010-09-07 00:00:00.000 0.926 0.100 14.491 1.449 0.914 0.165 Active +FOPR 2010-09-17 00:00:00.000 0.977 0.100 14.491 1.449 0.963 0.165 Active +FOPR 2010-09-27 00:00:00.000 1.027 0.103 14.491 1.488 1.008 0.167 Active +FOPR 2010-10-07 00:00:00.000 1.075 0.108 14.491 1.558 1.049 0.169 Active +FOPR 2010-10-17 00:00:00.000 1.122 0.112 14.491 1.625 1.089 0.171 Active +FOPR 2010-10-27 00:00:00.000 1.166 0.117 14.491 1.689 1.126 0.172 Active +FOPR 2010-11-06 00:00:00.000 1.208 0.121 14.491 1.750 1.160 0.174 Active +FOPR 2010-11-16 00:00:00.000 1.247 0.125 14.491 1.807 1.192 0.175 Active +FOPR 2010-11-26 00:00:00.000 1.284 0.128 14.491 1.860 1.219 0.175 Active +FOPR 2010-12-06 00:00:00.000 1.317 0.132 14.491 1.908 1.243 0.175 Active +FOPR 2010-12-16 00:00:00.000 1.346 0.135 14.491 1.951 1.263 0.176 Active +FOPR 2010-12-26 00:00:00.000 1.371 0.137 14.491 1.987 1.279 0.176 Active +FOPR 2011-01-05 00:00:00.000 1.392 0.139 14.491 2.017 1.292 0.177 Active +FOPR 2011-01-15 00:00:00.000 1.407 0.141 14.491 2.039 1.300 0.179 Active +FOPR 2011-01-25 00:00:00.000 1.418 0.142 14.491 2.054 1.303 0.181 Active +FOPR 2011-02-04 00:00:00.000 1.422 0.142 14.491 2.061 1.303 0.183 Active +FOPR 2011-02-14 00:00:00.000 1.424 0.142 14.491 2.063 1.299 0.185 Active +FOPR 2011-02-24 00:00:00.000 1.425 0.143 14.491 2.065 1.294 0.187 Active +FOPR 2011-03-06 00:00:00.000 1.427 0.143 14.491 2.068 1.290 0.188 Active +FOPR 2011-03-16 00:00:00.000 1.430 0.143 14.491 2.072 1.283 0.189 Active +FOPR 2011-03-26 00:00:00.000 1.433 0.143 14.491 2.077 1.275 0.187 Active +FOPR 2011-04-05 00:00:00.000 1.438 0.144 14.491 2.083 1.263 0.186 Active +FOPR 2011-04-15 00:00:00.000 1.443 0.144 14.491 2.091 1.250 0.186 Active +FOPR 2011-04-25 00:00:00.000 1.449 0.145 14.491 2.100 1.237 0.186 Active +FOPR 2011-05-05 00:00:00.000 1.455 0.145 14.491 2.108 1.222 0.185 Active +FOPR 2011-05-15 00:00:00.000 1.460 0.146 14.491 2.116 1.207 0.184 Active +FOPR 2011-05-25 00:00:00.000 1.466 0.147 14.491 2.124 1.190 0.184 Active +FOPR 2011-06-04 00:00:00.000 1.470 0.147 14.491 2.131 1.170 0.183 Active +FOPR 2011-06-14 00:00:00.000 1.474 0.147 14.491 2.136 1.146 0.183 Active +FOPR 2011-06-24 00:00:00.000 1.475 0.148 14.491 2.138 1.122 0.184 Active +FOPR 2011-07-04 00:00:00.000 1.474 0.147 14.491 2.136 1.098 0.188 Active +FOPR 2011-07-14 00:00:00.000 1.469 0.147 14.491 2.129 1.077 0.192 Active +FOPR 2011-07-24 00:00:00.000 1.461 0.146 14.491 2.117 1.053 0.194 Active +FOPR 2011-08-03 00:00:00.000 1.449 0.145 14.491 2.101 1.027 0.196 Active +FOPR 2011-08-13 00:00:00.000 1.436 0.144 14.491 2.082 1.002 0.196 Active +FOPR 2011-08-23 00:00:00.000 1.421 0.142 14.491 2.060 0.975 0.197 Active +FOPR 2011-09-02 00:00:00.000 1.403 0.140 14.491 2.033 0.947 0.200 Active +FOPR 2011-09-12 00:00:00.000 1.379 0.138 14.491 1.999 0.928 0.200 Active +FOPR 2011-09-22 00:00:00.000 1.353 0.135 14.491 1.960 0.902 0.203 Active +FOPR 2011-10-02 00:00:00.000 1.324 0.132 14.491 1.919 0.878 0.206 Active +FOPR 2011-10-12 00:00:00.000 1.297 0.130 14.491 1.879 0.851 0.210 Active +FOPR 2011-10-22 00:00:00.000 1.270 0.127 14.491 1.841 0.824 0.213 Active +FOPR 2011-11-01 00:00:00.000 1.243 0.124 14.491 1.802 0.801 0.215 Active +FOPR 2011-11-11 00:00:00.000 1.216 0.122 14.491 1.762 0.781 0.216 Active +FOPR 2011-11-21 00:00:00.000 1.189 0.119 14.491 1.723 0.762 0.216 Active +FOPR 2011-12-01 00:00:00.000 1.161 0.116 14.491 1.683 0.744 0.215 Active +FOPR 2011-12-11 00:00:00.000 1.134 0.113 14.491 1.644 0.725 0.212 Active +FOPR 2011-12-21 00:00:00.000 1.112 0.111 14.491 1.611 0.704 0.206 Active +FOPR 2011-12-31 00:00:00.000 1.091 0.109 14.491 1.581 0.683 0.200 Active +FOPR 2012-01-10 00:00:00.000 1.072 0.107 14.491 1.553 0.661 0.194 Active +FOPR 2012-01-20 00:00:00.000 1.053 0.105 14.491 1.526 0.640 0.189 Active +FOPR 2012-01-30 00:00:00.000 1.033 0.103 14.491 1.496 0.619 0.185 Active +FOPR 2012-02-09 00:00:00.000 1.013 0.101 14.491 1.468 0.597 0.181 Active +FOPR 2012-02-19 00:00:00.000 0.995 0.100 14.491 1.449 0.576 0.176 Active +FOPR 2012-02-29 00:00:00.000 0.975 0.100 14.491 1.449 0.555 0.171 Active +FOPR 2012-03-10 00:00:00.000 0.956 0.100 14.491 1.449 0.533 0.171 Active +FOPR 2012-03-20 00:00:00.000 0.936 0.100 14.491 1.449 0.513 0.171 Active +FOPR 2012-03-30 00:00:00.000 0.916 0.100 14.491 1.449 0.494 0.170 Active +FOPR 2012-04-09 00:00:00.000 0.893 0.100 14.491 1.449 0.477 0.169 Active +FOPR 2012-04-19 00:00:00.000 0.869 0.100 14.491 1.449 0.462 0.169 Active +FOPR 2012-04-29 00:00:00.000 0.842 0.100 14.491 1.449 0.447 0.170 Active +FOPR 2012-05-09 00:00:00.000 0.812 0.100 14.491 1.449 0.432 0.170 Active +FOPR 2012-05-19 00:00:00.000 0.779 0.100 14.491 1.449 0.417 0.171 Active +FOPR 2012-05-29 00:00:00.000 0.742 0.100 14.491 1.449 0.403 0.170 Active +FOPR 2012-06-08 00:00:00.000 0.702 0.100 14.491 1.449 0.389 0.171 Active +FOPR 2012-06-18 00:00:00.000 0.661 0.100 14.491 1.449 0.379 0.171 Active +FOPR 2012-06-28 00:00:00.000 0.619 0.100 14.491 1.449 0.370 0.171 Active +FOPR 2012-07-08 00:00:00.000 0.578 0.100 14.491 1.449 0.361 0.169 Active +FOPR 2012-07-18 00:00:00.000 0.540 0.100 14.491 1.449 0.354 0.168 Active +FOPR 2012-07-28 00:00:00.000 0.505 0.100 14.491 1.449 0.349 0.166 Active +FOPR 2012-08-07 00:00:00.000 0.475 0.100 14.491 1.449 0.344 0.165 Active +FOPR 2012-08-17 00:00:00.000 0.450 0.100 14.491 1.449 0.340 0.165 Active +FOPR 2012-08-27 00:00:00.000 0.431 0.100 14.491 1.449 0.344 0.168 Active +FOPR 2012-09-06 00:00:00.000 0.419 0.100 14.491 1.449 0.350 0.171 Active +FOPR 2012-09-16 00:00:00.000 0.410 0.100 14.491 1.449 0.349 0.171 Active +FOPR 2012-09-26 00:00:00.000 0.406 0.100 14.491 1.449 0.350 0.173 Active +FOPR 2012-10-06 00:00:00.000 0.404 0.100 14.491 1.449 0.347 0.171 Active +FOPR 2012-10-16 00:00:00.000 0.399 0.100 14.491 1.449 0.344 0.168 Active +FOPR 2012-10-26 00:00:00.000 0.389 0.100 14.491 1.449 0.346 0.165 Active +FOPR 2012-11-05 00:00:00.000 0.374 0.100 14.491 1.449 0.348 0.162 Active +FOPR 2012-11-15 00:00:00.000 0.355 0.100 14.491 1.449 0.350 0.156 Active +FOPR 2012-11-25 00:00:00.000 0.332 0.100 14.491 1.449 0.350 0.148 Active +FOPR 2012-12-05 00:00:00.000 0.306 0.100 14.491 1.449 0.349 0.140 Active +FOPR 2012-12-15 00:00:00.000 0.282 0.100 14.491 1.449 0.348 0.133 Active +FOPR 2012-12-25 00:00:00.000 0.264 0.100 14.491 1.449 0.344 0.125 Active +FOPR 2013-01-04 00:00:00.000 0.248 0.100 14.491 1.449 0.340 0.118 Active +FOPR 2013-01-14 00:00:00.000 0.233 0.100 14.491 1.449 0.337 0.114 Active +FOPR 2013-01-24 00:00:00.000 0.219 0.100 14.491 1.449 0.335 0.112 Active +FOPR 2013-02-03 00:00:00.000 0.205 0.100 14.491 1.449 0.334 0.110 Active +FOPR 2013-02-13 00:00:00.000 0.192 0.100 14.491 1.449 0.333 0.110 Active +FOPR 2013-02-23 00:00:00.000 0.180 0.100 14.491 1.449 0.332 0.109 Active +FOPR 2013-03-05 00:00:00.000 0.169 0.100 14.491 1.449 0.330 0.107 Active +FOPR 2013-03-15 00:00:00.000 0.160 0.100 14.491 1.449 0.327 0.106 Active +FOPR 2013-03-25 00:00:00.000 0.152 0.100 14.491 1.449 0.323 0.105 Active +FOPR 2013-04-04 00:00:00.000 0.146 0.100 14.491 1.449 0.317 0.102 Active +FOPR 2013-04-14 00:00:00.000 0.141 0.100 14.491 1.449 0.310 0.100 Active +FOPR 2013-04-24 00:00:00.000 0.137 0.100 14.491 1.449 0.303 0.098 Active +FOPR 2013-05-04 00:00:00.000 0.134 0.100 14.491 1.449 0.296 0.096 Active +FOPR 2013-05-14 00:00:00.000 0.130 0.100 14.491 1.449 0.290 0.094 Active +FOPR 2013-05-24 00:00:00.000 0.127 0.100 14.491 1.449 0.284 0.092 Active +FOPR 2013-06-03 00:00:00.000 0.123 0.100 14.491 1.449 0.279 0.090 Active +FOPR 2013-06-13 00:00:00.000 0.119 0.100 14.491 1.449 0.275 0.088 Active +FOPR 2013-06-23 00:00:00.000 0.120 0.100 14.491 1.449 0.270 0.085 Active +FOPR 2013-07-03 00:00:00.000 0.128 0.100 14.491 1.449 0.266 0.081 Active +FOPR 2013-07-13 00:00:00.000 0.136 0.100 14.491 1.449 0.263 0.077 Active +FOPR 2013-07-23 00:00:00.000 0.143 0.100 14.491 1.449 0.261 0.073 Active +FOPR 2013-08-02 00:00:00.000 0.150 0.100 14.491 1.449 0.258 0.069 Active +FOPR 2013-08-12 00:00:00.000 0.155 0.100 14.491 1.449 0.256 0.066 Active +FOPR 2013-08-22 00:00:00.000 0.159 0.100 14.491 1.449 0.254 0.063 Active +FOPR 2013-09-01 00:00:00.000 0.163 0.100 14.491 1.449 0.251 0.061 Active +FOPR 2013-09-11 00:00:00.000 0.166 0.100 14.491 1.449 0.248 0.059 Active +FOPR 2013-09-21 00:00:00.000 0.167 0.100 14.491 1.449 0.247 0.058 Active +FOPR 2013-10-01 00:00:00.000 0.167 0.100 14.491 1.449 0.245 0.058 Active +FOPR 2013-10-11 00:00:00.000 0.166 0.100 14.491 1.449 0.243 0.058 Active +FOPR 2013-10-21 00:00:00.000 0.165 0.100 14.491 1.449 0.243 0.058 Active +FOPR 2013-10-31 00:00:00.000 0.164 0.100 14.491 1.449 0.242 0.059 Active +FOPR 2013-11-10 00:00:00.000 0.165 0.100 14.491 1.449 0.243 0.059 Active +FOPR 2013-11-20 00:00:00.000 0.169 0.100 14.491 1.449 0.243 0.059 Active +FOPR 2013-11-30 00:00:00.000 0.176 0.100 14.491 1.449 0.242 0.058 Active +FOPR 2013-12-10 00:00:00.000 0.186 0.100 14.491 1.449 0.242 0.057 Active +FOPR 2013-12-20 00:00:00.000 0.197 0.100 14.491 1.449 0.241 0.057 Active +FOPR 2013-12-30 00:00:00.000 0.211 0.100 14.491 1.449 0.239 0.058 Active +FOPR 2014-01-09 00:00:00.000 0.225 0.100 14.491 1.449 0.238 0.059 Active +FOPR 2014-01-19 00:00:00.000 0.239 0.100 14.491 1.449 0.238 0.061 Active +FOPR 2014-01-29 00:00:00.000 0.252 0.100 14.491 1.449 0.238 0.061 Active +FOPR 2014-02-08 00:00:00.000 0.264 0.100 14.491 1.449 0.237 0.061 Active +FOPR 2014-02-18 00:00:00.000 0.275 0.100 14.491 1.449 0.236 0.062 Active +FOPR 2014-02-28 00:00:00.000 0.285 0.100 14.491 1.449 0.236 0.064 Active +FOPR 2014-03-10 00:00:00.000 0.295 0.100 14.491 1.449 0.236 0.066 Active +FOPR 2014-03-20 00:00:00.000 0.303 0.100 14.491 1.449 0.235 0.069 Active +FOPR 2014-03-30 00:00:00.000 0.309 0.100 14.491 1.449 0.234 0.072 Active +FOPR 2014-04-09 00:00:00.000 0.312 0.100 14.491 1.449 0.231 0.074 Active +FOPR 2014-04-19 00:00:00.000 0.313 0.100 14.491 1.449 0.229 0.076 Active +FOPR 2014-04-29 00:00:00.000 0.310 0.100 14.491 1.449 0.225 0.077 Active +FOPR 2014-05-09 00:00:00.000 0.304 0.100 14.491 1.449 0.220 0.078 Active +FOPR 2014-05-19 00:00:00.000 0.296 0.100 14.491 1.449 0.215 0.078 Active +FOPR 2014-05-29 00:00:00.000 0.286 0.100 14.491 1.449 0.209 0.078 Active +FOPR 2014-06-08 00:00:00.000 0.275 0.100 14.491 1.449 0.202 0.078 Active +FOPR 2014-06-18 00:00:00.000 0.264 0.100 14.491 1.449 0.195 0.079 Active +FOPR 2014-06-28 00:00:00.000 0.253 0.100 14.491 1.449 0.188 0.079 Active +FOPR 2014-07-08 00:00:00.000 0.241 0.100 14.491 1.449 0.181 0.080 Active +FOPR 2014-07-18 00:00:00.000 0.230 0.100 14.491 1.449 0.173 0.082 Active +FOPR 2014-07-28 00:00:00.000 0.218 0.100 14.491 1.449 0.167 0.084 Active +FOPR 2014-08-07 00:00:00.000 0.207 0.100 14.491 1.449 0.161 0.086 Active +FOPR 2014-08-17 00:00:00.000 0.197 0.100 14.491 1.449 0.155 0.088 Active +FOPR 2014-08-27 00:00:00.000 0.187 0.100 14.491 1.449 0.149 0.090 Active +FOPR 2014-09-06 00:00:00.000 0.178 0.100 14.491 1.449 0.143 0.092 Active +FOPR 2014-09-16 00:00:00.000 0.168 0.100 14.491 1.449 0.138 0.094 Active +FOPR 2014-09-26 00:00:00.000 0.159 0.100 14.491 1.449 0.132 0.095 Active +FOPR 2014-10-06 00:00:00.000 0.150 0.100 14.491 1.449 0.128 0.096 Active +FOPR 2014-10-16 00:00:00.000 0.141 0.100 14.491 1.449 0.124 0.096 Active +FOPR 2014-10-26 00:00:00.000 0.134 0.100 14.491 1.449 0.120 0.096 Active +FOPR 2014-11-05 00:00:00.000 0.127 0.100 14.491 1.449 0.116 0.097 Active +FOPR 2014-11-15 00:00:00.000 0.120 0.100 14.491 1.449 0.113 0.097 Active +FOPR 2014-11-25 00:00:00.000 0.115 0.100 14.491 1.449 0.110 0.096 Active +FOPR 2014-12-05 00:00:00.000 0.111 0.100 14.491 1.449 0.107 0.096 Active +FOPR 2014-12-15 00:00:00.000 0.107 0.100 14.491 1.449 0.105 0.095 Active +FOPR 2014-12-25 00:00:00.000 0.101 0.100 14.491 1.449 0.102 0.095 Active +FOPR 2015-01-04 00:00:00.000 0.096 0.100 14.491 1.449 0.100 0.095 Active +FOPR 2015-01-14 00:00:00.000 0.089 0.100 14.491 1.449 0.097 0.096 Active +FOPR 2015-01-24 00:00:00.000 0.081 0.100 14.491 1.449 0.094 0.096 Active +FOPR 2015-02-03 00:00:00.000 0.073 0.100 14.491 1.449 0.092 0.098 Active +FOPR 2015-02-13 00:00:00.000 0.065 0.100 14.491 1.449 0.090 0.099 Active +FOPR 2015-02-23 00:00:00.000 0.058 0.100 14.491 1.449 0.088 0.101 Active +FOPR 2015-03-05 00:00:00.000 0.050 0.100 14.491 1.449 0.087 0.103 Active +FOPR 2015-03-15 00:00:00.000 0.044 0.100 14.491 1.449 0.086 0.104 Active +FOPR 2015-03-25 00:00:00.000 0.038 0.100 14.491 1.449 0.085 0.106 Active +FOPR 2015-04-04 00:00:00.000 0.033 0.100 14.491 1.449 0.084 0.107 Active +FOPR 2015-04-14 00:00:00.000 0.029 0.100 14.491 1.449 0.084 0.108 Active +FOPR 2015-04-24 00:00:00.000 0.026 0.100 14.491 1.449 0.084 0.108 Active +FOPR 2015-05-04 00:00:00.000 0.024 0.100 14.491 1.449 0.084 0.109 Active +FOPR 2015-05-14 00:00:00.000 0.022 0.100 14.491 1.449 0.084 0.109 Active +FOPR 2015-05-24 00:00:00.000 0.021 0.100 14.491 1.449 0.084 0.109 Active +FOPR 2015-06-03 00:00:00.000 0.020 0.100 14.491 1.449 0.084 0.110 Active +FOPR 2015-06-13 00:00:00.000 0.020 0.100 14.491 1.449 0.084 0.110 Active +FOPR 2015-06-23 00:00:00.000 0.020 0.100 14.491 1.449 0.084 0.110 Active +WOPR_OP1_108 2012-12-15 00:00:00.000 0.300 0.075 14.491 1.087 0.257 0.099 Active +WOPR_OP1_144 2013-12-10 00:00:00.000 0.200 0.035 14.491 0.507 0.183 0.106 Active +WOPR_OP1_190 2015-03-15 00:00:00.000 0.015 0.010 14.491 0.145 0.042 0.041 Active +WOPR_OP1_36 2010-12-26 00:00:00.000 0.700 0.070 14.491 1.014 0.650 0.084 Active +WOPR_OP1_72 2011-12-21 00:00:00.000 0.500 0.050 14.491 0.725 0.405 0.170 Active +WOPR_OP1_9 2010-03-31 00:00:00.000 0.100 0.050 14.491 0.725 0.096 0.060 Active +WPR_DIFF_1 199, 1200 0.200 0.150 14.491 2.174 0.073 0.130 Active +WPR_DIFF_1 199, 1800 0.000 0.050 14.491 0.725 0.127 0.125 Active +WPR_DIFF_1 199, 400 0.000 0.100 14.491 1.449 -0.011 0.060 Active +WPR_DIFF_1 199, 800 0.100 0.200 14.491 2.898 0.081 0.126 Active +------------ ----------------------- ----- ----- ------ ----- ------ ----- ------ diff --git a/tests/ert/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess2/update_log b/tests/ert/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess2/update_log index 1d889e46ebe..323ef82811e 100644 --- a/tests/ert/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess2/update_log +++ b/tests/ert/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess2/update_log @@ -1,212 +1,212 @@ ------------- ----------------------- ----- ----- ----- ----- ------ ----- ------ -FOPR 2010-01-10 00:00:00.000 0.002 0.100 5.657 0.566 0.076 0.105 Active -FOPR 2010-01-20 00:00:00.000 0.008 0.100 5.657 0.566 0.079 0.107 Active -FOPR 2010-01-30 00:00:00.000 0.018 0.100 5.657 0.566 0.085 0.110 Active -FOPR 2010-02-09 00:00:00.000 0.032 0.100 5.657 0.566 0.092 0.114 Active -FOPR 2010-02-19 00:00:00.000 0.050 0.100 5.657 0.566 0.103 0.118 Active -FOPR 2010-03-01 00:00:00.000 0.071 0.100 5.657 0.566 0.117 0.122 Active -FOPR 2010-03-11 00:00:00.000 0.097 0.100 5.657 0.566 0.133 0.128 Active -FOPR 2010-03-21 00:00:00.000 0.126 0.100 5.657 0.566 0.151 0.134 Active -FOPR 2010-03-31 00:00:00.000 0.159 0.100 5.657 0.566 0.171 0.140 Active -FOPR 2010-04-10 00:00:00.000 0.194 0.100 5.657 0.566 0.193 0.148 Active -FOPR 2010-04-20 00:00:00.000 0.233 0.100 5.385 0.539 0.221 0.154 Active -FOPR 2010-04-30 00:00:00.000 0.274 0.100 5.385 0.539 0.251 0.161 Active -FOPR 2010-05-10 00:00:00.000 0.318 0.100 5.385 0.539 0.293 0.164 Active -FOPR 2010-05-20 00:00:00.000 0.363 0.100 5.385 0.539 0.340 0.163 Active -FOPR 2010-05-30 00:00:00.000 0.411 0.100 5.385 0.539 0.389 0.163 Active -FOPR 2010-06-09 00:00:00.000 0.460 0.100 5.385 0.539 0.439 0.163 Active -FOPR 2010-06-19 00:00:00.000 0.510 0.100 5.385 0.539 0.491 0.164 Active -FOPR 2010-06-29 00:00:00.000 0.561 0.100 5.657 0.566 0.544 0.164 Active -FOPR 2010-07-09 00:00:00.000 0.613 0.100 5.657 0.566 0.598 0.164 Active -FOPR 2010-07-19 00:00:00.000 0.666 0.100 5.657 0.566 0.652 0.163 Active -FOPR 2010-07-29 00:00:00.000 0.718 0.100 5.657 0.566 0.706 0.164 Active -FOPR 2010-08-08 00:00:00.000 0.770 0.100 3.317 0.332 0.760 0.164 Active -FOPR 2010-08-18 00:00:00.000 0.823 0.100 3.317 0.332 0.813 0.164 Active -FOPR 2010-08-28 00:00:00.000 0.875 0.100 3.317 0.332 0.864 0.164 Active -FOPR 2010-09-07 00:00:00.000 0.926 0.100 3.317 0.332 0.914 0.165 Active -FOPR 2010-09-17 00:00:00.000 0.977 0.100 3.317 0.332 0.963 0.165 Active -FOPR 2010-09-27 00:00:00.000 1.027 0.103 3.317 0.341 1.008 0.167 Active -FOPR 2010-10-07 00:00:00.000 1.075 0.108 3.317 0.357 1.049 0.169 Active -FOPR 2010-10-17 00:00:00.000 1.122 0.112 3.317 0.372 1.089 0.171 Active -FOPR 2010-10-27 00:00:00.000 1.166 0.117 3.317 0.387 1.126 0.172 Active -FOPR 2010-11-06 00:00:00.000 1.208 0.121 3.317 0.400 1.160 0.174 Active -FOPR 2010-11-16 00:00:00.000 1.247 0.125 3.317 0.414 1.192 0.175 Active -FOPR 2010-11-26 00:00:00.000 1.284 0.128 2.000 0.257 1.219 0.175 Active -FOPR 2010-12-06 00:00:00.000 1.317 0.132 2.000 0.263 1.243 0.175 Active -FOPR 2010-12-16 00:00:00.000 1.346 0.135 2.000 0.269 1.263 0.176 Active -FOPR 2010-12-26 00:00:00.000 1.371 0.137 2.000 0.274 1.279 0.176 Active -FOPR 2011-01-05 00:00:00.000 1.392 0.139 3.317 0.462 1.292 0.177 Active -FOPR 2011-01-15 00:00:00.000 1.407 0.141 3.317 0.467 1.300 0.179 Active -FOPR 2011-01-25 00:00:00.000 1.418 0.142 3.317 0.470 1.303 0.181 Active -FOPR 2011-02-04 00:00:00.000 1.422 0.142 3.317 0.472 1.303 0.183 Active -FOPR 2011-02-14 00:00:00.000 1.424 0.142 3.317 0.472 1.299 0.185 Active -FOPR 2011-02-24 00:00:00.000 1.425 0.143 3.317 0.473 1.294 0.187 Active -FOPR 2011-03-06 00:00:00.000 1.427 0.143 3.317 0.473 1.290 0.188 Active -FOPR 2011-03-16 00:00:00.000 1.430 0.143 3.317 0.474 1.283 0.189 Active -FOPR 2011-03-26 00:00:00.000 1.433 0.143 3.317 0.475 1.275 0.187 Active -FOPR 2011-04-05 00:00:00.000 1.438 0.144 3.317 0.477 1.263 0.186 Active -FOPR 2011-04-15 00:00:00.000 1.443 0.144 3.317 0.479 1.250 0.186 Active -FOPR 2011-04-25 00:00:00.000 1.449 0.145 3.000 0.435 1.237 0.186 Active -FOPR 2011-05-05 00:00:00.000 1.455 0.145 3.000 0.436 1.222 0.185 Active -FOPR 2011-05-15 00:00:00.000 1.460 0.146 3.000 0.438 1.207 0.184 Active -FOPR 2011-05-25 00:00:00.000 1.466 0.147 4.472 0.655 1.190 0.184 Active -FOPR 2011-06-04 00:00:00.000 1.470 0.147 4.472 0.658 1.170 0.183 Active -FOPR 2011-06-14 00:00:00.000 1.474 0.147 4.472 0.659 1.146 0.183 Active -FOPR 2011-06-24 00:00:00.000 1.475 0.148 4.472 0.660 1.122 0.184 Active -FOPR 2011-07-04 00:00:00.000 1.474 0.147 3.000 0.442 1.098 0.188 Active -FOPR 2011-07-14 00:00:00.000 1.469 0.147 4.472 0.657 1.077 0.192 Active -FOPR 2011-07-24 00:00:00.000 1.461 0.146 4.472 0.653 1.053 0.194 Active -FOPR 2011-08-03 00:00:00.000 1.449 0.145 3.000 0.435 1.027 0.196 Active -FOPR 2011-08-13 00:00:00.000 1.436 0.144 4.472 0.642 1.002 0.196 Active -FOPR 2011-08-23 00:00:00.000 1.421 0.142 4.472 0.636 0.975 0.197 Active -FOPR 2011-09-02 00:00:00.000 1.403 0.140 3.000 0.421 0.947 0.200 Active -FOPR 2011-09-12 00:00:00.000 1.379 0.138 4.472 0.617 0.928 0.200 Active -FOPR 2011-09-22 00:00:00.000 1.353 0.135 4.472 0.605 0.902 0.203 Active -FOPR 2011-10-02 00:00:00.000 1.324 0.132 4.472 0.592 0.878 0.206 Active -FOPR 2011-10-12 00:00:00.000 1.297 0.130 4.472 0.580 0.851 0.210 Active -FOPR 2011-10-22 00:00:00.000 1.270 0.127 3.000 0.381 0.824 0.213 Active -FOPR 2011-11-01 00:00:00.000 1.243 0.124 3.000 0.373 0.801 0.215 Active -FOPR 2011-11-11 00:00:00.000 1.216 0.122 3.000 0.365 0.781 0.216 Active -FOPR 2011-11-21 00:00:00.000 1.189 0.119 4.472 0.532 0.762 0.216 Active -FOPR 2011-12-01 00:00:00.000 1.161 0.116 4.472 0.519 0.744 0.215 Active -FOPR 2011-12-11 00:00:00.000 1.134 0.113 4.472 0.507 0.725 0.212 Active -FOPR 2011-12-21 00:00:00.000 1.112 0.111 4.472 0.497 0.704 0.206 Active -FOPR 2011-12-31 00:00:00.000 1.091 0.109 4.472 0.488 0.683 0.200 Active -FOPR 2012-01-10 00:00:00.000 1.072 0.107 4.472 0.479 0.661 0.194 Active -FOPR 2012-01-20 00:00:00.000 1.053 0.105 4.472 0.471 0.640 0.189 Active -FOPR 2012-01-30 00:00:00.000 1.033 0.103 4.472 0.462 0.619 0.185 Active -FOPR 2012-02-09 00:00:00.000 1.013 0.101 5.385 0.545 0.597 0.181 Active -FOPR 2012-02-19 00:00:00.000 0.995 0.100 5.385 0.539 0.576 0.176 Active -FOPR 2012-02-29 00:00:00.000 0.975 0.100 5.385 0.539 0.555 0.171 Active -FOPR 2012-03-10 00:00:00.000 0.956 0.100 5.385 0.539 0.533 0.171 Active -FOPR 2012-03-20 00:00:00.000 0.936 0.100 5.385 0.539 0.513 0.171 Active -FOPR 2012-03-30 00:00:00.000 0.916 0.100 5.385 0.539 0.494 0.170 Active -FOPR 2012-04-09 00:00:00.000 0.893 0.100 5.385 0.539 0.477 0.169 Active -FOPR 2012-04-19 00:00:00.000 0.869 0.100 5.385 0.539 0.462 0.169 Active -FOPR 2012-04-29 00:00:00.000 0.842 0.100 5.385 0.539 0.447 0.170 Active -FOPR 2012-05-09 00:00:00.000 0.812 0.100 5.385 0.539 0.432 0.170 Active -FOPR 2012-05-19 00:00:00.000 0.779 0.100 5.385 0.539 0.417 0.171 Active -FOPR 2012-05-29 00:00:00.000 0.742 0.100 5.385 0.539 0.403 0.170 Active -FOPR 2012-06-08 00:00:00.000 0.702 0.100 5.385 0.539 0.389 0.171 Active -FOPR 2012-06-18 00:00:00.000 0.661 0.100 5.385 0.539 0.379 0.171 Active -FOPR 2012-06-28 00:00:00.000 0.619 0.100 5.385 0.539 0.370 0.171 Active -FOPR 2012-07-08 00:00:00.000 0.578 0.100 5.385 0.539 0.361 0.169 Active -FOPR 2012-07-18 00:00:00.000 0.540 0.100 5.385 0.539 0.354 0.168 Active -FOPR 2012-07-28 00:00:00.000 0.505 0.100 5.385 0.539 0.349 0.166 Active -FOPR 2012-08-07 00:00:00.000 0.475 0.100 5.385 0.539 0.344 0.165 Active -FOPR 2012-08-17 00:00:00.000 0.450 0.100 5.385 0.539 0.340 0.165 Active -FOPR 2012-08-27 00:00:00.000 0.431 0.100 5.385 0.539 0.344 0.168 Active -FOPR 2012-09-06 00:00:00.000 0.419 0.100 5.385 0.539 0.350 0.171 Active -FOPR 2012-09-16 00:00:00.000 0.410 0.100 5.385 0.539 0.349 0.171 Active -FOPR 2012-09-26 00:00:00.000 0.406 0.100 5.385 0.539 0.350 0.173 Active -FOPR 2012-10-06 00:00:00.000 0.404 0.100 5.385 0.539 0.347 0.171 Active -FOPR 2012-10-16 00:00:00.000 0.399 0.100 5.385 0.539 0.344 0.168 Active -FOPR 2012-10-26 00:00:00.000 0.389 0.100 5.385 0.539 0.346 0.165 Active -FOPR 2012-11-05 00:00:00.000 0.374 0.100 5.385 0.539 0.348 0.162 Active -FOPR 2012-11-15 00:00:00.000 0.355 0.100 5.385 0.539 0.350 0.156 Active -FOPR 2012-11-25 00:00:00.000 0.332 0.100 1.732 0.173 0.350 0.148 Active -FOPR 2012-12-05 00:00:00.000 0.306 0.100 1.732 0.173 0.349 0.140 Active -FOPR 2012-12-15 00:00:00.000 0.282 0.100 1.732 0.173 0.348 0.133 Active -FOPR 2012-12-25 00:00:00.000 0.264 0.100 4.583 0.458 0.344 0.125 Active -FOPR 2013-01-04 00:00:00.000 0.248 0.100 4.583 0.458 0.340 0.118 Active -FOPR 2013-01-14 00:00:00.000 0.233 0.100 4.583 0.458 0.337 0.114 Active -FOPR 2013-01-24 00:00:00.000 0.219 0.100 4.583 0.458 0.335 0.112 Active -FOPR 2013-02-03 00:00:00.000 0.205 0.100 4.583 0.458 0.334 0.110 Active -FOPR 2013-02-13 00:00:00.000 0.192 0.100 4.583 0.458 0.333 0.110 Active -FOPR 2013-02-23 00:00:00.000 0.180 0.100 4.583 0.458 0.332 0.109 Active -FOPR 2013-03-05 00:00:00.000 0.169 0.100 4.583 0.458 0.330 0.107 Active -FOPR 2013-03-15 00:00:00.000 0.160 0.100 4.583 0.458 0.327 0.106 Active -FOPR 2013-03-25 00:00:00.000 0.152 0.100 4.583 0.458 0.323 0.105 Active -FOPR 2013-04-04 00:00:00.000 0.146 0.100 4.583 0.458 0.317 0.102 Active -FOPR 2013-04-14 00:00:00.000 0.141 0.100 4.583 0.458 0.310 0.100 Active -FOPR 2013-04-24 00:00:00.000 0.137 0.100 4.583 0.458 0.303 0.098 Active -FOPR 2013-05-04 00:00:00.000 0.134 0.100 4.583 0.458 0.296 0.096 Active -FOPR 2013-05-14 00:00:00.000 0.130 0.100 4.583 0.458 0.290 0.094 Active -FOPR 2013-05-24 00:00:00.000 0.127 0.100 4.583 0.458 0.284 0.092 Active -FOPR 2013-06-03 00:00:00.000 0.123 0.100 4.583 0.458 0.279 0.090 Active -FOPR 2013-06-13 00:00:00.000 0.119 0.100 4.583 0.458 0.275 0.088 Active -FOPR 2013-06-23 00:00:00.000 0.120 0.100 4.583 0.458 0.270 0.085 Active -FOPR 2013-07-03 00:00:00.000 0.128 0.100 4.583 0.458 0.266 0.081 Active -FOPR 2013-07-13 00:00:00.000 0.136 0.100 4.583 0.458 0.263 0.077 Active -FOPR 2013-07-23 00:00:00.000 0.143 0.100 1.000 0.100 0.261 0.073 Active -FOPR 2013-08-02 00:00:00.000 0.150 0.100 2.000 0.200 0.258 0.069 Active -FOPR 2013-08-12 00:00:00.000 0.155 0.100 2.000 0.200 0.256 0.066 Active -FOPR 2013-08-22 00:00:00.000 0.159 0.100 2.000 0.200 0.254 0.063 Active -FOPR 2013-09-01 00:00:00.000 0.163 0.100 2.000 0.200 0.251 0.061 Active -FOPR 2013-09-11 00:00:00.000 0.166 0.100 3.464 0.346 0.248 0.059 Active -FOPR 2013-09-21 00:00:00.000 0.167 0.100 3.464 0.346 0.247 0.058 Active -FOPR 2013-10-01 00:00:00.000 0.167 0.100 3.464 0.346 0.245 0.058 Active -FOPR 2013-10-11 00:00:00.000 0.166 0.100 3.464 0.346 0.243 0.058 Active -FOPR 2013-10-21 00:00:00.000 0.165 0.100 3.464 0.346 0.243 0.058 Active -FOPR 2013-10-31 00:00:00.000 0.164 0.100 3.464 0.346 0.242 0.059 Active -FOPR 2013-11-10 00:00:00.000 0.165 0.100 3.464 0.346 0.243 0.059 Active -FOPR 2013-11-20 00:00:00.000 0.169 0.100 3.464 0.346 0.243 0.059 Active -FOPR 2013-11-30 00:00:00.000 0.176 0.100 3.464 0.346 0.242 0.058 Active -FOPR 2013-12-10 00:00:00.000 0.186 0.100 3.464 0.346 0.242 0.057 Active -FOPR 2013-12-20 00:00:00.000 0.197 0.100 3.464 0.346 0.241 0.057 Active -FOPR 2013-12-30 00:00:00.000 0.211 0.100 3.464 0.346 0.239 0.058 Active -FOPR 2014-01-09 00:00:00.000 0.225 0.100 1.000 0.100 0.238 0.059 Active -FOPR 2014-01-19 00:00:00.000 0.239 0.100 1.414 0.141 0.238 0.061 Active -FOPR 2014-01-29 00:00:00.000 0.252 0.100 1.414 0.141 0.238 0.061 Active -FOPR 2014-02-08 00:00:00.000 0.264 0.100 2.236 0.224 0.237 0.061 Active -FOPR 2014-02-18 00:00:00.000 0.275 0.100 2.236 0.224 0.236 0.062 Active -FOPR 2014-02-28 00:00:00.000 0.285 0.100 2.236 0.224 0.236 0.064 Active -FOPR 2014-03-10 00:00:00.000 0.295 0.100 2.236 0.224 0.236 0.066 Active -FOPR 2014-03-20 00:00:00.000 0.303 0.100 2.236 0.224 0.235 0.069 Active -FOPR 2014-03-30 00:00:00.000 0.309 0.100 2.449 0.245 0.234 0.072 Active -FOPR 2014-04-09 00:00:00.000 0.312 0.100 2.449 0.245 0.231 0.074 Active -FOPR 2014-04-19 00:00:00.000 0.313 0.100 2.449 0.245 0.229 0.076 Active -FOPR 2014-04-29 00:00:00.000 0.310 0.100 2.449 0.245 0.225 0.077 Active -FOPR 2014-05-09 00:00:00.000 0.304 0.100 2.449 0.245 0.220 0.078 Active -FOPR 2014-05-19 00:00:00.000 0.296 0.100 2.449 0.245 0.215 0.078 Active -FOPR 2014-05-29 00:00:00.000 0.286 0.100 5.657 0.566 0.209 0.078 Active -FOPR 2014-06-08 00:00:00.000 0.275 0.100 5.657 0.566 0.202 0.078 Active -FOPR 2014-06-18 00:00:00.000 0.264 0.100 5.657 0.566 0.195 0.079 Active -FOPR 2014-06-28 00:00:00.000 0.253 0.100 5.657 0.566 0.188 0.079 Active -FOPR 2014-07-08 00:00:00.000 0.241 0.100 5.657 0.566 0.181 0.080 Active -FOPR 2014-07-18 00:00:00.000 0.230 0.100 5.657 0.566 0.173 0.082 Active -FOPR 2014-07-28 00:00:00.000 0.218 0.100 5.657 0.566 0.167 0.084 Active -FOPR 2014-08-07 00:00:00.000 0.207 0.100 5.657 0.566 0.161 0.086 Active -FOPR 2014-08-17 00:00:00.000 0.197 0.100 5.657 0.566 0.155 0.088 Active -FOPR 2014-08-27 00:00:00.000 0.187 0.100 5.657 0.566 0.149 0.090 Active -FOPR 2014-09-06 00:00:00.000 0.178 0.100 5.657 0.566 0.143 0.092 Active -FOPR 2014-09-16 00:00:00.000 0.168 0.100 5.385 0.539 0.138 0.094 Active -FOPR 2014-09-26 00:00:00.000 0.159 0.100 5.385 0.539 0.132 0.095 Active -FOPR 2014-10-06 00:00:00.000 0.150 0.100 5.385 0.539 0.128 0.096 Active -FOPR 2014-10-16 00:00:00.000 0.141 0.100 5.385 0.539 0.124 0.096 Active -FOPR 2014-10-26 00:00:00.000 0.134 0.100 5.385 0.539 0.120 0.096 Active -FOPR 2014-11-05 00:00:00.000 0.127 0.100 5.385 0.539 0.116 0.097 Active -FOPR 2014-11-15 00:00:00.000 0.120 0.100 5.385 0.539 0.113 0.097 Active -FOPR 2014-11-25 00:00:00.000 0.115 0.100 5.385 0.539 0.110 0.096 Active -FOPR 2014-12-05 00:00:00.000 0.111 0.100 5.385 0.539 0.107 0.096 Active -FOPR 2014-12-15 00:00:00.000 0.107 0.100 5.385 0.539 0.105 0.095 Active -FOPR 2014-12-25 00:00:00.000 0.101 0.100 5.385 0.539 0.102 0.095 Active -FOPR 2015-01-04 00:00:00.000 0.096 0.100 5.385 0.539 0.100 0.095 Active -FOPR 2015-01-14 00:00:00.000 0.089 0.100 5.385 0.539 0.097 0.096 Active -FOPR 2015-01-24 00:00:00.000 0.081 0.100 5.385 0.539 0.094 0.096 Active -FOPR 2015-02-03 00:00:00.000 0.073 0.100 5.385 0.539 0.092 0.098 Active -FOPR 2015-02-13 00:00:00.000 0.065 0.100 5.385 0.539 0.090 0.099 Active -FOPR 2015-02-23 00:00:00.000 0.058 0.100 5.385 0.539 0.088 0.101 Active -FOPR 2015-03-05 00:00:00.000 0.050 0.100 5.385 0.539 0.087 0.103 Active -FOPR 2015-03-15 00:00:00.000 0.044 0.100 5.385 0.539 0.086 0.104 Active -FOPR 2015-03-25 00:00:00.000 0.038 0.100 5.385 0.539 0.085 0.106 Active -FOPR 2015-04-04 00:00:00.000 0.033 0.100 5.385 0.539 0.084 0.107 Active -FOPR 2015-04-14 00:00:00.000 0.029 0.100 5.385 0.539 0.084 0.108 Active -FOPR 2015-04-24 00:00:00.000 0.026 0.100 5.657 0.566 0.084 0.108 Active -FOPR 2015-05-04 00:00:00.000 0.024 0.100 5.657 0.566 0.084 0.109 Active -FOPR 2015-05-14 00:00:00.000 0.022 0.100 5.657 0.566 0.084 0.109 Active -FOPR 2015-05-24 00:00:00.000 0.021 0.100 5.657 0.566 0.084 0.109 Active -FOPR 2015-06-03 00:00:00.000 0.020 0.100 5.657 0.566 0.084 0.110 Active -FOPR 2015-06-13 00:00:00.000 0.020 0.100 5.657 0.566 0.084 0.110 Active -FOPR 2015-06-23 00:00:00.000 0.020 0.100 5.657 0.566 0.084 0.110 Active -WOPR_OP1_108 2012-12-15 00:00:00.000 0.300 0.075 1.000 0.075 0.257 0.099 Active -WOPR_OP1_144 2013-12-10 00:00:00.000 0.200 0.035 1.000 0.035 0.183 0.106 Active -WOPR_OP1_190 2015-03-15 00:00:00.000 0.015 0.010 1.000 0.010 0.042 0.041 Active -WOPR_OP1_36 2010-12-26 00:00:00.000 0.700 0.070 1.000 0.070 0.650 0.084 Active -WOPR_OP1_72 2011-12-21 00:00:00.000 0.500 0.050 1.000 0.050 0.405 0.170 Active -WOPR_OP1_9 2010-03-31 00:00:00.000 0.100 0.050 1.000 0.050 0.096 0.060 Active -WPR_DIFF_1 199, 1200 0.200 0.150 1.000 0.150 0.073 0.130 Active -WPR_DIFF_1 199, 1800 0.000 0.050 1.000 0.050 0.127 0.125 Active -WPR_DIFF_1 199, 400 0.000 0.100 1.000 0.100 -0.011 0.060 Active -WPR_DIFF_1 199, 800 0.100 0.200 1.000 0.200 0.081 0.126 Active ------------- ----------------------- ----- ----- ----- ----- ------ ----- ------ +------------ ----------------------- ----- ----- ------ ----- ------ ----- ------ +FOPR 2010-01-10 00:00:00.000 0.002 0.100 14.142 1.414 0.076 0.105 Active +FOPR 2010-01-20 00:00:00.000 0.008 0.100 14.142 1.414 0.079 0.107 Active +FOPR 2010-01-30 00:00:00.000 0.018 0.100 14.142 1.414 0.085 0.110 Active +FOPR 2010-02-09 00:00:00.000 0.032 0.100 14.142 1.414 0.092 0.114 Active +FOPR 2010-02-19 00:00:00.000 0.050 0.100 14.142 1.414 0.103 0.118 Active +FOPR 2010-03-01 00:00:00.000 0.071 0.100 14.142 1.414 0.117 0.122 Active +FOPR 2010-03-11 00:00:00.000 0.097 0.100 14.142 1.414 0.133 0.128 Active +FOPR 2010-03-21 00:00:00.000 0.126 0.100 14.142 1.414 0.151 0.134 Active +FOPR 2010-03-31 00:00:00.000 0.159 0.100 14.142 1.414 0.171 0.140 Active +FOPR 2010-04-10 00:00:00.000 0.194 0.100 14.142 1.414 0.193 0.148 Active +FOPR 2010-04-20 00:00:00.000 0.233 0.100 14.142 1.414 0.221 0.154 Active +FOPR 2010-04-30 00:00:00.000 0.274 0.100 14.142 1.414 0.251 0.161 Active +FOPR 2010-05-10 00:00:00.000 0.318 0.100 14.142 1.414 0.293 0.164 Active +FOPR 2010-05-20 00:00:00.000 0.363 0.100 14.142 1.414 0.340 0.163 Active +FOPR 2010-05-30 00:00:00.000 0.411 0.100 14.142 1.414 0.389 0.163 Active +FOPR 2010-06-09 00:00:00.000 0.460 0.100 14.142 1.414 0.439 0.163 Active +FOPR 2010-06-19 00:00:00.000 0.510 0.100 14.142 1.414 0.491 0.164 Active +FOPR 2010-06-29 00:00:00.000 0.561 0.100 14.142 1.414 0.544 0.164 Active +FOPR 2010-07-09 00:00:00.000 0.613 0.100 14.142 1.414 0.598 0.164 Active +FOPR 2010-07-19 00:00:00.000 0.666 0.100 14.142 1.414 0.652 0.163 Active +FOPR 2010-07-29 00:00:00.000 0.718 0.100 14.142 1.414 0.706 0.164 Active +FOPR 2010-08-08 00:00:00.000 0.770 0.100 14.142 1.414 0.760 0.164 Active +FOPR 2010-08-18 00:00:00.000 0.823 0.100 14.142 1.414 0.813 0.164 Active +FOPR 2010-08-28 00:00:00.000 0.875 0.100 14.142 1.414 0.864 0.164 Active +FOPR 2010-09-07 00:00:00.000 0.926 0.100 14.142 1.414 0.914 0.165 Active +FOPR 2010-09-17 00:00:00.000 0.977 0.100 14.142 1.414 0.963 0.165 Active +FOPR 2010-09-27 00:00:00.000 1.027 0.103 14.142 1.452 1.008 0.167 Active +FOPR 2010-10-07 00:00:00.000 1.075 0.108 14.142 1.520 1.049 0.169 Active +FOPR 2010-10-17 00:00:00.000 1.122 0.112 14.142 1.586 1.089 0.171 Active +FOPR 2010-10-27 00:00:00.000 1.166 0.117 14.142 1.649 1.126 0.172 Active +FOPR 2010-11-06 00:00:00.000 1.208 0.121 14.142 1.708 1.160 0.174 Active +FOPR 2010-11-16 00:00:00.000 1.247 0.125 14.142 1.764 1.192 0.175 Active +FOPR 2010-11-26 00:00:00.000 1.284 0.128 14.142 1.815 1.219 0.175 Active +FOPR 2010-12-06 00:00:00.000 1.317 0.132 14.142 1.862 1.243 0.175 Active +FOPR 2010-12-16 00:00:00.000 1.346 0.135 14.142 1.904 1.263 0.176 Active +FOPR 2010-12-26 00:00:00.000 1.371 0.137 14.142 1.939 1.279 0.176 Active +FOPR 2011-01-05 00:00:00.000 1.392 0.139 14.142 1.968 1.292 0.177 Active +FOPR 2011-01-15 00:00:00.000 1.407 0.141 14.142 1.990 1.300 0.179 Active +FOPR 2011-01-25 00:00:00.000 1.418 0.142 14.142 2.005 1.303 0.181 Active +FOPR 2011-02-04 00:00:00.000 1.422 0.142 14.142 2.011 1.303 0.183 Active +FOPR 2011-02-14 00:00:00.000 1.424 0.142 14.142 2.013 1.299 0.185 Active +FOPR 2011-02-24 00:00:00.000 1.425 0.143 14.142 2.016 1.294 0.187 Active +FOPR 2011-03-06 00:00:00.000 1.427 0.143 14.142 2.018 1.290 0.188 Active +FOPR 2011-03-16 00:00:00.000 1.430 0.143 14.142 2.022 1.283 0.189 Active +FOPR 2011-03-26 00:00:00.000 1.433 0.143 14.142 2.027 1.275 0.187 Active +FOPR 2011-04-05 00:00:00.000 1.438 0.144 14.142 2.033 1.263 0.186 Active +FOPR 2011-04-15 00:00:00.000 1.443 0.144 14.142 2.041 1.250 0.186 Active +FOPR 2011-04-25 00:00:00.000 1.449 0.145 14.142 2.049 1.237 0.186 Active +FOPR 2011-05-05 00:00:00.000 1.455 0.145 14.142 2.057 1.222 0.185 Active +FOPR 2011-05-15 00:00:00.000 1.460 0.146 14.142 2.065 1.207 0.184 Active +FOPR 2011-05-25 00:00:00.000 1.466 0.147 14.142 2.073 1.190 0.184 Active +FOPR 2011-06-04 00:00:00.000 1.470 0.147 14.142 2.079 1.170 0.183 Active +FOPR 2011-06-14 00:00:00.000 1.474 0.147 14.142 2.085 1.146 0.183 Active +FOPR 2011-06-24 00:00:00.000 1.475 0.148 14.142 2.086 1.122 0.184 Active +FOPR 2011-07-04 00:00:00.000 1.474 0.147 14.142 2.084 1.098 0.188 Active +FOPR 2011-07-14 00:00:00.000 1.469 0.147 14.142 2.078 1.077 0.192 Active +FOPR 2011-07-24 00:00:00.000 1.461 0.146 14.142 2.066 1.053 0.194 Active +FOPR 2011-08-03 00:00:00.000 1.449 0.145 14.142 2.050 1.027 0.196 Active +FOPR 2011-08-13 00:00:00.000 1.436 0.144 14.142 2.031 1.002 0.196 Active +FOPR 2011-08-23 00:00:00.000 1.421 0.142 14.142 2.010 0.975 0.197 Active +FOPR 2011-09-02 00:00:00.000 1.403 0.140 14.142 1.984 0.947 0.200 Active +FOPR 2011-09-12 00:00:00.000 1.379 0.138 14.142 1.951 0.928 0.200 Active +FOPR 2011-09-22 00:00:00.000 1.353 0.135 14.142 1.913 0.902 0.203 Active +FOPR 2011-10-02 00:00:00.000 1.324 0.132 14.142 1.873 0.878 0.206 Active +FOPR 2011-10-12 00:00:00.000 1.297 0.130 14.142 1.834 0.851 0.210 Active +FOPR 2011-10-22 00:00:00.000 1.270 0.127 14.142 1.797 0.824 0.213 Active +FOPR 2011-11-01 00:00:00.000 1.243 0.124 14.142 1.758 0.801 0.215 Active +FOPR 2011-11-11 00:00:00.000 1.216 0.122 14.142 1.720 0.781 0.216 Active +FOPR 2011-11-21 00:00:00.000 1.189 0.119 14.142 1.682 0.762 0.216 Active +FOPR 2011-12-01 00:00:00.000 1.161 0.116 14.142 1.643 0.744 0.215 Active +FOPR 2011-12-11 00:00:00.000 1.134 0.113 14.142 1.604 0.725 0.212 Active +FOPR 2011-12-21 00:00:00.000 1.112 0.111 14.142 1.572 0.704 0.206 Active +FOPR 2011-12-31 00:00:00.000 1.091 0.109 14.142 1.543 0.683 0.200 Active +FOPR 2012-01-10 00:00:00.000 1.072 0.107 14.142 1.516 0.661 0.194 Active +FOPR 2012-01-20 00:00:00.000 1.053 0.105 14.142 1.489 0.640 0.189 Active +FOPR 2012-01-30 00:00:00.000 1.033 0.103 14.142 1.460 0.619 0.185 Active +FOPR 2012-02-09 00:00:00.000 1.013 0.101 14.142 1.432 0.597 0.181 Active +FOPR 2012-02-19 00:00:00.000 0.995 0.100 14.142 1.414 0.576 0.176 Active +FOPR 2012-02-29 00:00:00.000 0.975 0.100 14.142 1.414 0.555 0.171 Active +FOPR 2012-03-10 00:00:00.000 0.956 0.100 14.142 1.414 0.533 0.171 Active +FOPR 2012-03-20 00:00:00.000 0.936 0.100 14.142 1.414 0.513 0.171 Active +FOPR 2012-03-30 00:00:00.000 0.916 0.100 14.142 1.414 0.494 0.170 Active +FOPR 2012-04-09 00:00:00.000 0.893 0.100 14.142 1.414 0.477 0.169 Active +FOPR 2012-04-19 00:00:00.000 0.869 0.100 14.142 1.414 0.462 0.169 Active +FOPR 2012-04-29 00:00:00.000 0.842 0.100 14.142 1.414 0.447 0.170 Active +FOPR 2012-05-09 00:00:00.000 0.812 0.100 14.142 1.414 0.432 0.170 Active +FOPR 2012-05-19 00:00:00.000 0.779 0.100 14.142 1.414 0.417 0.171 Active +FOPR 2012-05-29 00:00:00.000 0.742 0.100 14.142 1.414 0.403 0.170 Active +FOPR 2012-06-08 00:00:00.000 0.702 0.100 14.142 1.414 0.389 0.171 Active +FOPR 2012-06-18 00:00:00.000 0.661 0.100 14.142 1.414 0.379 0.171 Active +FOPR 2012-06-28 00:00:00.000 0.619 0.100 14.142 1.414 0.370 0.171 Active +FOPR 2012-07-08 00:00:00.000 0.578 0.100 14.142 1.414 0.361 0.169 Active +FOPR 2012-07-18 00:00:00.000 0.540 0.100 14.142 1.414 0.354 0.168 Active +FOPR 2012-07-28 00:00:00.000 0.505 0.100 14.142 1.414 0.349 0.166 Active +FOPR 2012-08-07 00:00:00.000 0.475 0.100 14.142 1.414 0.344 0.165 Active +FOPR 2012-08-17 00:00:00.000 0.450 0.100 14.142 1.414 0.340 0.165 Active +FOPR 2012-08-27 00:00:00.000 0.431 0.100 14.142 1.414 0.344 0.168 Active +FOPR 2012-09-06 00:00:00.000 0.419 0.100 14.142 1.414 0.350 0.171 Active +FOPR 2012-09-16 00:00:00.000 0.410 0.100 14.142 1.414 0.349 0.171 Active +FOPR 2012-09-26 00:00:00.000 0.406 0.100 14.142 1.414 0.350 0.173 Active +FOPR 2012-10-06 00:00:00.000 0.404 0.100 14.142 1.414 0.347 0.171 Active +FOPR 2012-10-16 00:00:00.000 0.399 0.100 14.142 1.414 0.344 0.168 Active +FOPR 2012-10-26 00:00:00.000 0.389 0.100 14.142 1.414 0.346 0.165 Active +FOPR 2012-11-05 00:00:00.000 0.374 0.100 14.142 1.414 0.348 0.162 Active +FOPR 2012-11-15 00:00:00.000 0.355 0.100 14.142 1.414 0.350 0.156 Active +FOPR 2012-11-25 00:00:00.000 0.332 0.100 14.142 1.414 0.350 0.148 Active +FOPR 2012-12-05 00:00:00.000 0.306 0.100 14.142 1.414 0.349 0.140 Active +FOPR 2012-12-15 00:00:00.000 0.282 0.100 14.142 1.414 0.348 0.133 Active +FOPR 2012-12-25 00:00:00.000 0.264 0.100 14.142 1.414 0.344 0.125 Active +FOPR 2013-01-04 00:00:00.000 0.248 0.100 14.142 1.414 0.340 0.118 Active +FOPR 2013-01-14 00:00:00.000 0.233 0.100 14.142 1.414 0.337 0.114 Active +FOPR 2013-01-24 00:00:00.000 0.219 0.100 14.142 1.414 0.335 0.112 Active +FOPR 2013-02-03 00:00:00.000 0.205 0.100 14.142 1.414 0.334 0.110 Active +FOPR 2013-02-13 00:00:00.000 0.192 0.100 14.142 1.414 0.333 0.110 Active +FOPR 2013-02-23 00:00:00.000 0.180 0.100 14.142 1.414 0.332 0.109 Active +FOPR 2013-03-05 00:00:00.000 0.169 0.100 14.142 1.414 0.330 0.107 Active +FOPR 2013-03-15 00:00:00.000 0.160 0.100 14.142 1.414 0.327 0.106 Active +FOPR 2013-03-25 00:00:00.000 0.152 0.100 14.142 1.414 0.323 0.105 Active +FOPR 2013-04-04 00:00:00.000 0.146 0.100 14.142 1.414 0.317 0.102 Active +FOPR 2013-04-14 00:00:00.000 0.141 0.100 14.142 1.414 0.310 0.100 Active +FOPR 2013-04-24 00:00:00.000 0.137 0.100 14.142 1.414 0.303 0.098 Active +FOPR 2013-05-04 00:00:00.000 0.134 0.100 14.142 1.414 0.296 0.096 Active +FOPR 2013-05-14 00:00:00.000 0.130 0.100 14.142 1.414 0.290 0.094 Active +FOPR 2013-05-24 00:00:00.000 0.127 0.100 14.142 1.414 0.284 0.092 Active +FOPR 2013-06-03 00:00:00.000 0.123 0.100 14.142 1.414 0.279 0.090 Active +FOPR 2013-06-13 00:00:00.000 0.119 0.100 14.142 1.414 0.275 0.088 Active +FOPR 2013-06-23 00:00:00.000 0.120 0.100 14.142 1.414 0.270 0.085 Active +FOPR 2013-07-03 00:00:00.000 0.128 0.100 14.142 1.414 0.266 0.081 Active +FOPR 2013-07-13 00:00:00.000 0.136 0.100 14.142 1.414 0.263 0.077 Active +FOPR 2013-07-23 00:00:00.000 0.143 0.100 14.142 1.414 0.261 0.073 Active +FOPR 2013-08-02 00:00:00.000 0.150 0.100 14.142 1.414 0.258 0.069 Active +FOPR 2013-08-12 00:00:00.000 0.155 0.100 14.142 1.414 0.256 0.066 Active +FOPR 2013-08-22 00:00:00.000 0.159 0.100 14.142 1.414 0.254 0.063 Active +FOPR 2013-09-01 00:00:00.000 0.163 0.100 14.142 1.414 0.251 0.061 Active +FOPR 2013-09-11 00:00:00.000 0.166 0.100 14.142 1.414 0.248 0.059 Active +FOPR 2013-09-21 00:00:00.000 0.167 0.100 14.142 1.414 0.247 0.058 Active +FOPR 2013-10-01 00:00:00.000 0.167 0.100 14.142 1.414 0.245 0.058 Active +FOPR 2013-10-11 00:00:00.000 0.166 0.100 14.142 1.414 0.243 0.058 Active +FOPR 2013-10-21 00:00:00.000 0.165 0.100 14.142 1.414 0.243 0.058 Active +FOPR 2013-10-31 00:00:00.000 0.164 0.100 14.142 1.414 0.242 0.059 Active +FOPR 2013-11-10 00:00:00.000 0.165 0.100 14.142 1.414 0.243 0.059 Active +FOPR 2013-11-20 00:00:00.000 0.169 0.100 14.142 1.414 0.243 0.059 Active +FOPR 2013-11-30 00:00:00.000 0.176 0.100 14.142 1.414 0.242 0.058 Active +FOPR 2013-12-10 00:00:00.000 0.186 0.100 14.142 1.414 0.242 0.057 Active +FOPR 2013-12-20 00:00:00.000 0.197 0.100 14.142 1.414 0.241 0.057 Active +FOPR 2013-12-30 00:00:00.000 0.211 0.100 14.142 1.414 0.239 0.058 Active +FOPR 2014-01-09 00:00:00.000 0.225 0.100 14.142 1.414 0.238 0.059 Active +FOPR 2014-01-19 00:00:00.000 0.239 0.100 14.142 1.414 0.238 0.061 Active +FOPR 2014-01-29 00:00:00.000 0.252 0.100 14.142 1.414 0.238 0.061 Active +FOPR 2014-02-08 00:00:00.000 0.264 0.100 14.142 1.414 0.237 0.061 Active +FOPR 2014-02-18 00:00:00.000 0.275 0.100 14.142 1.414 0.236 0.062 Active +FOPR 2014-02-28 00:00:00.000 0.285 0.100 14.142 1.414 0.236 0.064 Active +FOPR 2014-03-10 00:00:00.000 0.295 0.100 14.142 1.414 0.236 0.066 Active +FOPR 2014-03-20 00:00:00.000 0.303 0.100 14.142 1.414 0.235 0.069 Active +FOPR 2014-03-30 00:00:00.000 0.309 0.100 14.142 1.414 0.234 0.072 Active +FOPR 2014-04-09 00:00:00.000 0.312 0.100 14.142 1.414 0.231 0.074 Active +FOPR 2014-04-19 00:00:00.000 0.313 0.100 14.142 1.414 0.229 0.076 Active +FOPR 2014-04-29 00:00:00.000 0.310 0.100 14.142 1.414 0.225 0.077 Active +FOPR 2014-05-09 00:00:00.000 0.304 0.100 14.142 1.414 0.220 0.078 Active +FOPR 2014-05-19 00:00:00.000 0.296 0.100 14.142 1.414 0.215 0.078 Active +FOPR 2014-05-29 00:00:00.000 0.286 0.100 14.142 1.414 0.209 0.078 Active +FOPR 2014-06-08 00:00:00.000 0.275 0.100 14.142 1.414 0.202 0.078 Active +FOPR 2014-06-18 00:00:00.000 0.264 0.100 14.142 1.414 0.195 0.079 Active +FOPR 2014-06-28 00:00:00.000 0.253 0.100 14.142 1.414 0.188 0.079 Active +FOPR 2014-07-08 00:00:00.000 0.241 0.100 14.142 1.414 0.181 0.080 Active +FOPR 2014-07-18 00:00:00.000 0.230 0.100 14.142 1.414 0.173 0.082 Active +FOPR 2014-07-28 00:00:00.000 0.218 0.100 14.142 1.414 0.167 0.084 Active +FOPR 2014-08-07 00:00:00.000 0.207 0.100 14.142 1.414 0.161 0.086 Active +FOPR 2014-08-17 00:00:00.000 0.197 0.100 14.142 1.414 0.155 0.088 Active +FOPR 2014-08-27 00:00:00.000 0.187 0.100 14.142 1.414 0.149 0.090 Active +FOPR 2014-09-06 00:00:00.000 0.178 0.100 14.142 1.414 0.143 0.092 Active +FOPR 2014-09-16 00:00:00.000 0.168 0.100 14.142 1.414 0.138 0.094 Active +FOPR 2014-09-26 00:00:00.000 0.159 0.100 14.142 1.414 0.132 0.095 Active +FOPR 2014-10-06 00:00:00.000 0.150 0.100 14.142 1.414 0.128 0.096 Active +FOPR 2014-10-16 00:00:00.000 0.141 0.100 14.142 1.414 0.124 0.096 Active +FOPR 2014-10-26 00:00:00.000 0.134 0.100 14.142 1.414 0.120 0.096 Active +FOPR 2014-11-05 00:00:00.000 0.127 0.100 14.142 1.414 0.116 0.097 Active +FOPR 2014-11-15 00:00:00.000 0.120 0.100 14.142 1.414 0.113 0.097 Active +FOPR 2014-11-25 00:00:00.000 0.115 0.100 14.142 1.414 0.110 0.096 Active +FOPR 2014-12-05 00:00:00.000 0.111 0.100 14.142 1.414 0.107 0.096 Active +FOPR 2014-12-15 00:00:00.000 0.107 0.100 14.142 1.414 0.105 0.095 Active +FOPR 2014-12-25 00:00:00.000 0.101 0.100 14.142 1.414 0.102 0.095 Active +FOPR 2015-01-04 00:00:00.000 0.096 0.100 14.142 1.414 0.100 0.095 Active +FOPR 2015-01-14 00:00:00.000 0.089 0.100 14.142 1.414 0.097 0.096 Active +FOPR 2015-01-24 00:00:00.000 0.081 0.100 14.142 1.414 0.094 0.096 Active +FOPR 2015-02-03 00:00:00.000 0.073 0.100 14.142 1.414 0.092 0.098 Active +FOPR 2015-02-13 00:00:00.000 0.065 0.100 14.142 1.414 0.090 0.099 Active +FOPR 2015-02-23 00:00:00.000 0.058 0.100 14.142 1.414 0.088 0.101 Active +FOPR 2015-03-05 00:00:00.000 0.050 0.100 14.142 1.414 0.087 0.103 Active +FOPR 2015-03-15 00:00:00.000 0.044 0.100 14.142 1.414 0.086 0.104 Active +FOPR 2015-03-25 00:00:00.000 0.038 0.100 14.142 1.414 0.085 0.106 Active +FOPR 2015-04-04 00:00:00.000 0.033 0.100 14.142 1.414 0.084 0.107 Active +FOPR 2015-04-14 00:00:00.000 0.029 0.100 14.142 1.414 0.084 0.108 Active +FOPR 2015-04-24 00:00:00.000 0.026 0.100 14.142 1.414 0.084 0.108 Active +FOPR 2015-05-04 00:00:00.000 0.024 0.100 14.142 1.414 0.084 0.109 Active +FOPR 2015-05-14 00:00:00.000 0.022 0.100 14.142 1.414 0.084 0.109 Active +FOPR 2015-05-24 00:00:00.000 0.021 0.100 14.142 1.414 0.084 0.109 Active +FOPR 2015-06-03 00:00:00.000 0.020 0.100 14.142 1.414 0.084 0.110 Active +FOPR 2015-06-13 00:00:00.000 0.020 0.100 14.142 1.414 0.084 0.110 Active +FOPR 2015-06-23 00:00:00.000 0.020 0.100 14.142 1.414 0.084 0.110 Active +WOPR_OP1_108 2012-12-15 00:00:00.000 0.300 0.075 1.000 0.075 0.257 0.099 Active +WOPR_OP1_144 2013-12-10 00:00:00.000 0.200 0.035 1.000 0.035 0.183 0.106 Active +WOPR_OP1_190 2015-03-15 00:00:00.000 0.015 0.010 1.000 0.010 0.042 0.041 Active +WOPR_OP1_36 2010-12-26 00:00:00.000 0.700 0.070 1.000 0.070 0.650 0.084 Active +WOPR_OP1_72 2011-12-21 00:00:00.000 0.500 0.050 1.000 0.050 0.405 0.170 Active +WOPR_OP1_9 2010-03-31 00:00:00.000 0.100 0.050 1.000 0.050 0.096 0.060 Active +WPR_DIFF_1 199, 1200 0.200 0.150 1.000 0.150 0.073 0.130 Active +WPR_DIFF_1 199, 1800 0.000 0.050 1.000 0.050 0.127 0.125 Active +WPR_DIFF_1 199, 400 0.000 0.100 1.000 0.100 -0.011 0.060 Active +WPR_DIFF_1 199, 800 0.100 0.200 1.000 0.200 0.081 0.126 Active +------------ ----------------------- ----- ----- ------ ----- ------ ----- ------ diff --git a/tests/ert/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess3/update_log b/tests/ert/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess3/update_log index f0d91911faf..a0a5faa2178 100644 --- a/tests/ert/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess3/update_log +++ b/tests/ert/unit_tests/analysis/snapshots/test_es_update/test_update_report/0-misfit_preprocess3/update_log @@ -1,212 +1,212 @@ ------------- ----------------------- ----- ----- ----- ----- ------ ----- ------ -FOPR 2010-01-10 00:00:00.000 0.002 0.100 5.657 0.566 0.076 0.105 Active -FOPR 2010-01-20 00:00:00.000 0.008 0.100 5.657 0.566 0.079 0.107 Active -FOPR 2010-01-30 00:00:00.000 0.018 0.100 5.657 0.566 0.085 0.110 Active -FOPR 2010-02-09 00:00:00.000 0.032 0.100 5.657 0.566 0.092 0.114 Active -FOPR 2010-02-19 00:00:00.000 0.050 0.100 5.657 0.566 0.103 0.118 Active -FOPR 2010-03-01 00:00:00.000 0.071 0.100 5.657 0.566 0.117 0.122 Active -FOPR 2010-03-11 00:00:00.000 0.097 0.100 5.657 0.566 0.133 0.128 Active -FOPR 2010-03-21 00:00:00.000 0.126 0.100 5.657 0.566 0.151 0.134 Active -FOPR 2010-03-31 00:00:00.000 0.159 0.100 5.657 0.566 0.171 0.140 Active -FOPR 2010-04-10 00:00:00.000 0.194 0.100 5.657 0.566 0.193 0.148 Active -FOPR 2010-04-20 00:00:00.000 0.233 0.100 5.385 0.539 0.221 0.154 Active -FOPR 2010-04-30 00:00:00.000 0.274 0.100 5.385 0.539 0.251 0.161 Active -FOPR 2010-05-10 00:00:00.000 0.318 0.100 5.385 0.539 0.293 0.164 Active -FOPR 2010-05-20 00:00:00.000 0.363 0.100 5.385 0.539 0.340 0.163 Active -FOPR 2010-05-30 00:00:00.000 0.411 0.100 5.385 0.539 0.389 0.163 Active -FOPR 2010-06-09 00:00:00.000 0.460 0.100 5.385 0.539 0.439 0.163 Active -FOPR 2010-06-19 00:00:00.000 0.510 0.100 5.385 0.539 0.491 0.164 Active -FOPR 2010-06-29 00:00:00.000 0.561 0.100 5.657 0.566 0.544 0.164 Active -FOPR 2010-07-09 00:00:00.000 0.613 0.100 5.657 0.566 0.598 0.164 Active -FOPR 2010-07-19 00:00:00.000 0.666 0.100 5.657 0.566 0.652 0.163 Active -FOPR 2010-07-29 00:00:00.000 0.718 0.100 5.657 0.566 0.706 0.164 Active -FOPR 2010-08-08 00:00:00.000 0.770 0.100 3.317 0.332 0.760 0.164 Active -FOPR 2010-08-18 00:00:00.000 0.823 0.100 3.317 0.332 0.813 0.164 Active -FOPR 2010-08-28 00:00:00.000 0.875 0.100 3.317 0.332 0.864 0.164 Active -FOPR 2010-09-07 00:00:00.000 0.926 0.100 3.317 0.332 0.914 0.165 Active -FOPR 2010-09-17 00:00:00.000 0.977 0.100 3.317 0.332 0.963 0.165 Active -FOPR 2010-09-27 00:00:00.000 1.027 0.103 3.317 0.341 1.008 0.167 Active -FOPR 2010-10-07 00:00:00.000 1.075 0.108 3.317 0.357 1.049 0.169 Active -FOPR 2010-10-17 00:00:00.000 1.122 0.112 3.317 0.372 1.089 0.171 Active -FOPR 2010-10-27 00:00:00.000 1.166 0.117 3.317 0.387 1.126 0.172 Active -FOPR 2010-11-06 00:00:00.000 1.208 0.121 3.317 0.400 1.160 0.174 Active -FOPR 2010-11-16 00:00:00.000 1.247 0.125 3.317 0.414 1.192 0.175 Active -FOPR 2010-11-26 00:00:00.000 1.284 0.128 2.000 0.257 1.219 0.175 Active -FOPR 2010-12-06 00:00:00.000 1.317 0.132 2.000 0.263 1.243 0.175 Active -FOPR 2010-12-16 00:00:00.000 1.346 0.135 2.000 0.269 1.263 0.176 Active -FOPR 2010-12-26 00:00:00.000 1.371 0.137 2.000 0.274 1.279 0.176 Active -FOPR 2011-01-05 00:00:00.000 1.392 0.139 3.317 0.462 1.292 0.177 Active -FOPR 2011-01-15 00:00:00.000 1.407 0.141 3.317 0.467 1.300 0.179 Active -FOPR 2011-01-25 00:00:00.000 1.418 0.142 3.317 0.470 1.303 0.181 Active -FOPR 2011-02-04 00:00:00.000 1.422 0.142 3.317 0.472 1.303 0.183 Active -FOPR 2011-02-14 00:00:00.000 1.424 0.142 3.317 0.472 1.299 0.185 Active -FOPR 2011-02-24 00:00:00.000 1.425 0.143 3.317 0.473 1.294 0.187 Active -FOPR 2011-03-06 00:00:00.000 1.427 0.143 3.317 0.473 1.290 0.188 Active -FOPR 2011-03-16 00:00:00.000 1.430 0.143 3.317 0.474 1.283 0.189 Active -FOPR 2011-03-26 00:00:00.000 1.433 0.143 3.317 0.475 1.275 0.187 Active -FOPR 2011-04-05 00:00:00.000 1.438 0.144 3.317 0.477 1.263 0.186 Active -FOPR 2011-04-15 00:00:00.000 1.443 0.144 3.317 0.479 1.250 0.186 Active -FOPR 2011-04-25 00:00:00.000 1.449 0.145 3.000 0.435 1.237 0.186 Active -FOPR 2011-05-05 00:00:00.000 1.455 0.145 3.000 0.436 1.222 0.185 Active -FOPR 2011-05-15 00:00:00.000 1.460 0.146 3.000 0.438 1.207 0.184 Active -FOPR 2011-05-25 00:00:00.000 1.466 0.147 4.472 0.655 1.190 0.184 Active -FOPR 2011-06-04 00:00:00.000 1.470 0.147 4.472 0.658 1.170 0.183 Active -FOPR 2011-06-14 00:00:00.000 1.474 0.147 4.472 0.659 1.146 0.183 Active -FOPR 2011-06-24 00:00:00.000 1.475 0.148 4.472 0.660 1.122 0.184 Active -FOPR 2011-07-04 00:00:00.000 1.474 0.147 3.000 0.442 1.098 0.188 Active -FOPR 2011-07-14 00:00:00.000 1.469 0.147 4.472 0.657 1.077 0.192 Active -FOPR 2011-07-24 00:00:00.000 1.461 0.146 4.472 0.653 1.053 0.194 Active -FOPR 2011-08-03 00:00:00.000 1.449 0.145 3.000 0.435 1.027 0.196 Active -FOPR 2011-08-13 00:00:00.000 1.436 0.144 4.472 0.642 1.002 0.196 Active -FOPR 2011-08-23 00:00:00.000 1.421 0.142 4.472 0.636 0.975 0.197 Active -FOPR 2011-09-02 00:00:00.000 1.403 0.140 3.000 0.421 0.947 0.200 Active -FOPR 2011-09-12 00:00:00.000 1.379 0.138 4.472 0.617 0.928 0.200 Active -FOPR 2011-09-22 00:00:00.000 1.353 0.135 4.472 0.605 0.902 0.203 Active -FOPR 2011-10-02 00:00:00.000 1.324 0.132 4.472 0.592 0.878 0.206 Active -FOPR 2011-10-12 00:00:00.000 1.297 0.130 4.472 0.580 0.851 0.210 Active -FOPR 2011-10-22 00:00:00.000 1.270 0.127 3.000 0.381 0.824 0.213 Active -FOPR 2011-11-01 00:00:00.000 1.243 0.124 3.000 0.373 0.801 0.215 Active -FOPR 2011-11-11 00:00:00.000 1.216 0.122 3.000 0.365 0.781 0.216 Active -FOPR 2011-11-21 00:00:00.000 1.189 0.119 4.472 0.532 0.762 0.216 Active -FOPR 2011-12-01 00:00:00.000 1.161 0.116 4.472 0.519 0.744 0.215 Active -FOPR 2011-12-11 00:00:00.000 1.134 0.113 4.472 0.507 0.725 0.212 Active -FOPR 2011-12-21 00:00:00.000 1.112 0.111 4.472 0.497 0.704 0.206 Active -FOPR 2011-12-31 00:00:00.000 1.091 0.109 4.472 0.488 0.683 0.200 Active -FOPR 2012-01-10 00:00:00.000 1.072 0.107 4.472 0.479 0.661 0.194 Active -FOPR 2012-01-20 00:00:00.000 1.053 0.105 4.472 0.471 0.640 0.189 Active -FOPR 2012-01-30 00:00:00.000 1.033 0.103 4.472 0.462 0.619 0.185 Active -FOPR 2012-02-09 00:00:00.000 1.013 0.101 5.385 0.545 0.597 0.181 Active -FOPR 2012-02-19 00:00:00.000 0.995 0.100 5.385 0.539 0.576 0.176 Active -FOPR 2012-02-29 00:00:00.000 0.975 0.100 5.385 0.539 0.555 0.171 Active -FOPR 2012-03-10 00:00:00.000 0.956 0.100 5.385 0.539 0.533 0.171 Active -FOPR 2012-03-20 00:00:00.000 0.936 0.100 5.385 0.539 0.513 0.171 Active -FOPR 2012-03-30 00:00:00.000 0.916 0.100 5.385 0.539 0.494 0.170 Active -FOPR 2012-04-09 00:00:00.000 0.893 0.100 5.385 0.539 0.477 0.169 Active -FOPR 2012-04-19 00:00:00.000 0.869 0.100 5.385 0.539 0.462 0.169 Active -FOPR 2012-04-29 00:00:00.000 0.842 0.100 5.385 0.539 0.447 0.170 Active -FOPR 2012-05-09 00:00:00.000 0.812 0.100 5.385 0.539 0.432 0.170 Active -FOPR 2012-05-19 00:00:00.000 0.779 0.100 5.385 0.539 0.417 0.171 Active -FOPR 2012-05-29 00:00:00.000 0.742 0.100 5.385 0.539 0.403 0.170 Active -FOPR 2012-06-08 00:00:00.000 0.702 0.100 5.385 0.539 0.389 0.171 Active -FOPR 2012-06-18 00:00:00.000 0.661 0.100 5.385 0.539 0.379 0.171 Active -FOPR 2012-06-28 00:00:00.000 0.619 0.100 5.385 0.539 0.370 0.171 Active -FOPR 2012-07-08 00:00:00.000 0.578 0.100 5.385 0.539 0.361 0.169 Active -FOPR 2012-07-18 00:00:00.000 0.540 0.100 5.385 0.539 0.354 0.168 Active -FOPR 2012-07-28 00:00:00.000 0.505 0.100 5.385 0.539 0.349 0.166 Active -FOPR 2012-08-07 00:00:00.000 0.475 0.100 5.385 0.539 0.344 0.165 Active -FOPR 2012-08-17 00:00:00.000 0.450 0.100 5.385 0.539 0.340 0.165 Active -FOPR 2012-08-27 00:00:00.000 0.431 0.100 5.385 0.539 0.344 0.168 Active -FOPR 2012-09-06 00:00:00.000 0.419 0.100 5.385 0.539 0.350 0.171 Active -FOPR 2012-09-16 00:00:00.000 0.410 0.100 5.385 0.539 0.349 0.171 Active -FOPR 2012-09-26 00:00:00.000 0.406 0.100 5.385 0.539 0.350 0.173 Active -FOPR 2012-10-06 00:00:00.000 0.404 0.100 5.385 0.539 0.347 0.171 Active -FOPR 2012-10-16 00:00:00.000 0.399 0.100 5.385 0.539 0.344 0.168 Active -FOPR 2012-10-26 00:00:00.000 0.389 0.100 5.385 0.539 0.346 0.165 Active -FOPR 2012-11-05 00:00:00.000 0.374 0.100 5.385 0.539 0.348 0.162 Active -FOPR 2012-11-15 00:00:00.000 0.355 0.100 5.385 0.539 0.350 0.156 Active -FOPR 2012-11-25 00:00:00.000 0.332 0.100 1.732 0.173 0.350 0.148 Active -FOPR 2012-12-05 00:00:00.000 0.306 0.100 1.732 0.173 0.349 0.140 Active -FOPR 2012-12-15 00:00:00.000 0.282 0.100 1.732 0.173 0.348 0.133 Active -FOPR 2012-12-25 00:00:00.000 0.264 0.100 4.583 0.458 0.344 0.125 Active -FOPR 2013-01-04 00:00:00.000 0.248 0.100 4.583 0.458 0.340 0.118 Active -FOPR 2013-01-14 00:00:00.000 0.233 0.100 4.583 0.458 0.337 0.114 Active -FOPR 2013-01-24 00:00:00.000 0.219 0.100 4.583 0.458 0.335 0.112 Active -FOPR 2013-02-03 00:00:00.000 0.205 0.100 4.583 0.458 0.334 0.110 Active -FOPR 2013-02-13 00:00:00.000 0.192 0.100 4.583 0.458 0.333 0.110 Active -FOPR 2013-02-23 00:00:00.000 0.180 0.100 4.583 0.458 0.332 0.109 Active -FOPR 2013-03-05 00:00:00.000 0.169 0.100 4.583 0.458 0.330 0.107 Active -FOPR 2013-03-15 00:00:00.000 0.160 0.100 4.583 0.458 0.327 0.106 Active -FOPR 2013-03-25 00:00:00.000 0.152 0.100 4.583 0.458 0.323 0.105 Active -FOPR 2013-04-04 00:00:00.000 0.146 0.100 4.583 0.458 0.317 0.102 Active -FOPR 2013-04-14 00:00:00.000 0.141 0.100 4.583 0.458 0.310 0.100 Active -FOPR 2013-04-24 00:00:00.000 0.137 0.100 4.583 0.458 0.303 0.098 Active -FOPR 2013-05-04 00:00:00.000 0.134 0.100 4.583 0.458 0.296 0.096 Active -FOPR 2013-05-14 00:00:00.000 0.130 0.100 4.583 0.458 0.290 0.094 Active -FOPR 2013-05-24 00:00:00.000 0.127 0.100 4.583 0.458 0.284 0.092 Active -FOPR 2013-06-03 00:00:00.000 0.123 0.100 4.583 0.458 0.279 0.090 Active -FOPR 2013-06-13 00:00:00.000 0.119 0.100 4.583 0.458 0.275 0.088 Active -FOPR 2013-06-23 00:00:00.000 0.120 0.100 4.583 0.458 0.270 0.085 Active -FOPR 2013-07-03 00:00:00.000 0.128 0.100 4.583 0.458 0.266 0.081 Active -FOPR 2013-07-13 00:00:00.000 0.136 0.100 4.583 0.458 0.263 0.077 Active -FOPR 2013-07-23 00:00:00.000 0.143 0.100 1.000 0.100 0.261 0.073 Active -FOPR 2013-08-02 00:00:00.000 0.150 0.100 2.000 0.200 0.258 0.069 Active -FOPR 2013-08-12 00:00:00.000 0.155 0.100 2.000 0.200 0.256 0.066 Active -FOPR 2013-08-22 00:00:00.000 0.159 0.100 2.000 0.200 0.254 0.063 Active -FOPR 2013-09-01 00:00:00.000 0.163 0.100 2.000 0.200 0.251 0.061 Active -FOPR 2013-09-11 00:00:00.000 0.166 0.100 3.464 0.346 0.248 0.059 Active -FOPR 2013-09-21 00:00:00.000 0.167 0.100 3.464 0.346 0.247 0.058 Active -FOPR 2013-10-01 00:00:00.000 0.167 0.100 3.464 0.346 0.245 0.058 Active -FOPR 2013-10-11 00:00:00.000 0.166 0.100 3.464 0.346 0.243 0.058 Active -FOPR 2013-10-21 00:00:00.000 0.165 0.100 3.464 0.346 0.243 0.058 Active -FOPR 2013-10-31 00:00:00.000 0.164 0.100 3.464 0.346 0.242 0.059 Active -FOPR 2013-11-10 00:00:00.000 0.165 0.100 3.464 0.346 0.243 0.059 Active -FOPR 2013-11-20 00:00:00.000 0.169 0.100 3.464 0.346 0.243 0.059 Active -FOPR 2013-11-30 00:00:00.000 0.176 0.100 3.464 0.346 0.242 0.058 Active -FOPR 2013-12-10 00:00:00.000 0.186 0.100 3.464 0.346 0.242 0.057 Active -FOPR 2013-12-20 00:00:00.000 0.197 0.100 3.464 0.346 0.241 0.057 Active -FOPR 2013-12-30 00:00:00.000 0.211 0.100 3.464 0.346 0.239 0.058 Active -FOPR 2014-01-09 00:00:00.000 0.225 0.100 1.000 0.100 0.238 0.059 Active -FOPR 2014-01-19 00:00:00.000 0.239 0.100 1.414 0.141 0.238 0.061 Active -FOPR 2014-01-29 00:00:00.000 0.252 0.100 1.414 0.141 0.238 0.061 Active -FOPR 2014-02-08 00:00:00.000 0.264 0.100 2.236 0.224 0.237 0.061 Active -FOPR 2014-02-18 00:00:00.000 0.275 0.100 2.236 0.224 0.236 0.062 Active -FOPR 2014-02-28 00:00:00.000 0.285 0.100 2.236 0.224 0.236 0.064 Active -FOPR 2014-03-10 00:00:00.000 0.295 0.100 2.236 0.224 0.236 0.066 Active -FOPR 2014-03-20 00:00:00.000 0.303 0.100 2.236 0.224 0.235 0.069 Active -FOPR 2014-03-30 00:00:00.000 0.309 0.100 2.449 0.245 0.234 0.072 Active -FOPR 2014-04-09 00:00:00.000 0.312 0.100 2.449 0.245 0.231 0.074 Active -FOPR 2014-04-19 00:00:00.000 0.313 0.100 2.449 0.245 0.229 0.076 Active -FOPR 2014-04-29 00:00:00.000 0.310 0.100 2.449 0.245 0.225 0.077 Active -FOPR 2014-05-09 00:00:00.000 0.304 0.100 2.449 0.245 0.220 0.078 Active -FOPR 2014-05-19 00:00:00.000 0.296 0.100 2.449 0.245 0.215 0.078 Active -FOPR 2014-05-29 00:00:00.000 0.286 0.100 5.657 0.566 0.209 0.078 Active -FOPR 2014-06-08 00:00:00.000 0.275 0.100 5.657 0.566 0.202 0.078 Active -FOPR 2014-06-18 00:00:00.000 0.264 0.100 5.657 0.566 0.195 0.079 Active -FOPR 2014-06-28 00:00:00.000 0.253 0.100 5.657 0.566 0.188 0.079 Active -FOPR 2014-07-08 00:00:00.000 0.241 0.100 5.657 0.566 0.181 0.080 Active -FOPR 2014-07-18 00:00:00.000 0.230 0.100 5.657 0.566 0.173 0.082 Active -FOPR 2014-07-28 00:00:00.000 0.218 0.100 5.657 0.566 0.167 0.084 Active -FOPR 2014-08-07 00:00:00.000 0.207 0.100 5.657 0.566 0.161 0.086 Active -FOPR 2014-08-17 00:00:00.000 0.197 0.100 5.657 0.566 0.155 0.088 Active -FOPR 2014-08-27 00:00:00.000 0.187 0.100 5.657 0.566 0.149 0.090 Active -FOPR 2014-09-06 00:00:00.000 0.178 0.100 5.657 0.566 0.143 0.092 Active -FOPR 2014-09-16 00:00:00.000 0.168 0.100 5.385 0.539 0.138 0.094 Active -FOPR 2014-09-26 00:00:00.000 0.159 0.100 5.385 0.539 0.132 0.095 Active -FOPR 2014-10-06 00:00:00.000 0.150 0.100 5.385 0.539 0.128 0.096 Active -FOPR 2014-10-16 00:00:00.000 0.141 0.100 5.385 0.539 0.124 0.096 Active -FOPR 2014-10-26 00:00:00.000 0.134 0.100 5.385 0.539 0.120 0.096 Active -FOPR 2014-11-05 00:00:00.000 0.127 0.100 5.385 0.539 0.116 0.097 Active -FOPR 2014-11-15 00:00:00.000 0.120 0.100 5.385 0.539 0.113 0.097 Active -FOPR 2014-11-25 00:00:00.000 0.115 0.100 5.385 0.539 0.110 0.096 Active -FOPR 2014-12-05 00:00:00.000 0.111 0.100 5.385 0.539 0.107 0.096 Active -FOPR 2014-12-15 00:00:00.000 0.107 0.100 5.385 0.539 0.105 0.095 Active -FOPR 2014-12-25 00:00:00.000 0.101 0.100 5.385 0.539 0.102 0.095 Active -FOPR 2015-01-04 00:00:00.000 0.096 0.100 5.385 0.539 0.100 0.095 Active -FOPR 2015-01-14 00:00:00.000 0.089 0.100 5.385 0.539 0.097 0.096 Active -FOPR 2015-01-24 00:00:00.000 0.081 0.100 5.385 0.539 0.094 0.096 Active -FOPR 2015-02-03 00:00:00.000 0.073 0.100 5.385 0.539 0.092 0.098 Active -FOPR 2015-02-13 00:00:00.000 0.065 0.100 5.385 0.539 0.090 0.099 Active -FOPR 2015-02-23 00:00:00.000 0.058 0.100 5.385 0.539 0.088 0.101 Active -FOPR 2015-03-05 00:00:00.000 0.050 0.100 5.385 0.539 0.087 0.103 Active -FOPR 2015-03-15 00:00:00.000 0.044 0.100 5.385 0.539 0.086 0.104 Active -FOPR 2015-03-25 00:00:00.000 0.038 0.100 5.385 0.539 0.085 0.106 Active -FOPR 2015-04-04 00:00:00.000 0.033 0.100 5.385 0.539 0.084 0.107 Active -FOPR 2015-04-14 00:00:00.000 0.029 0.100 5.385 0.539 0.084 0.108 Active -FOPR 2015-04-24 00:00:00.000 0.026 0.100 5.657 0.566 0.084 0.108 Active -FOPR 2015-05-04 00:00:00.000 0.024 0.100 5.657 0.566 0.084 0.109 Active -FOPR 2015-05-14 00:00:00.000 0.022 0.100 5.657 0.566 0.084 0.109 Active -FOPR 2015-05-24 00:00:00.000 0.021 0.100 5.657 0.566 0.084 0.109 Active -FOPR 2015-06-03 00:00:00.000 0.020 0.100 5.657 0.566 0.084 0.110 Active -FOPR 2015-06-13 00:00:00.000 0.020 0.100 5.657 0.566 0.084 0.110 Active -FOPR 2015-06-23 00:00:00.000 0.020 0.100 5.657 0.566 0.084 0.110 Active -WOPR_OP1_108 2012-12-15 00:00:00.000 0.300 0.075 1.000 0.075 0.257 0.099 Active -WOPR_OP1_144 2013-12-10 00:00:00.000 0.200 0.035 1.414 0.049 0.183 0.106 Active -WOPR_OP1_190 2015-03-15 00:00:00.000 0.015 0.010 1.414 0.014 0.042 0.041 Active -WOPR_OP1_36 2010-12-26 00:00:00.000 0.700 0.070 1.000 0.070 0.650 0.084 Active -WOPR_OP1_72 2011-12-21 00:00:00.000 0.500 0.050 1.000 0.050 0.405 0.170 Active -WOPR_OP1_9 2010-03-31 00:00:00.000 0.100 0.050 1.000 0.050 0.096 0.060 Active -WPR_DIFF_1 199, 1200 0.200 0.150 1.000 0.150 0.073 0.130 Active -WPR_DIFF_1 199, 1800 0.000 0.050 1.000 0.050 0.127 0.125 Active -WPR_DIFF_1 199, 400 0.000 0.100 1.000 0.100 -0.011 0.060 Active -WPR_DIFF_1 199, 800 0.100 0.200 1.000 0.200 0.081 0.126 Active ------------- ----------------------- ----- ----- ----- ----- ------ ----- ------ +------------ ----------------------- ----- ----- ------ ----- ------ ----- ------ +FOPR 2010-01-10 00:00:00.000 0.002 0.100 14.142 1.414 0.076 0.105 Active +FOPR 2010-01-20 00:00:00.000 0.008 0.100 14.142 1.414 0.079 0.107 Active +FOPR 2010-01-30 00:00:00.000 0.018 0.100 14.142 1.414 0.085 0.110 Active +FOPR 2010-02-09 00:00:00.000 0.032 0.100 14.142 1.414 0.092 0.114 Active +FOPR 2010-02-19 00:00:00.000 0.050 0.100 14.142 1.414 0.103 0.118 Active +FOPR 2010-03-01 00:00:00.000 0.071 0.100 14.142 1.414 0.117 0.122 Active +FOPR 2010-03-11 00:00:00.000 0.097 0.100 14.142 1.414 0.133 0.128 Active +FOPR 2010-03-21 00:00:00.000 0.126 0.100 14.142 1.414 0.151 0.134 Active +FOPR 2010-03-31 00:00:00.000 0.159 0.100 14.142 1.414 0.171 0.140 Active +FOPR 2010-04-10 00:00:00.000 0.194 0.100 14.142 1.414 0.193 0.148 Active +FOPR 2010-04-20 00:00:00.000 0.233 0.100 14.142 1.414 0.221 0.154 Active +FOPR 2010-04-30 00:00:00.000 0.274 0.100 14.142 1.414 0.251 0.161 Active +FOPR 2010-05-10 00:00:00.000 0.318 0.100 14.142 1.414 0.293 0.164 Active +FOPR 2010-05-20 00:00:00.000 0.363 0.100 14.142 1.414 0.340 0.163 Active +FOPR 2010-05-30 00:00:00.000 0.411 0.100 14.142 1.414 0.389 0.163 Active +FOPR 2010-06-09 00:00:00.000 0.460 0.100 14.142 1.414 0.439 0.163 Active +FOPR 2010-06-19 00:00:00.000 0.510 0.100 14.142 1.414 0.491 0.164 Active +FOPR 2010-06-29 00:00:00.000 0.561 0.100 14.142 1.414 0.544 0.164 Active +FOPR 2010-07-09 00:00:00.000 0.613 0.100 14.142 1.414 0.598 0.164 Active +FOPR 2010-07-19 00:00:00.000 0.666 0.100 14.142 1.414 0.652 0.163 Active +FOPR 2010-07-29 00:00:00.000 0.718 0.100 14.142 1.414 0.706 0.164 Active +FOPR 2010-08-08 00:00:00.000 0.770 0.100 14.142 1.414 0.760 0.164 Active +FOPR 2010-08-18 00:00:00.000 0.823 0.100 14.142 1.414 0.813 0.164 Active +FOPR 2010-08-28 00:00:00.000 0.875 0.100 14.142 1.414 0.864 0.164 Active +FOPR 2010-09-07 00:00:00.000 0.926 0.100 14.142 1.414 0.914 0.165 Active +FOPR 2010-09-17 00:00:00.000 0.977 0.100 14.142 1.414 0.963 0.165 Active +FOPR 2010-09-27 00:00:00.000 1.027 0.103 14.142 1.452 1.008 0.167 Active +FOPR 2010-10-07 00:00:00.000 1.075 0.108 14.142 1.520 1.049 0.169 Active +FOPR 2010-10-17 00:00:00.000 1.122 0.112 14.142 1.586 1.089 0.171 Active +FOPR 2010-10-27 00:00:00.000 1.166 0.117 14.142 1.649 1.126 0.172 Active +FOPR 2010-11-06 00:00:00.000 1.208 0.121 14.142 1.708 1.160 0.174 Active +FOPR 2010-11-16 00:00:00.000 1.247 0.125 14.142 1.764 1.192 0.175 Active +FOPR 2010-11-26 00:00:00.000 1.284 0.128 14.142 1.815 1.219 0.175 Active +FOPR 2010-12-06 00:00:00.000 1.317 0.132 14.142 1.862 1.243 0.175 Active +FOPR 2010-12-16 00:00:00.000 1.346 0.135 14.142 1.904 1.263 0.176 Active +FOPR 2010-12-26 00:00:00.000 1.371 0.137 14.142 1.939 1.279 0.176 Active +FOPR 2011-01-05 00:00:00.000 1.392 0.139 14.142 1.968 1.292 0.177 Active +FOPR 2011-01-15 00:00:00.000 1.407 0.141 14.142 1.990 1.300 0.179 Active +FOPR 2011-01-25 00:00:00.000 1.418 0.142 14.142 2.005 1.303 0.181 Active +FOPR 2011-02-04 00:00:00.000 1.422 0.142 14.142 2.011 1.303 0.183 Active +FOPR 2011-02-14 00:00:00.000 1.424 0.142 14.142 2.013 1.299 0.185 Active +FOPR 2011-02-24 00:00:00.000 1.425 0.143 14.142 2.016 1.294 0.187 Active +FOPR 2011-03-06 00:00:00.000 1.427 0.143 14.142 2.018 1.290 0.188 Active +FOPR 2011-03-16 00:00:00.000 1.430 0.143 14.142 2.022 1.283 0.189 Active +FOPR 2011-03-26 00:00:00.000 1.433 0.143 14.142 2.027 1.275 0.187 Active +FOPR 2011-04-05 00:00:00.000 1.438 0.144 14.142 2.033 1.263 0.186 Active +FOPR 2011-04-15 00:00:00.000 1.443 0.144 14.142 2.041 1.250 0.186 Active +FOPR 2011-04-25 00:00:00.000 1.449 0.145 14.142 2.049 1.237 0.186 Active +FOPR 2011-05-05 00:00:00.000 1.455 0.145 14.142 2.057 1.222 0.185 Active +FOPR 2011-05-15 00:00:00.000 1.460 0.146 14.142 2.065 1.207 0.184 Active +FOPR 2011-05-25 00:00:00.000 1.466 0.147 14.142 2.073 1.190 0.184 Active +FOPR 2011-06-04 00:00:00.000 1.470 0.147 14.142 2.079 1.170 0.183 Active +FOPR 2011-06-14 00:00:00.000 1.474 0.147 14.142 2.085 1.146 0.183 Active +FOPR 2011-06-24 00:00:00.000 1.475 0.148 14.142 2.086 1.122 0.184 Active +FOPR 2011-07-04 00:00:00.000 1.474 0.147 14.142 2.084 1.098 0.188 Active +FOPR 2011-07-14 00:00:00.000 1.469 0.147 14.142 2.078 1.077 0.192 Active +FOPR 2011-07-24 00:00:00.000 1.461 0.146 14.142 2.066 1.053 0.194 Active +FOPR 2011-08-03 00:00:00.000 1.449 0.145 14.142 2.050 1.027 0.196 Active +FOPR 2011-08-13 00:00:00.000 1.436 0.144 14.142 2.031 1.002 0.196 Active +FOPR 2011-08-23 00:00:00.000 1.421 0.142 14.142 2.010 0.975 0.197 Active +FOPR 2011-09-02 00:00:00.000 1.403 0.140 14.142 1.984 0.947 0.200 Active +FOPR 2011-09-12 00:00:00.000 1.379 0.138 14.142 1.951 0.928 0.200 Active +FOPR 2011-09-22 00:00:00.000 1.353 0.135 14.142 1.913 0.902 0.203 Active +FOPR 2011-10-02 00:00:00.000 1.324 0.132 14.142 1.873 0.878 0.206 Active +FOPR 2011-10-12 00:00:00.000 1.297 0.130 14.142 1.834 0.851 0.210 Active +FOPR 2011-10-22 00:00:00.000 1.270 0.127 14.142 1.797 0.824 0.213 Active +FOPR 2011-11-01 00:00:00.000 1.243 0.124 14.142 1.758 0.801 0.215 Active +FOPR 2011-11-11 00:00:00.000 1.216 0.122 14.142 1.720 0.781 0.216 Active +FOPR 2011-11-21 00:00:00.000 1.189 0.119 14.142 1.682 0.762 0.216 Active +FOPR 2011-12-01 00:00:00.000 1.161 0.116 14.142 1.643 0.744 0.215 Active +FOPR 2011-12-11 00:00:00.000 1.134 0.113 14.142 1.604 0.725 0.212 Active +FOPR 2011-12-21 00:00:00.000 1.112 0.111 14.142 1.572 0.704 0.206 Active +FOPR 2011-12-31 00:00:00.000 1.091 0.109 14.142 1.543 0.683 0.200 Active +FOPR 2012-01-10 00:00:00.000 1.072 0.107 14.142 1.516 0.661 0.194 Active +FOPR 2012-01-20 00:00:00.000 1.053 0.105 14.142 1.489 0.640 0.189 Active +FOPR 2012-01-30 00:00:00.000 1.033 0.103 14.142 1.460 0.619 0.185 Active +FOPR 2012-02-09 00:00:00.000 1.013 0.101 14.142 1.432 0.597 0.181 Active +FOPR 2012-02-19 00:00:00.000 0.995 0.100 14.142 1.414 0.576 0.176 Active +FOPR 2012-02-29 00:00:00.000 0.975 0.100 14.142 1.414 0.555 0.171 Active +FOPR 2012-03-10 00:00:00.000 0.956 0.100 14.142 1.414 0.533 0.171 Active +FOPR 2012-03-20 00:00:00.000 0.936 0.100 14.142 1.414 0.513 0.171 Active +FOPR 2012-03-30 00:00:00.000 0.916 0.100 14.142 1.414 0.494 0.170 Active +FOPR 2012-04-09 00:00:00.000 0.893 0.100 14.142 1.414 0.477 0.169 Active +FOPR 2012-04-19 00:00:00.000 0.869 0.100 14.142 1.414 0.462 0.169 Active +FOPR 2012-04-29 00:00:00.000 0.842 0.100 14.142 1.414 0.447 0.170 Active +FOPR 2012-05-09 00:00:00.000 0.812 0.100 14.142 1.414 0.432 0.170 Active +FOPR 2012-05-19 00:00:00.000 0.779 0.100 14.142 1.414 0.417 0.171 Active +FOPR 2012-05-29 00:00:00.000 0.742 0.100 14.142 1.414 0.403 0.170 Active +FOPR 2012-06-08 00:00:00.000 0.702 0.100 14.142 1.414 0.389 0.171 Active +FOPR 2012-06-18 00:00:00.000 0.661 0.100 14.142 1.414 0.379 0.171 Active +FOPR 2012-06-28 00:00:00.000 0.619 0.100 14.142 1.414 0.370 0.171 Active +FOPR 2012-07-08 00:00:00.000 0.578 0.100 14.142 1.414 0.361 0.169 Active +FOPR 2012-07-18 00:00:00.000 0.540 0.100 14.142 1.414 0.354 0.168 Active +FOPR 2012-07-28 00:00:00.000 0.505 0.100 14.142 1.414 0.349 0.166 Active +FOPR 2012-08-07 00:00:00.000 0.475 0.100 14.142 1.414 0.344 0.165 Active +FOPR 2012-08-17 00:00:00.000 0.450 0.100 14.142 1.414 0.340 0.165 Active +FOPR 2012-08-27 00:00:00.000 0.431 0.100 14.142 1.414 0.344 0.168 Active +FOPR 2012-09-06 00:00:00.000 0.419 0.100 14.142 1.414 0.350 0.171 Active +FOPR 2012-09-16 00:00:00.000 0.410 0.100 14.142 1.414 0.349 0.171 Active +FOPR 2012-09-26 00:00:00.000 0.406 0.100 14.142 1.414 0.350 0.173 Active +FOPR 2012-10-06 00:00:00.000 0.404 0.100 14.142 1.414 0.347 0.171 Active +FOPR 2012-10-16 00:00:00.000 0.399 0.100 14.142 1.414 0.344 0.168 Active +FOPR 2012-10-26 00:00:00.000 0.389 0.100 14.142 1.414 0.346 0.165 Active +FOPR 2012-11-05 00:00:00.000 0.374 0.100 14.142 1.414 0.348 0.162 Active +FOPR 2012-11-15 00:00:00.000 0.355 0.100 14.142 1.414 0.350 0.156 Active +FOPR 2012-11-25 00:00:00.000 0.332 0.100 14.142 1.414 0.350 0.148 Active +FOPR 2012-12-05 00:00:00.000 0.306 0.100 14.142 1.414 0.349 0.140 Active +FOPR 2012-12-15 00:00:00.000 0.282 0.100 14.142 1.414 0.348 0.133 Active +FOPR 2012-12-25 00:00:00.000 0.264 0.100 14.142 1.414 0.344 0.125 Active +FOPR 2013-01-04 00:00:00.000 0.248 0.100 14.142 1.414 0.340 0.118 Active +FOPR 2013-01-14 00:00:00.000 0.233 0.100 14.142 1.414 0.337 0.114 Active +FOPR 2013-01-24 00:00:00.000 0.219 0.100 14.142 1.414 0.335 0.112 Active +FOPR 2013-02-03 00:00:00.000 0.205 0.100 14.142 1.414 0.334 0.110 Active +FOPR 2013-02-13 00:00:00.000 0.192 0.100 14.142 1.414 0.333 0.110 Active +FOPR 2013-02-23 00:00:00.000 0.180 0.100 14.142 1.414 0.332 0.109 Active +FOPR 2013-03-05 00:00:00.000 0.169 0.100 14.142 1.414 0.330 0.107 Active +FOPR 2013-03-15 00:00:00.000 0.160 0.100 14.142 1.414 0.327 0.106 Active +FOPR 2013-03-25 00:00:00.000 0.152 0.100 14.142 1.414 0.323 0.105 Active +FOPR 2013-04-04 00:00:00.000 0.146 0.100 14.142 1.414 0.317 0.102 Active +FOPR 2013-04-14 00:00:00.000 0.141 0.100 14.142 1.414 0.310 0.100 Active +FOPR 2013-04-24 00:00:00.000 0.137 0.100 14.142 1.414 0.303 0.098 Active +FOPR 2013-05-04 00:00:00.000 0.134 0.100 14.142 1.414 0.296 0.096 Active +FOPR 2013-05-14 00:00:00.000 0.130 0.100 14.142 1.414 0.290 0.094 Active +FOPR 2013-05-24 00:00:00.000 0.127 0.100 14.142 1.414 0.284 0.092 Active +FOPR 2013-06-03 00:00:00.000 0.123 0.100 14.142 1.414 0.279 0.090 Active +FOPR 2013-06-13 00:00:00.000 0.119 0.100 14.142 1.414 0.275 0.088 Active +FOPR 2013-06-23 00:00:00.000 0.120 0.100 14.142 1.414 0.270 0.085 Active +FOPR 2013-07-03 00:00:00.000 0.128 0.100 14.142 1.414 0.266 0.081 Active +FOPR 2013-07-13 00:00:00.000 0.136 0.100 14.142 1.414 0.263 0.077 Active +FOPR 2013-07-23 00:00:00.000 0.143 0.100 14.142 1.414 0.261 0.073 Active +FOPR 2013-08-02 00:00:00.000 0.150 0.100 14.142 1.414 0.258 0.069 Active +FOPR 2013-08-12 00:00:00.000 0.155 0.100 14.142 1.414 0.256 0.066 Active +FOPR 2013-08-22 00:00:00.000 0.159 0.100 14.142 1.414 0.254 0.063 Active +FOPR 2013-09-01 00:00:00.000 0.163 0.100 14.142 1.414 0.251 0.061 Active +FOPR 2013-09-11 00:00:00.000 0.166 0.100 14.142 1.414 0.248 0.059 Active +FOPR 2013-09-21 00:00:00.000 0.167 0.100 14.142 1.414 0.247 0.058 Active +FOPR 2013-10-01 00:00:00.000 0.167 0.100 14.142 1.414 0.245 0.058 Active +FOPR 2013-10-11 00:00:00.000 0.166 0.100 14.142 1.414 0.243 0.058 Active +FOPR 2013-10-21 00:00:00.000 0.165 0.100 14.142 1.414 0.243 0.058 Active +FOPR 2013-10-31 00:00:00.000 0.164 0.100 14.142 1.414 0.242 0.059 Active +FOPR 2013-11-10 00:00:00.000 0.165 0.100 14.142 1.414 0.243 0.059 Active +FOPR 2013-11-20 00:00:00.000 0.169 0.100 14.142 1.414 0.243 0.059 Active +FOPR 2013-11-30 00:00:00.000 0.176 0.100 14.142 1.414 0.242 0.058 Active +FOPR 2013-12-10 00:00:00.000 0.186 0.100 14.142 1.414 0.242 0.057 Active +FOPR 2013-12-20 00:00:00.000 0.197 0.100 14.142 1.414 0.241 0.057 Active +FOPR 2013-12-30 00:00:00.000 0.211 0.100 14.142 1.414 0.239 0.058 Active +FOPR 2014-01-09 00:00:00.000 0.225 0.100 14.142 1.414 0.238 0.059 Active +FOPR 2014-01-19 00:00:00.000 0.239 0.100 14.142 1.414 0.238 0.061 Active +FOPR 2014-01-29 00:00:00.000 0.252 0.100 14.142 1.414 0.238 0.061 Active +FOPR 2014-02-08 00:00:00.000 0.264 0.100 14.142 1.414 0.237 0.061 Active +FOPR 2014-02-18 00:00:00.000 0.275 0.100 14.142 1.414 0.236 0.062 Active +FOPR 2014-02-28 00:00:00.000 0.285 0.100 14.142 1.414 0.236 0.064 Active +FOPR 2014-03-10 00:00:00.000 0.295 0.100 14.142 1.414 0.236 0.066 Active +FOPR 2014-03-20 00:00:00.000 0.303 0.100 14.142 1.414 0.235 0.069 Active +FOPR 2014-03-30 00:00:00.000 0.309 0.100 14.142 1.414 0.234 0.072 Active +FOPR 2014-04-09 00:00:00.000 0.312 0.100 14.142 1.414 0.231 0.074 Active +FOPR 2014-04-19 00:00:00.000 0.313 0.100 14.142 1.414 0.229 0.076 Active +FOPR 2014-04-29 00:00:00.000 0.310 0.100 14.142 1.414 0.225 0.077 Active +FOPR 2014-05-09 00:00:00.000 0.304 0.100 14.142 1.414 0.220 0.078 Active +FOPR 2014-05-19 00:00:00.000 0.296 0.100 14.142 1.414 0.215 0.078 Active +FOPR 2014-05-29 00:00:00.000 0.286 0.100 14.142 1.414 0.209 0.078 Active +FOPR 2014-06-08 00:00:00.000 0.275 0.100 14.142 1.414 0.202 0.078 Active +FOPR 2014-06-18 00:00:00.000 0.264 0.100 14.142 1.414 0.195 0.079 Active +FOPR 2014-06-28 00:00:00.000 0.253 0.100 14.142 1.414 0.188 0.079 Active +FOPR 2014-07-08 00:00:00.000 0.241 0.100 14.142 1.414 0.181 0.080 Active +FOPR 2014-07-18 00:00:00.000 0.230 0.100 14.142 1.414 0.173 0.082 Active +FOPR 2014-07-28 00:00:00.000 0.218 0.100 14.142 1.414 0.167 0.084 Active +FOPR 2014-08-07 00:00:00.000 0.207 0.100 14.142 1.414 0.161 0.086 Active +FOPR 2014-08-17 00:00:00.000 0.197 0.100 14.142 1.414 0.155 0.088 Active +FOPR 2014-08-27 00:00:00.000 0.187 0.100 14.142 1.414 0.149 0.090 Active +FOPR 2014-09-06 00:00:00.000 0.178 0.100 14.142 1.414 0.143 0.092 Active +FOPR 2014-09-16 00:00:00.000 0.168 0.100 14.142 1.414 0.138 0.094 Active +FOPR 2014-09-26 00:00:00.000 0.159 0.100 14.142 1.414 0.132 0.095 Active +FOPR 2014-10-06 00:00:00.000 0.150 0.100 14.142 1.414 0.128 0.096 Active +FOPR 2014-10-16 00:00:00.000 0.141 0.100 14.142 1.414 0.124 0.096 Active +FOPR 2014-10-26 00:00:00.000 0.134 0.100 14.142 1.414 0.120 0.096 Active +FOPR 2014-11-05 00:00:00.000 0.127 0.100 14.142 1.414 0.116 0.097 Active +FOPR 2014-11-15 00:00:00.000 0.120 0.100 14.142 1.414 0.113 0.097 Active +FOPR 2014-11-25 00:00:00.000 0.115 0.100 14.142 1.414 0.110 0.096 Active +FOPR 2014-12-05 00:00:00.000 0.111 0.100 14.142 1.414 0.107 0.096 Active +FOPR 2014-12-15 00:00:00.000 0.107 0.100 14.142 1.414 0.105 0.095 Active +FOPR 2014-12-25 00:00:00.000 0.101 0.100 14.142 1.414 0.102 0.095 Active +FOPR 2015-01-04 00:00:00.000 0.096 0.100 14.142 1.414 0.100 0.095 Active +FOPR 2015-01-14 00:00:00.000 0.089 0.100 14.142 1.414 0.097 0.096 Active +FOPR 2015-01-24 00:00:00.000 0.081 0.100 14.142 1.414 0.094 0.096 Active +FOPR 2015-02-03 00:00:00.000 0.073 0.100 14.142 1.414 0.092 0.098 Active +FOPR 2015-02-13 00:00:00.000 0.065 0.100 14.142 1.414 0.090 0.099 Active +FOPR 2015-02-23 00:00:00.000 0.058 0.100 14.142 1.414 0.088 0.101 Active +FOPR 2015-03-05 00:00:00.000 0.050 0.100 14.142 1.414 0.087 0.103 Active +FOPR 2015-03-15 00:00:00.000 0.044 0.100 14.142 1.414 0.086 0.104 Active +FOPR 2015-03-25 00:00:00.000 0.038 0.100 14.142 1.414 0.085 0.106 Active +FOPR 2015-04-04 00:00:00.000 0.033 0.100 14.142 1.414 0.084 0.107 Active +FOPR 2015-04-14 00:00:00.000 0.029 0.100 14.142 1.414 0.084 0.108 Active +FOPR 2015-04-24 00:00:00.000 0.026 0.100 14.142 1.414 0.084 0.108 Active +FOPR 2015-05-04 00:00:00.000 0.024 0.100 14.142 1.414 0.084 0.109 Active +FOPR 2015-05-14 00:00:00.000 0.022 0.100 14.142 1.414 0.084 0.109 Active +FOPR 2015-05-24 00:00:00.000 0.021 0.100 14.142 1.414 0.084 0.109 Active +FOPR 2015-06-03 00:00:00.000 0.020 0.100 14.142 1.414 0.084 0.110 Active +FOPR 2015-06-13 00:00:00.000 0.020 0.100 14.142 1.414 0.084 0.110 Active +FOPR 2015-06-23 00:00:00.000 0.020 0.100 14.142 1.414 0.084 0.110 Active +WOPR_OP1_108 2012-12-15 00:00:00.000 0.300 0.075 1.732 0.130 0.257 0.099 Active +WOPR_OP1_144 2013-12-10 00:00:00.000 0.200 0.035 1.732 0.061 0.183 0.106 Active +WOPR_OP1_190 2015-03-15 00:00:00.000 0.015 0.010 1.732 0.017 0.042 0.041 Active +WOPR_OP1_36 2010-12-26 00:00:00.000 0.700 0.070 1.000 0.070 0.650 0.084 Active +WOPR_OP1_72 2011-12-21 00:00:00.000 0.500 0.050 1.000 0.050 0.405 0.170 Active +WOPR_OP1_9 2010-03-31 00:00:00.000 0.100 0.050 1.000 0.050 0.096 0.060 Active +WPR_DIFF_1 199, 1200 0.200 0.150 1.000 0.150 0.073 0.130 Active +WPR_DIFF_1 199, 1800 0.000 0.050 1.000 0.050 0.127 0.125 Active +WPR_DIFF_1 199, 400 0.000 0.100 1.000 0.100 -0.011 0.060 Active +WPR_DIFF_1 199, 800 0.100 0.200 1.000 0.200 0.081 0.126 Active +------------ ----------------------- ----- ----- ------ ----- ------ ----- ------ diff --git a/tests/ert/unit_tests/config/test_ert_config.py b/tests/ert/unit_tests/config/test_ert_config.py index 1ddaffba18f..05dac456989 100644 --- a/tests/ert/unit_tests/config/test_ert_config.py +++ b/tests/ert/unit_tests/config/test_ert_config.py @@ -939,6 +939,29 @@ def test_fm_step_config_via_plugin_is_overridden_by_setenv(monkeypatch): assert step_json["jobList"][0]["environment"]["STEP_LOCAL_VAR"] == "com_from_plugin" +@pytest.mark.usefixtures("use_tmpdir") +def test_setenv_will_be_substituted_in_jobs_json(monkeypatch): + Path("config.ert").write_text( + dedent( + """ + NUM_REALIZATIONS 1 + SETENV FOO + NUM_CPU 2 + """ + ), + encoding="utf-8", + ) + ert_config = ErtConfig.with_plugins().from_file("config.ert") + step_json = create_forward_model_json( + context=ert_config.substitutions, + forward_model_steps=ert_config.forward_model_steps, + env_vars=ert_config.env_vars, + env_pr_fm_step=ert_config.env_pr_fm_step, + run_id=None, + ) + assert step_json["global_environment"]["FOO"] == "2" + + @pytest.mark.usefixtures("use_tmpdir") def test_fm_step_config_via_plugin_does_not_override_default_env(monkeypatch): monkeypatch.setattr( diff --git a/tests/ert/unit_tests/config/test_forward_model.py b/tests/ert/unit_tests/config/test_forward_model.py index fe04b0ac5ab..362cfd3b7b1 100644 --- a/tests/ert/unit_tests/config/test_forward_model.py +++ b/tests/ert/unit_tests/config/test_forward_model.py @@ -305,6 +305,7 @@ def test_ert_config_throws_on_missing_forward_model_step( ) +@pytest.mark.integration_test def test_that_substitutions_can_be_done_in_job_names(): """ Regression test for a usage case involving setting ECL100 or ECL300 @@ -441,6 +442,7 @@ def test_that_installing_two_forward_model_steps_with_the_same_name_warn(): _ = ErtConfig.from_file(test_config_file_name) +@pytest.mark.integration_test @pytest.mark.usefixtures("use_tmpdir") def test_that_forward_model_substitution_does_not_warn_about_reaching_max_iterations( caplog, @@ -490,6 +492,7 @@ def test_that_installing_two_forward_model_steps_with_the_same_name_warn_with_di _ = ErtConfig.from_file(test_config_file_name) +@pytest.mark.integration_test def test_that_spaces_in_forward_model_args_are_dropped(): # Intentionally inserted several spaces before comma ert_config = ErtConfig.with_plugins().from_file_contents( @@ -543,6 +546,7 @@ def test_that_eclipse_fm_step_require_explicit_version(eclipse_v): ) +@pytest.mark.integration_test @pytest.mark.skipif(shutil.which("eclrun") is None, reason="eclrun is not in $PATH") @pytest.mark.parametrize("eclipse_v", ["ECLIPSE100", "ECLIPSE300"]) @pytest.mark.usefixtures("use_tmpdir") diff --git a/tests/ert/unit_tests/config/test_gen_kw_config.py b/tests/ert/unit_tests/config/test_gen_kw_config.py index 7fade0d7dbd..f13fec0c43b 100644 --- a/tests/ert/unit_tests/config/test_gen_kw_config.py +++ b/tests/ert/unit_tests/config/test_gen_kw_config.py @@ -57,41 +57,39 @@ def test_gen_kw_config_duplicate_keys_raises(): ) -@pytest.mark.usefixtures("use_tmpdir") -def test_gen_kw_config_get_priors(): - parameter_file = "parameters.txt" - template_file = "template.txt" - - with open(template_file, "w", encoding="utf-8") as f: - f.write("Hello") +def test_short_definition_raises_config_error(tmp_path): + parameter_file = tmp_path / "parameter.txt" + parameter_file.write_text("incorrect", encoding="utf-8") + + with pytest.raises(ConfigValidationError, match="Too few values"): + GenKwConfig.from_config_list( + [ + "GEN", + str(parameter_file), + "INIT_FILES:%dgen_init.txt", + ] + ) - with open(parameter_file, "w", encoding="utf-8") as f: - f.write("KEY1 NORMAL 0 1\n") - f.write("KEY2 LOGNORMAL 2 3\n") - f.write("KEY3 TRUNCATED_NORMAL 4 5 6 7\n") - f.write("KEY4 TRIANGULAR 0 1 2\n") - f.write("KEY5 UNIFORM 2 3\n") - f.write("KEY6 DUNIF 3 0 1\n") - f.write("KEY7 ERRF 0 1 2 3\n") - f.write("KEY8 DERRF 1 1 2 3 4\n") - f.write("KEY9 LOGUNIF 0 1\n") - f.write("KEY10 CONST 10\n") - - transform_function_definitions = [] - with open(parameter_file, encoding="utf-8") as file: - for item in file: - items = item.split() - transform_function_definitions.append( - TransformFunctionDefinition( - name=items[0], param_name=items[1], values=items[2:] - ) - ) +def test_gen_kw_config_get_priors(): conf = GenKwConfig( name="KW_NAME", forward_init=False, - template_file=template_file, - transform_function_definitions=transform_function_definitions, + template_file="template.txt", + transform_function_definitions=[ + TransformFunctionDefinition("KEY1", "NORMAL", ["0", "1"]), + TransformFunctionDefinition("KEY2", "LOGNORMAL", ["2", "3"]), + TransformFunctionDefinition( + "KEY3", "TRUNCATED_NORMAL", ["4", "5", "6", "7"] + ), + TransformFunctionDefinition("KEY4", "TRIANGULAR", ["0", "1", "2"]), + TransformFunctionDefinition("KEY5", "UNIFORM", ["2", "3"]), + TransformFunctionDefinition("KEY6", "DUNIF", ["3", "0", "1"]), + TransformFunctionDefinition("KEY7", "ERRF", ["0", "1", "2", "3"]), + TransformFunctionDefinition("KEY8", "DERRF", ["1", "1", "2", "3", "4"]), + TransformFunctionDefinition("KEY9", "LOGUNIF", ["0", "1"]), + TransformFunctionDefinition("KEY10", "CONST", ["10"]), + ], output_file="param.txt", update=True, ) diff --git a/tests/ert/unit_tests/dark_storage/test_dark_storage_state.py b/tests/ert/unit_tests/dark_storage/test_dark_storage_state.py index d93320e4982..6a218bd8bf9 100644 --- a/tests/ert/unit_tests/dark_storage/test_dark_storage_state.py +++ b/tests/ert/unit_tests/dark_storage/test_dark_storage_state.py @@ -111,4 +111,6 @@ def teardown(self): del os.environ["ERT_STORAGE_ENS_PATH"] -TestDarkStorage = pytest.mark.integration_test(DarkStorageStateTest.TestCase) +TestDarkStorage = pytest.mark.skip_mac_ci( + pytest.mark.integration_test(DarkStorageStateTest.TestCase) +) diff --git a/tests/ert/unit_tests/ensemble_evaluator/test_ensemble_client.py b/tests/ert/unit_tests/ensemble_evaluator/test_ensemble_client.py index 1a0ab130f13..89c138bdae3 100644 --- a/tests/ert/unit_tests/ensemble_evaluator/test_ensemble_client.py +++ b/tests/ert/unit_tests/ensemble_evaluator/test_ensemble_client.py @@ -1,29 +1,33 @@ +import asyncio + import pytest +import _ert.forward_model_runner.client from _ert.forward_model_runner.client import Client, ClientConnectionError from tests.ert.utils import MockZMQServer -@pytest.mark.integration_test -async def test_invalid_server(): +async def test_invalid_server(monkeypatch): port = 7777 host = "localhost" url = f"tcp://{host}:{port}" + monkeypatch.setattr(Client, "DEFAULT_MAX_RETRIES", 0) + with pytest.raises(ClientConnectionError): - async with Client(url, ack_timeout=1.0): + async with Client(url, ack_timeout=0.01): pass async def test_successful_sending(unused_tcp_port): host = "localhost" url = f"tcp://{host}:{unused_tcp_port}" - messages_c1 = ["test_1", "test_2", "test_3"] - async with MockZMQServer(unused_tcp_port) as mock_server, Client(url) as c1: - for message in messages_c1: - await c1.send(message) + messages = ["test_1", "test_2", "test_3"] + async with MockZMQServer(unused_tcp_port) as mock_server, Client(url) as client: + for message in messages: + await client.send(message) - for msg in messages_c1: + for msg in messages: assert msg in mock_server.messages @@ -32,14 +36,14 @@ async def test_retry(unused_tcp_port): host = "localhost" url = f"tcp://{host}:{unused_tcp_port}" client_connection_error_set = False - messages_c1 = ["test_1", "test_2", "test_3"] + messages = ["test_1", "test_2", "test_3"] async with ( MockZMQServer(unused_tcp_port, signal=2) as mock_server, - Client(url, ack_timeout=0.5) as c1, + Client(url, ack_timeout=0.5) as client, ): - for message in messages_c1: + for message in messages: try: - await c1.send(message, retries=1) + await client.send(message, retries=1) except ClientConnectionError: client_connection_error_set = True mock_server.signal(0) @@ -47,3 +51,27 @@ async def test_retry(unused_tcp_port): assert mock_server.messages.count("test_1") == 2 assert mock_server.messages.count("test_2") == 1 assert mock_server.messages.count("test_3") == 1 + + +async def test_reconnect_when_missing_heartbeat(unused_tcp_port, monkeypatch): + host = "localhost" + url = f"tcp://{host}:{unused_tcp_port}" + + async with MockZMQServer(unused_tcp_port, signal=3) as mock_server: + monkeypatch.setattr(_ert.forward_model_runner.client, "HEARTBEAT_TIMEOUT", 0.01) + async with Client(url) as client: + await client.send("start", retries=1) + + await mock_server.do_heartbeat() + await asyncio.sleep(0.1) + await mock_server.do_heartbeat() + await client.send("stop", retries=1) + + # the client should be disconnected + assert len(mock_server.dealers) == 0 + + # when reconnection happens CONNECT message is sent again + assert mock_server.messages.count("CONNECT") == 2 + assert mock_server.messages.count("DISCONNECT") == 1 + assert "start" in mock_server.messages + assert "stop" in mock_server.messages diff --git a/tests/ert/unit_tests/ensemble_evaluator/test_ensemble_evaluator.py b/tests/ert/unit_tests/ensemble_evaluator/test_ensemble_evaluator.py index 3959beaa273..17edb28fd69 100644 --- a/tests/ert/unit_tests/ensemble_evaluator/test_ensemble_evaluator.py +++ b/tests/ert/unit_tests/ensemble_evaluator/test_ensemble_evaluator.py @@ -2,8 +2,10 @@ import datetime from functools import partial from typing import cast +from unittest.mock import patch import pytest +import zmq.asyncio from hypothesis import given from hypothesis import strategies as st from pydantic import ValidationError @@ -20,7 +22,13 @@ RealizationSuccess, event_to_json, ) -from _ert.forward_model_runner.client import CONNECT_MSG, DISCONNECT_MSG, Client +from _ert.forward_model_runner.client import ( + ACK_MSG, + CONNECT_MSG, + DISCONNECT_MSG, + HEARTBEAT_MSG, + Client, +) from ert.ensemble_evaluator import ( EnsembleEvaluator, EnsembleSnapshot, @@ -90,6 +98,19 @@ async def test_evaluator_handles_dispatchers_connected( assert evaluator._dispatchers_empty.is_set() +async def test_evaluator_raises_on_start_with_address_in_use(make_ee_config): + ee_config = make_ee_config(use_ipc_protocol=False) + ctx = zmq.asyncio.Context() + socket = ctx.socket(zmq.ROUTER) + try: + socket.bind(f"tcp://*:{ee_config.router_port}") + evaluator = EnsembleEvaluator(TestEnsemble(0, 2, 2, id_="0"), ee_config) + with pytest.raises(zmq.error.ZMQError, match="Address already in use"): + await evaluator.run_and_get_successful_realizations() + finally: + ctx.destroy() + + async def test_no_config_raises_valueerror_when_running(): evaluator = EnsembleEvaluator(TestEnsemble(0, 2, 2, id_="0"), None) with pytest.raises(ValueError, match="no config for evaluator"): @@ -122,6 +143,7 @@ async def mock_done_prematurely(message, *args, **kwargs): await evaluator.run_and_get_successful_realizations() +@pytest.mark.integration_test async def test_new_connections_are_no_problem_when_evaluator_is_closing_down( evaluator_to_use, ): @@ -144,7 +166,7 @@ async def evaluator_to_use_fixture(make_ee_config): evaluator = EnsembleEvaluator(ensemble, make_ee_config(use_token=False)) evaluator._batching_interval = 0.5 # batching can be faster for tests run_task = asyncio.create_task(evaluator.run_and_get_successful_realizations()) - await evaluator._server_started.wait() + await evaluator._server_started yield evaluator evaluator.stop() await run_task @@ -356,6 +378,30 @@ def check_if_final_snapshot_is_complete(final_snapshot: EnsembleSnapshot) -> boo break +@patch("ert.ensemble_evaluator.evaluator.HEARTBEAT_TIMEOUT", 0.1) +@pytest.mark.integration_test +async def test_monitor_receive_heartbeats(evaluator_to_use): + evaluator = evaluator_to_use + conn_info = evaluator._config.get_connection_info() + received_heartbeats = 0 + + async def mock_receiver(self): + nonlocal received_heartbeats + while True: + _, raw_msg = await self.socket.recv_multipart() + if raw_msg == ACK_MSG: + self._ack_event.set() + elif raw_msg == HEARTBEAT_MSG: + received_heartbeats += 1 + + with patch.object(Monitor, "_receiver", mock_receiver): + async with Monitor(conn_info) as monitor: + await asyncio.sleep(1.0) + await monitor.signal_done() + # in 1 second we should receive at least 2 heartbeats + assert received_heartbeats > 1 + + @pytest.mark.integration_test async def test_dispatch_endpoint_clients_can_connect_and_monitor_can_shut_down_evaluator( evaluator_to_use, diff --git a/tests/ert/unit_tests/ensemble_evaluator/test_ensemble_legacy.py b/tests/ert/unit_tests/ensemble_evaluator/test_ensemble_legacy.py index 59fc4da5405..7a2ee7291cf 100644 --- a/tests/ert/unit_tests/ensemble_evaluator/test_ensemble_legacy.py +++ b/tests/ert/unit_tests/ensemble_evaluator/test_ensemble_legacy.py @@ -18,7 +18,7 @@ def evaluator_to_use(): async def run_evaluator(ensemble, ee_config): evaluator = EnsembleEvaluator(ensemble, ee_config) run_task = asyncio.create_task(evaluator.run_and_get_successful_realizations()) - await evaluator._server_started.wait() + await evaluator._server_started try: yield evaluator finally: diff --git a/tests/ert/unit_tests/ensemble_evaluator/test_monitor.py b/tests/ert/unit_tests/ensemble_evaluator/test_monitor.py index bbe114d15f3..1ee90c03743 100644 --- a/tests/ert/unit_tests/ensemble_evaluator/test_monitor.py +++ b/tests/ert/unit_tests/ensemble_evaluator/test_monitor.py @@ -1,5 +1,6 @@ import asyncio import logging +from contextlib import suppress import pytest import zmq @@ -16,9 +17,13 @@ from ert.ensemble_evaluator.config import EvaluatorConnectionInfo -async def async_zmq_server(port, handler): +async def async_zmq_server(port, handler, secret_key: bytes | None = None): zmq_context = zmq.asyncio.Context() router_socket = zmq_context.socket(zmq.ROUTER) + if secret_key is not None: + router_socket.curve_secretkey = secret_key + router_socket.curve_publickey = zmq.curve_public(secret_key) + router_socket.curve_server = True router_socket.setsockopt(zmq.LINGER, 0) router_socket.bind(f"tcp://*:{port}") await handler(router_socket) @@ -55,8 +60,9 @@ async def mock_event_handler(router_socket): assert msg == DISCONNECT_MSG -async def test_no_connection_established(make_ee_config): +async def test_no_connection_established(monkeypatch, make_ee_config): ee_config = make_ee_config() + monkeypatch.setattr(Monitor, "DEFAULT_MAX_RETRIES", 0) monitor = Monitor(ee_config.get_connection_info()) monitor._ack_timeout = 0.1 with pytest.raises(ClientConnectionError): @@ -122,6 +128,55 @@ async def mock_event_handler(router_socket): await websocket_server_task +@pytest.mark.parametrize( + "correct_server_key", + [ + pytest.param(True), + pytest.param(False), + ], +) +async def test_that_monitor_cannot_connect_with_wrong_server_key( + correct_server_key, monkeypatch, unused_tcp_port +): + public_key, secret_key = zmq.curve_keypair() + ee_con_info = EvaluatorConnectionInfo( + f"tcp://127.0.0.1:{unused_tcp_port}", + public_key.decode("utf-8") if correct_server_key else None, + ) + + monkeypatch.setattr(Monitor, "DEFAULT_MAX_RETRIES", 0) + monkeypatch.setattr(Monitor, "DEFAULT_ACK_TIMEOUT", 0.5) + + connected = False + + async def mock_event_handler(router_socket): + nonlocal connected + while True: + dealer, _, frame = await router_socket.recv_multipart() + await router_socket.send_multipart([dealer, b"", ACK_MSG]) + if frame == CONNECT_MSG: + connected = True + elif frame == DISCONNECT_MSG: + connected = False + return + + websocket_server_task = asyncio.create_task( + async_zmq_server(unused_tcp_port, mock_event_handler, secret_key=secret_key) + ) + if correct_server_key: + async with Monitor(ee_con_info): + assert connected + assert connected is False + else: + with pytest.raises(ClientConnectionError): + async with Monitor(ee_con_info): + pass + assert connected is False + websocket_server_task.cancel() + with suppress(asyncio.CancelledError): + await websocket_server_task + + async def test_that_monitor_track_can_exit_without_terminated_event_from_evaluator( unused_tcp_port, caplog ): diff --git a/tests/ert/unit_tests/ensemble_evaluator/test_scheduler.py b/tests/ert/unit_tests/ensemble_evaluator/test_scheduler.py index 43abdad5d3a..83887bf3c04 100644 --- a/tests/ert/unit_tests/ensemble_evaluator/test_scheduler.py +++ b/tests/ert/unit_tests/ensemble_evaluator/test_scheduler.py @@ -66,7 +66,7 @@ def create_manifest_file(): run_task = asyncio.create_task( evaluator.run_and_get_successful_realizations() ) - await evaluator._server_started.wait() + await evaluator._server_started await _run_monitor() await run_task assert "Waiting for disk synchronization" in caplog.messages diff --git a/tests/ert/unit_tests/forward_model_runner/test_event_reporter.py b/tests/ert/unit_tests/forward_model_runner/test_event_reporter.py index 3d5753f5595..394c8d93493 100644 --- a/tests/ert/unit_tests/forward_model_runner/test_event_reporter.py +++ b/tests/ert/unit_tests/forward_model_runner/test_event_reporter.py @@ -179,7 +179,6 @@ def test_report_inconsistent_events(unused_tcp_port): reporter.report(Finish()) -@pytest.mark.integration_test def test_report_with_failed_reporter_but_finished_jobs(unused_tcp_port): # this is to show when the reporter fails ert won't crash nor # staying hanging but instead finishes up the job; @@ -192,7 +191,10 @@ def test_report_with_failed_reporter_but_finished_jobs(unused_tcp_port): url = f"tcp://{host}:{unused_tcp_port}" with MockZMQServer(unused_tcp_port) as mock_server: reporter = Event( - evaluator_url=url, ack_timeout=2, max_retries=0, finished_event_timeout=2 + evaluator_url=url, + ack_timeout=0.1, + max_retries=0, + finished_event_timeout=0.1, ) fmstep1 = ForwardModelStep( {"name": "fmstep1", "stdout": "stdout", "stderr": "stderr"}, 0 @@ -213,9 +215,7 @@ def test_report_with_failed_reporter_but_finished_jobs(unused_tcp_port): def test_report_with_reconnected_reporter_but_finished_jobs(unused_tcp_port): # this is to show when the reporter fails but reconnects # reporter still manages to send events and completes fine - # see assert reporter._timeout_timestamp is not None - # meaning Finish event initiated _timeout but timeout wasn't reached since - # it finished succesfully + # see reporter._event_publisher for more details. host = "localhost" url = f"tcp://{host}:{unused_tcp_port}" diff --git a/tests/ert/unit_tests/forward_model_runner/test_forward_model_step.py b/tests/ert/unit_tests/forward_model_runner/test_forward_model_step.py index 6e624a91234..5a6413c93c5 100644 --- a/tests/ert/unit_tests/forward_model_runner/test_forward_model_step.py +++ b/tests/ert/unit_tests/forward_model_runner/test_forward_model_step.py @@ -28,6 +28,10 @@ def test_run_with_process_failing(mock_process, mock_popen, mock_check_executabl ) mock_process.return_value.wait.return_value = 9 + mock_cpu_times = MagicMock() + mock_cpu_times.user = 0.0 + mock_process.return_value.cpu_times.return_value = mock_cpu_times + run = fmstep.run() assert isinstance(next(run), Start), "run did not yield Start message" diff --git a/tests/ert/unit_tests/gui/model/test_snapshot.py b/tests/ert/unit_tests/gui/model/test_snapshot.py index b8a369bbd68..13a29eb1019 100644 --- a/tests/ert/unit_tests/gui/model/test_snapshot.py +++ b/tests/ert/unit_tests/gui/model/test_snapshot.py @@ -10,6 +10,7 @@ @pytest.mark.integration_test +@pytest.mark.skip_mac_ci # slow def test_using_qt_model_tester(qtmodeltester, full_snapshot): model = SnapshotModel() diff --git a/tests/ert/unit_tests/gui/simulation/test_run_dialog.py b/tests/ert/unit_tests/gui/simulation/test_run_dialog.py index 39f8d629e6d..a0efbae646d 100644 --- a/tests/ert/unit_tests/gui/simulation/test_run_dialog.py +++ b/tests/ert/unit_tests/gui/simulation/test_run_dialog.py @@ -111,6 +111,7 @@ def test_run_dialog_polls_run_model_for_runtime( qtbot.waitUntil(lambda: run_dialog.is_simulation_done() == True) +@pytest.mark.integration_test def test_large_snapshot( large_snapshot, qtbot: QtBot, diff --git a/tests/ert/unit_tests/gui/simulation/view/test_realization.py b/tests/ert/unit_tests/gui/simulation/view/test_realization.py index 4de9ecab378..17126e6fca4 100644 --- a/tests/ert/unit_tests/gui/simulation/view/test_realization.py +++ b/tests/ert/unit_tests/gui/simulation/view/test_realization.py @@ -80,6 +80,7 @@ def test_delegate_drawing_count(small_snapshot, qtbot): ) +@pytest.mark.integration_test def test_selection_success(large_snapshot, qtbot): it = 0 widget = RealizationWidget(it) diff --git a/tests/ert/unit_tests/scheduler/test_generic_driver.py b/tests/ert/unit_tests/scheduler/test_generic_driver.py index 9c73abf0e66..6b1fbec06a9 100644 --- a/tests/ert/unit_tests/scheduler/test_generic_driver.py +++ b/tests/ert/unit_tests/scheduler/test_generic_driver.py @@ -154,33 +154,26 @@ async def test_repeated_submit_same_iens(driver: Driver, tmp_path): @pytest.mark.flaky(reruns=5) async def test_kill_actually_kills(driver: Driver, tmp_path, pytestconfig): os.chdir(tmp_path) - if ( - (isinstance(driver, LsfDriver) and pytestconfig.getoption("lsf")) # noqa: PLR0916 - or (isinstance(driver, OpenPBSDriver) and pytestconfig.getoption("openpbs")) - or (isinstance(driver, SlurmDriver) and pytestconfig.getoption("slurm")) - ): - # Allow more time when tested on a real compute cluster to avoid false positives. - job_kill_window = 60 - test_grace_time = 120 - else: - job_kill_window = 5 # Busy test nodes require a long kill window - test_grace_time = 8 + finished = False async def kill_job_once_started(iens): nonlocal driver await driver.kill(iens) + async def mark_as_finished(iens, code): + nonlocal finished + finished = True + await driver.submit( 0, "sh", "-c", - f"sleep {job_kill_window}; touch {tmp_path}/survived", + f"sleep 10; touch {tmp_path}/survived", name="kill_me", ) - await poll(driver, {0}, started=kill_job_once_started) + await poll(driver, {0}, started=kill_job_once_started, finished=mark_as_finished) + assert finished - # Give the script a chance to finish if it is running - await asyncio.sleep(test_grace_time) assert not Path("survived").exists(), "Job should have been killed" diff --git a/tests/ert/unit_tests/scheduler/test_local_driver.py b/tests/ert/unit_tests/scheduler/test_local_driver.py index 473e8e24c76..40c947e97d5 100644 --- a/tests/ert/unit_tests/scheduler/test_local_driver.py +++ b/tests/ert/unit_tests/scheduler/test_local_driver.py @@ -129,3 +129,15 @@ async def test_that_killing_killed_job_does_not_raise(): await driver.kill(23) await driver.kill(23) assert driver.event_queue.empty() + + +@pytest.mark.timeout(10) +async def test_path_as_argument_is_valid(tmp_path): + driver = LocalDriver() + os.chdir(tmp_path) + + await driver.submit(42, "/usr/bin/env", "touch", Path(tmp_path) / "testfile") + assert await driver.event_queue.get() == StartedEvent(iens=42) + assert await driver.event_queue.get() == FinishedEvent(iens=42, returncode=0) + + assert Path("testfile").exists() diff --git a/tests/ert/unit_tests/scheduler/test_lsf_driver.py b/tests/ert/unit_tests/scheduler/test_lsf_driver.py index ce5ba233011..900631b1a8a 100644 --- a/tests/ert/unit_tests/scheduler/test_lsf_driver.py +++ b/tests/ert/unit_tests/scheduler/test_lsf_driver.py @@ -581,7 +581,7 @@ async def test_that_bsub_will_retry_and_fail( bsub_path.chmod(bsub_path.stat().st_mode | stat.S_IEXEC) driver = LsfDriver() driver._max_bsub_attempts = 2 - driver._sleep_time_between_cmd_retries = 0.2 + driver._sleep_time_between_cmd_retries = 0.0 match_str = ( f"failed after 2 attempts with exit code {exit_code}.*" f'error: "{error_msg if error_msg else ""}"' @@ -666,7 +666,7 @@ async def test_that_bsub_will_retry_and_succeed( bsub_path.chmod(bsub_path.stat().st_mode | stat.S_IEXEC) driver = LsfDriver() driver._max_bsub_attempts = 2 - driver._sleep_time_between_cmd_retries = 0.2 + driver._sleep_time_between_cmd_retries = 0.0 await driver.submit(0, "sleep 10") diff --git a/tests/ert/unit_tests/scheduler/test_slurm_driver.py b/tests/ert/unit_tests/scheduler/test_slurm_driver.py index 0152608ca63..83a3cdbf7fe 100644 --- a/tests/ert/unit_tests/scheduler/test_slurm_driver.py +++ b/tests/ert/unit_tests/scheduler/test_slurm_driver.py @@ -373,11 +373,7 @@ async def test_kill_before_submit_is_finished( ): os.chdir(tmp_path) - if pytestconfig.getoption("slurm"): - # Allow more time when tested on a real compute cluster to avoid false positives. - job_kill_window = 5 - test_grace_time = 10 - elif sys.platform.startswith("darwin"): + if sys.platform.startswith("darwin"): # Mitigate flakiness on low-power test nodes job_kill_window = 5 test_grace_time = 10 diff --git a/tests/ert/unit_tests/sensitivity_analysis/test_design_matrix.py b/tests/ert/unit_tests/sensitivity_analysis/test_design_matrix.py index 35408875d47..9e9ab76344d 100644 --- a/tests/ert/unit_tests/sensitivity_analysis/test_design_matrix.py +++ b/tests/ert/unit_tests/sensitivity_analysis/test_design_matrix.py @@ -77,7 +77,7 @@ def test_merge_multiple_occurrences( design_matrix_1.merge_with_other(design_matrix_2) else: design_matrix_1.merge_with_other(design_matrix_2) - design_params = design_matrix_1.parameter_configuration.get("DESIGN_MATRIX", []) + design_params = design_matrix_1.parameter_configuration assert all(param in design_params for param in ("a", "b", "c", "d")) assert design_matrix_1.active_realizations == [True, True, True] df = design_matrix_1.design_matrix_df @@ -181,7 +181,7 @@ def test_reading_design_matrix(tmp_path): xl_write, index=False, sheet_name="DefaultValues", header=False ) design_matrix = DesignMatrix(design_path, "DesignSheet01", "DefaultValues") - design_params = design_matrix.parameter_configuration.get(DESIGN_MATRIX_GROUP, []) + design_params = design_matrix.parameter_configuration assert all(param in design_params for param in ("a", "b", "c", "one", "d")) assert design_matrix.active_realizations == [True, True, False, False, True] diff --git a/tests/ert/unit_tests/test_libres_facade.py b/tests/ert/unit_tests/test_libres_facade.py index a446646d6b3..14d1ab01ee0 100644 --- a/tests/ert/unit_tests/test_libres_facade.py +++ b/tests/ert/unit_tests/test_libres_facade.py @@ -284,7 +284,7 @@ def test_save_parameters_to_storage_from_design_dataframe( design_matrix = DesignMatrix(design_path, "DesignSheet01", "DefaultValues") with open_storage(tmp_path / "storage", mode="w") as storage: experiment_id = storage.create_experiment( - parameters=[design_matrix.parameter_configuration[DESIGN_MATRIX_GROUP]] + parameters=[design_matrix.parameter_configuration] ) ensemble = storage.create_ensemble( experiment_id, name="default", ensemble_size=ensemble_size diff --git a/tests/ert/utils.py b/tests/ert/utils.py index 4f66f93e157..2138adcd64d 100644 --- a/tests/ert/utils.py +++ b/tests/ert/utils.py @@ -9,7 +9,12 @@ import zmq import zmq.asyncio -from _ert.forward_model_runner.client import ACK_MSG, CONNECT_MSG, DISCONNECT_MSG +from _ert.forward_model_runner.client import ( + ACK_MSG, + CONNECT_MSG, + DISCONNECT_MSG, + HEARTBEAT_MSG, +) from _ert.threading import ErtThread from ert.scheduler.event import FinishedEvent, StartedEvent @@ -64,9 +69,10 @@ def wait_until(func, interval=0.5, timeout=30): class MockZMQServer: def __init__(self, port, signal=0): """Mock ZMQ server for testing - signal = 0: normal operation + signal = 0: normal operation, receive messages but don't store CONNECT and DISCONNECT messages signal = 1: don't send ACK and don't receive messages signal = 2: don't send ACK, but receive messages + signal = 3: normal operation, and store also CONNECT and DISCONNECT messages """ self.port = port self.messages = [] @@ -74,6 +80,9 @@ def __init__(self, port, signal=0): self.loop = None self.server_task = None self.handler_task = None + self.dealers = set() + self.no_dealers = asyncio.Event() + self.no_dealers.set() def start_event_loop(self): asyncio.set_event_loop(self.loop) @@ -97,6 +106,8 @@ async def __aenter__(self): async def __aexit__(self, exc_type, exc_value, traceback): if not self.server_task.done(): + with contextlib.suppress(asyncio.TimeoutError): + await asyncio.wait_for(self.no_dealers.wait(), timeout=2.0) self.server_task.cancel() with contextlib.suppress(asyncio.CancelledError): await self.server_task @@ -104,6 +115,7 @@ async def __aexit__(self, exc_type, exc_value, traceback): async def mock_zmq_server(self): zmq_context = zmq.asyncio.Context() self.router_socket = zmq_context.socket(zmq.ROUTER) + self.router_socket.setsockopt(zmq.LINGER, 0) self.router_socket.bind(f"tcp://*:{self.port}") self.handler_task = asyncio.create_task(self._handler()) @@ -116,14 +128,29 @@ async def mock_zmq_server(self): def signal(self, value): self.value = value + async def do_heartbeat(self): + for dealer in self.dealers: + await self.router_socket.send_multipart([dealer, b"", HEARTBEAT_MSG]) + async def _handler(self): while True: try: dealer, __, frame = await self.router_socket.recv_multipart() - if frame in {CONNECT_MSG, DISCONNECT_MSG} or self.value == 0: - await self.router_socket.send_multipart([dealer, b"", ACK_MSG]) - if frame not in {CONNECT_MSG, DISCONNECT_MSG} and self.value != 1: + if ( + self.value in {0, 2} and frame not in {CONNECT_MSG, DISCONNECT_MSG} + ) or self.value == 3: self.messages.append(frame.decode("utf-8")) + if frame == CONNECT_MSG: + self.dealers.add(dealer) + self.no_dealers.clear() + await self.router_socket.send_multipart([dealer, b"", ACK_MSG]) + elif frame == DISCONNECT_MSG: + self.dealers.discard(dealer) + if not self.dealers: + self.no_dealers.set() + await self.router_socket.send_multipart([dealer, b"", ACK_MSG]) + elif self.value in {0, 3}: + await self.router_socket.send_multipart([dealer, b"", ACK_MSG]) except asyncio.CancelledError: break diff --git a/tests/everest/entry_points/test_everexport.py b/tests/everest/entry_points/test_everexport.py index 88dc26ff4c8..e16ca6f4a57 100644 --- a/tests/everest/entry_points/test_everexport.py +++ b/tests/everest/entry_points/test_everexport.py @@ -101,7 +101,7 @@ def test_everexport_entry_empty(mocked_func, cached_example): side_effect=validate_export_mock, ) @patch("everest.bin.utils.export_data") -@pytest.mark.fails_on_macos_github_workflow +@pytest.mark.skip_mac_ci def test_everexport_entry_batches(mocked_func, validate_export_mock, cached_example): """Test running everexport with the --batches flag""" _, config_file, _ = cached_example("math_func/config_minimal.yml") @@ -156,7 +156,7 @@ def test_everexport_entry_empty_export(mocked_func, cached_example): @patch("everest.bin.utils.export_data") -@pytest.mark.fails_on_macos_github_workflow +@pytest.mark.skip_mac_ci def test_everexport_entry_no_usr_def_ecl_keys(mocked_func, cached_example): """Test running everexport with config file containing only the keywords label without any list of keys""" @@ -190,7 +190,7 @@ def condition(config): @patch("everest.bin.utils.export_data") -@pytest.mark.fails_on_macos_github_workflow +@pytest.mark.skip_mac_ci def test_everexport_entry_internalized_usr_def_ecl_keys(mocked_func, cached_example): """Test running everexport with config file containing a key in the list of user defined ecl keywords, that has been internalized on @@ -226,7 +226,7 @@ def condition(config): @patch("everest.bin.utils.export_data") -@pytest.mark.fails_on_macos_github_workflow +@pytest.mark.skip_mac_ci def test_everexport_entry_non_int_usr_def_ecl_keys(mocked_func, caplog, cached_example): """Test running everexport when config file contains non internalized ecl keys in the user defined keywords list""" @@ -269,7 +269,7 @@ def condition(config): @patch("everest.bin.utils.export_data") -@pytest.mark.fails_on_macos_github_workflow +@pytest.mark.skip_mac_ci def test_everexport_entry_not_available_batches(mocked_func, caplog, cached_example): """Test running everexport when config file contains non existing batch numbers in the list of user defined batches""" diff --git a/tests/everest/functional/test_main_everest_entry.py b/tests/everest/functional/test_main_everest_entry.py index 028248e0d5a..8a80384d74e 100644 --- a/tests/everest/functional/test_main_everest_entry.py +++ b/tests/everest/functional/test_main_everest_entry.py @@ -41,7 +41,7 @@ def test_everest_main_entry_bad_command(): @pytest.mark.flaky(reruns=5) -@pytest.mark.fails_on_macos_github_workflow +@pytest.mark.skip_mac_ci @pytest.mark.integration_test def test_everest_entry_run(cached_example): _, config_file, _ = cached_example("math_func/config_minimal.yml") @@ -125,7 +125,7 @@ def test_everest_main_lint_entry(cached_example): f"""Loading config file failed with: Found 1 validation error: -controls -> 0 -> initial_guess +line: 2, column: 18. controls -> 0 -> initial_guess * Input should be a valid number, unable to parse string as a number {type_} """ ) diff --git a/tests/everest/test_api_snapshots.py b/tests/everest/test_api_snapshots.py index aa742a6764b..cac5fdac177 100644 --- a/tests/everest/test_api_snapshots.py +++ b/tests/everest/test_api_snapshots.py @@ -77,6 +77,7 @@ def test_api_snapshots(config_file, snapshot, cached_example): snapshot.assert_match(snapshot_str, "snapshot.json") +@pytest.mark.integration_test @pytest.mark.parametrize( "config_file", ["config_advanced.yml", "config_minimal.yml", "config_multiobj.yml"], diff --git a/tests/everest/test_config_validation.py b/tests/everest/test_config_validation.py index 6778b69da60..f75ba9ebb57 100644 --- a/tests/everest/test_config_validation.py +++ b/tests/everest/test_config_validation.py @@ -998,7 +998,11 @@ def test_load_file_with_errors(copy_math_func_test_data_to_tmp, capsys): content = file.read() with open("config_minimal_error.yml", "w", encoding="utf-8") as file: - file.write(content.replace("generic_control", "yolo_control")) + content = content.replace("generic_control", "yolo_control") + content = content.replace("max: 1.0", "max: not_a number") + pos = content.find("name: distance") + content = content[: pos + 14] + "\n invalid: invalid" + content[pos + 14 :] + file.write(content) with pytest.raises(SystemExit): parser = ArgumentParser(prog="test") @@ -1006,6 +1010,18 @@ def test_load_file_with_errors(copy_math_func_test_data_to_tmp, capsys): captured = capsys.readouterr() - assert "Found 1 validation error" in captured.err + assert "Found 3 validation error" in captured.err assert "line: 3, column: 11" in captured.err - assert "Input should be 'well_control' or 'generic_control'" in captured.err + assert ( + "Input should be 'well_control' or 'generic_control' (type=literal_error)" + in captured.err + ) + + assert "line: 5, column: 10" in captured.err + assert ( + "Input should be a valid number, unable to parse string as a number (type=float_parsing)" + in captured.err + ) + + assert "line: 16, column: 5" in captured.err + assert "Extra inputs are not permitted (type=extra_forbidden)" in captured.err diff --git a/tests/everest/test_detached.py b/tests/everest/test_detached.py index 064c881301d..994de4c3fd8 100644 --- a/tests/everest/test_detached.py +++ b/tests/everest/test_detached.py @@ -42,7 +42,7 @@ @pytest.mark.flaky(reruns=5) @pytest.mark.integration_test -@pytest.mark.fails_on_macos_github_workflow +@pytest.mark.skip_mac_ci @pytest.mark.xdist_group(name="starts_everest") async def test_https_requests(copy_math_func_test_data_to_tmp): everest_config = EverestConfig.load_file("config_minimal.yml") @@ -140,6 +140,7 @@ def test_server_status(copy_math_func_test_data_to_tmp): assert status["message"] == f"{err_msg_1}\n{err_msg_2}" +@pytest.mark.integration_test @patch("everest.detached.server_is_running", return_value=False) def test_wait_for_server(server_is_running_mock, caplog, monkeypatch): config = EverestConfig.with_defaults() diff --git a/tests/everest/test_egg_simulation.py b/tests/everest/test_egg_simulation.py index d20de3a3f9d..96d466cf74c 100644 --- a/tests/everest/test_egg_simulation.py +++ b/tests/everest/test_egg_simulation.py @@ -553,6 +553,7 @@ def _generate_exp_ert_config(config_path, output_dir): } +@pytest.mark.integration_test @skipif_no_opm def test_egg_model_convert(copy_egg_test_data_to_tmp): config = EverestConfig.load_file(CONFIG_FILE) @@ -667,6 +668,7 @@ def test_init_egg_model(copy_egg_test_data_to_tmp): ErtConfig.with_plugins().from_dict(config_dict=ert_config) +@pytest.mark.integration_test @skipif_no_everest_models @pytest.mark.everest_models_test @skipif_no_opm diff --git a/tests/everest/test_everlint.py b/tests/everest/test_everlint.py index a64b165c91d..12f5886a410 100644 --- a/tests/everest/test_everlint.py +++ b/tests/everest/test_everlint.py @@ -246,6 +246,7 @@ def test_control_ref_validation(min_config): EverestConfig(**min_config) +@pytest.mark.integration_test def test_init_context_controls(): test_configs = [ "test_data/mocked_test_case/config_input_constraints.yml", @@ -332,7 +333,7 @@ def test_date_type(date, valid, min_config): EverestConfig(**min_config) -@pytest.mark.fails_on_macos_github_workflow +@pytest.mark.skip_mac_ci def test_lint_everest_models_jobs(): pytest.importorskip("everest_models") config_file = relpath("../../test-data/everest/egg/everest/model/config.yml") diff --git a/tests/everest/test_everserver.py b/tests/everest/test_everserver.py index 4075e3fbc41..2891ab5b47e 100644 --- a/tests/everest/test_everserver.py +++ b/tests/everest/test_everserver.py @@ -5,9 +5,11 @@ from pathlib import Path from unittest.mock import patch +import pytest from seba_sqlite.snapshot import SebaSnapshot -from ert.run_models.everest_run_model import EverestExitCode +from _ert.events import event_from_json, event_to_json +from ert.run_models.everest_run_model import EverestExitCode, EverestRunModel from everest.config import EverestConfig, OptimizationConfig, ServerConfig from everest.detached import ServerStatus, everserver_status from everest.detached.jobs import everserver @@ -52,6 +54,7 @@ def set_shared_status(*args, progress, shared_data): } +@pytest.mark.integration_test def test_certificate_generation(copy_math_func_test_data_to_tmp): config = EverestConfig.load_file("config_minimal.yml") cert, key, pw = everserver._generate_certificate( @@ -194,6 +197,7 @@ def test_everserver_status_exception( assert "Exception: Failed optimization" in status["message"] +@pytest.mark.integration_test @patch("sys.argv", ["name", "--config-file", "config_minimal.yml"]) @patch( "everest.detached.jobs.everserver._sim_monitor", @@ -223,6 +227,7 @@ def test_everserver_status_max_batch_num( assert {data.batch for data in snapshot.simulation_data} == {0} +@pytest.mark.integration_test @patch("sys.argv", ["name", "--config-file", "config_minimal.yml"]) def test_everserver_status_contains_max_runtime_failure( mock_server, change_to_tmpdir, min_config @@ -248,3 +253,34 @@ def test_everserver_status_contains_max_runtime_failure( "sleep Failed with: The run is cancelled due to reaching MAX_RUNTIME" in status["message"] ) + + +def test_event_serialization( + copy_math_func_test_data_to_tmp, + evaluator_server_config_generator, +): + config = EverestConfig.load_file("config_minimal.yml") + + def check_status_round_tripping(status): + round_trip_status = json.loads(json.dumps(status)) + assert round_trip_status == status + + run_model = EverestRunModel.create( + config, + simulation_callback=check_status_round_tripping, + ) + + send_snapshot_event = run_model.send_snapshot_event + + def check_event_serialization_round_trip(*args, **_): + event, _ = args + event_json = event_to_json(event) + round_trip_event = event_from_json(str(event_json)) + assert event == round_trip_event + send_snapshot_event(*args) + + run_model.send_snapshot_event = check_event_serialization_round_trip + + evaluator_server_config = evaluator_server_config_generator(run_model) + + run_model.run_experiment(evaluator_server_config) diff --git a/tests/everest/test_fix_control.py b/tests/everest/test_fix_control.py index bcf75e5a333..11b75bed06c 100644 --- a/tests/everest/test_fix_control.py +++ b/tests/everest/test_fix_control.py @@ -1,9 +1,12 @@ +import pytest + from ert.run_models.everest_run_model import EverestRunModel from everest.config import EverestConfig CONFIG_FILE_ADVANCED = "config_advanced.yml" +@pytest.mark.integration_test def test_fix_control( copy_math_func_test_data_to_tmp, evaluator_server_config_generator ): diff --git a/tests/everest/test_res_initialization.py b/tests/everest/test_res_initialization.py index 27fc2e5db81..b894ea00e2b 100644 --- a/tests/everest/test_res_initialization.py +++ b/tests/everest/test_res_initialization.py @@ -102,7 +102,8 @@ def test_everest_to_ert_queue_config(config, config_class): assert ert_config.queue_config.queue_options == config_class(**config) -def test_everest_to_ert_controls(): +def test_everest_to_ert_controls(tmp_path, monkeypatch): + monkeypatch.chdir(tmp_path) ever_config = EverestConfig.with_defaults( **yaml.safe_load( dedent(""" @@ -124,9 +125,8 @@ def test_everest_to_ert_controls(): ) -@pytest.mark.parametrize( - "name", - [ +def test_default_installed_jobs(): + jobs = [ "render", "recovery_factor", "wdreorder", @@ -140,22 +140,18 @@ def test_everest_to_ert_controls(): "copy_file", "move_file", "symlink", - ], -) -def test_default_installed_jobs(tmp_path, monkeypatch, name): - monkeypatch.chdir(tmp_path) + ] ever_config_dict = EverestConfig.with_defaults( **yaml.safe_load( dedent(f""" model: {{"realizations": [0]}} - forward_model: - - {name} + forward_model: {jobs} """) ) ) config = everest_to_ert_config(ever_config_dict) # Index 0 is the copy job for wells.json - assert config.forward_model_steps[1].name == name + assert [c.name for c in config.forward_model_steps[1:]] == jobs def test_combined_wells_everest_to_ert(tmp_path, monkeypatch): @@ -241,7 +237,7 @@ def test_summary_default(copy_egg_test_data_to_tmp): @hide_opm @skipif_no_everest_models @pytest.mark.everest_models_test -@pytest.mark.fails_on_macos_github_workflow +@pytest.mark.skip_mac_ci def test_summary_default_no_opm(copy_egg_test_data_to_tmp): config_dir = "everest/model" config_file = os.path.join(config_dir, "config.yml") diff --git a/tests/everest/test_samplers.py b/tests/everest/test_samplers.py index 663db860c70..418a199df9d 100644 --- a/tests/everest/test_samplers.py +++ b/tests/everest/test_samplers.py @@ -7,6 +7,7 @@ CONFIG_FILE_ADVANCED = "config_advanced.yml" +@pytest.mark.integration_test def test_sampler_uniform( copy_math_func_test_data_to_tmp, evaluator_server_config_generator ): @@ -38,6 +39,7 @@ def test_sampler_uniform( assert expected_opt == pytest.approx(run_model.result.total_objective, abs=0.001) +@pytest.mark.integration_test def test_sampler_mixed( copy_math_func_test_data_to_tmp, evaluator_server_config_generator ): diff --git a/tests/everest/test_simulator_cache.py b/tests/everest/test_simulator_cache.py index 14765b49b14..8a61b6bca65 100644 --- a/tests/everest/test_simulator_cache.py +++ b/tests/everest/test_simulator_cache.py @@ -1,6 +1,7 @@ from pathlib import Path import numpy as np +import pytest from ert.config import QueueSystem from ert.ensemble_evaluator import EvaluatorServerConfig @@ -8,6 +9,7 @@ from everest.config import EverestConfig, SimulatorConfig +@pytest.mark.integration_test def test_simulator_cache(copy_math_func_test_data_to_tmp): n_evals = 0 diff --git a/tests/everest/test_templating.py b/tests/everest/test_templating.py index f023752ce62..6d7e0101cc5 100644 --- a/tests/everest/test_templating.py +++ b/tests/everest/test_templating.py @@ -94,6 +94,7 @@ def test_render_multiple_input(copy_template_test_data_to_tmp): assert output == ["0.2 vs 0.8"] +@pytest.mark.integration_test def test_render_executable(copy_template_test_data_to_tmp): assert os.access(everest.jobs.render, os.X_OK) diff --git a/tests/everest/test_yaml_parser.py b/tests/everest/test_yaml_parser.py index 8d5376ce418..d173c53c188 100644 --- a/tests/everest/test_yaml_parser.py +++ b/tests/everest/test_yaml_parser.py @@ -106,7 +106,7 @@ def test_valid_config_file(copy_test_data_to_tmp, monkeypatch): assert "could not find expected ':'" in parser.get_error() -@pytest.mark.fails_on_macos_github_workflow +@pytest.mark.skip_mac_ci @skipif_no_everest_models @pytest.mark.everest_models_test def test_valid_forward_model_config_files(copy_test_data_to_tmp, monkeypatch): @@ -121,7 +121,7 @@ def test_valid_forward_model_config_files(copy_test_data_to_tmp, monkeypatch): @skipif_no_everest_models @pytest.mark.everest_models_test -@pytest.mark.fails_on_macos_github_workflow +@pytest.mark.skip_mac_ci def test_invalid_forward_model_config_files(copy_test_data_to_tmp, monkeypatch): monkeypatch.chdir("valid_config_file/forward_models") parser = MockParser()