From de4ceedcbfdea12df835f33b60eed6fd8c43a615 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 13:04:15 +0000 Subject: [PATCH] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/alfasim_sdk/result_reader/aggregator.py | 123 +++++++++++++----- .../result_reader/aggregator_constants.py | 2 +- tests/conftest.py | 60 +++++++-- tests/results/test_aggregator.py | 114 ++++++++++++---- 4 files changed, 229 insertions(+), 70 deletions(-) diff --git a/src/alfasim_sdk/result_reader/aggregator.py b/src/alfasim_sdk/result_reader/aggregator.py index 42d39b14..b5343f54 100644 --- a/src/alfasim_sdk/result_reader/aggregator.py +++ b/src/alfasim_sdk/result_reader/aggregator.py @@ -4,7 +4,7 @@ from collections import namedtuple from contextlib import contextmanager from pathlib import Path -from typing import Any, Type +from typing import Any from typing import Callable from typing import DefaultDict from typing import Dict @@ -13,6 +13,7 @@ from typing import Literal from typing import Optional from typing import Tuple +from typing import Type from typing import Union import attr @@ -22,9 +23,7 @@ from typing_extensions import Self from alfasim_sdk.result_reader.aggregator_constants import ( - GLOBAL_SENSITIVITY_ANALYSIS_GROUP_NAME, UNCERTAINTY_PROPAGATION_GROUP_META_ATTR_NAME, - UNCERTAINTY_PROPAGATION_DSET_REALIZATION_OUTPUS, UNCERTAINTY_PROPAGATION_GROUP_NAME, - UNCERTAINTY_PROPAGATION_DSET_MEAN_RESULT, UNCERTAINTY_PROPAGATION_DSET_STD_RESULT, + GLOBAL_SENSITIVITY_ANALYSIS_GROUP_NAME, ) from alfasim_sdk.result_reader.aggregator_constants import ( HISTORY_MATCHING_DETERMINISTIC_DSET_NAME, @@ -42,6 +41,21 @@ from alfasim_sdk.result_reader.aggregator_constants import RESULT_FILE_PREFIX from alfasim_sdk.result_reader.aggregator_constants import TIME_SET_DSET_NAME from alfasim_sdk.result_reader.aggregator_constants import TRENDS_GROUP_NAME +from alfasim_sdk.result_reader.aggregator_constants import ( + UNCERTAINTY_PROPAGATION_DSET_MEAN_RESULT, +) +from alfasim_sdk.result_reader.aggregator_constants import ( + UNCERTAINTY_PROPAGATION_DSET_REALIZATION_OUTPUS, +) +from alfasim_sdk.result_reader.aggregator_constants import ( + UNCERTAINTY_PROPAGATION_DSET_STD_RESULT, +) +from alfasim_sdk.result_reader.aggregator_constants import ( + UNCERTAINTY_PROPAGATION_GROUP_META_ATTR_NAME, +) +from alfasim_sdk.result_reader.aggregator_constants import ( + UNCERTAINTY_PROPAGATION_GROUP_NAME, +) OutputKeyType = str """\ @@ -106,6 +120,7 @@ class ResultsNeedFullReloadError(RuntimeError): "restart file" and the option "keep old results" is selected. """ + @attr.s(slots=True, hash=False) class BaseUQMetaData: """ @@ -126,6 +141,7 @@ class BaseUQMetaData: :ivar unit: The unit of a dimensionless property (-, %) """ + property_id: str = attr.ib(validator=attr.validators.instance_of(str)) trend_id: str = attr.ib(validator=attr.validators.instance_of(str)) category: str = attr.ib(validator=attr.validators.instance_of(str)) @@ -158,9 +174,12 @@ class UPItem(BaseUQMetaData): :ivar sample_indexes: The indexes to access each sample of an item. """ + samples: int = attr.ib(validator=attr.validators.instance_of(int)) result_index: int = attr.ib(validator=attr.validators.instance_of(int)) - sample_indexes: List[List[int]] = attr.ib(validator=attr.validators.instance_of(List)) + sample_indexes: List[List[int]] = attr.ib( + validator=attr.validators.instance_of(List) + ) @classmethod def from_dict(cls, data: Dict[str, Any]) -> Self: @@ -173,8 +192,8 @@ def from_dict(cls, data: Dict[str, Any]) -> Self: position_unit=data["position_unit"], unit=data["unit"], samples=data["samples"], - result_index=data['result_index'], - sample_indexes=data['sample_indexes'] + result_index=data["result_index"], + sample_indexes=data["sample_indexes"], ) items: Dict[str, UPItem] = attr.ib(validator=attr.validators.instance_of(Dict)) @@ -188,7 +207,6 @@ def empty(cls, result_directory: Path) -> Self: @classmethod def get_metadata_from_dir(cls, result_directory: Path) -> Self: - def map_data( up_metadata: Dict, ) -> Dict[str, UncertaintyPropagationAnalysesMetaData.UPItem]: @@ -197,7 +215,13 @@ def map_data( for key, data in up_metadata.items() } - return read_results_file(result_directory=result_directory, metadata_class=cls, meta_data_attrs=UNCERTAINTY_PROPAGATION_GROUP_META_ATTR_NAME, map_data=map_data) + return read_results_file( + result_directory=result_directory, + metadata_class=cls, + meta_data_attrs=UNCERTAINTY_PROPAGATION_GROUP_META_ATTR_NAME, + map_data=map_data, + ) + @attr.s(slots=True, hash=False) class GlobalSensitivityAnalysisMetadata: @@ -219,6 +243,7 @@ class GSAItem(BaseUQMetaData): :ivar qoi_data_index: The data index of a quantity of interest. """ + parametric_var_id: str = attr.ib(validator=attr.validators.instance_of(str)) parametric_var_name: str = attr.ib(validator=attr.validators.instance_of(str)) qoi_index: Optional[int] = attr.ib( @@ -269,25 +294,50 @@ def map_data( key: GlobalSensitivityAnalysisMetadata.GSAItem.from_dict(data) for key, data in gsa_metadata.items() } - return read_results_file(result_directory=result_directory,metadata_class=cls, map_data=map_data,meta_data_attrs=GLOBAL_SENSITIVITY_ANALYSIS_GROUP_NAME) -UQMetadataClass = Union[GlobalSensitivityAnalysisMetadata,UncertaintyPropagationAnalysesMetaData] + return read_results_file( + result_directory=result_directory, + metadata_class=cls, + map_data=map_data, + meta_data_attrs=GLOBAL_SENSITIVITY_ANALYSIS_GROUP_NAME, + ) + + +UQMetadataClass = Union[ + GlobalSensitivityAnalysisMetadata, UncertaintyPropagationAnalysesMetaData +] + @attr.s(frozen=True) class UPResult: """ Holder for each uncertainty propagation result. """ - realization_output: List[np.ndarray] = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(List))) - mean_result: np.ndarray = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(np.ndarray))) - std_result: np.ndarray = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(np.ndarray))) - category: str = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(str))) - unit: str = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(str))) -def read_results_file(result_directory: Path, metadata_class: Type[UQMetadataClass], map_data: Callable, meta_data_attrs: str) -> UQMetadataClass: - with open_result_file( - result_directory, result_filename="result" - ) as result_file: + realization_output: List[np.ndarray] = attr.ib( + validator=attr.validators.optional(attr.validators.instance_of(List)) + ) + mean_result: np.ndarray = attr.ib( + validator=attr.validators.optional(attr.validators.instance_of(np.ndarray)) + ) + std_result: np.ndarray = attr.ib( + validator=attr.validators.optional(attr.validators.instance_of(np.ndarray)) + ) + category: str = attr.ib( + validator=attr.validators.optional(attr.validators.instance_of(str)) + ) + unit: str = attr.ib( + validator=attr.validators.optional(attr.validators.instance_of(str)) + ) + + +def read_results_file( + result_directory: Path, + metadata_class: Type[UQMetadataClass], + map_data: Callable, + meta_data_attrs: str, +) -> UQMetadataClass: + with open_result_file(result_directory, result_filename="result") as result_file: if not result_file: return metadata_class.empty(result_directory=result_directory) @@ -298,6 +348,7 @@ def read_results_file(result_directory: Path, metadata_class: Type[UQMetadataCla items=map_data(loaded_metadata), result_directory=result_directory ) + @attr.s(slots=True, hash=False) class HistoryMatchingMetadata: """ @@ -1770,9 +1821,10 @@ def read_global_sensitivity_analysis_meta_data( result_directory=result_directory ) + def read_uncertainty_propagation_analyses_meta_data( result_directory: Path, -)-> Optional[UncertaintyPropagationAnalysesMetaData]: +) -> Optional[UncertaintyPropagationAnalysesMetaData]: """ Read the uncertainty propagation analyses metadata persisted in a result file. """ @@ -1782,7 +1834,9 @@ def read_uncertainty_propagation_analyses_meta_data( ) -def read_uncertainty_propagation_results(metadata: UncertaintyPropagationAnalysesMetaData, results_key: str) -> Optional[UPResult]: +def read_uncertainty_propagation_results( + metadata: UncertaintyPropagationAnalysesMetaData, results_key: str +) -> Optional[UPResult]: """ Get the uncertainty propagation results. @@ -1798,22 +1852,31 @@ def read_uncertainty_propagation_results(metadata: UncertaintyPropagationAnalyse with open_result_file(metadata.result_directory) as file: up_group = file[UNCERTAINTY_PROPAGATION_GROUP_NAME] - realization_output_samples = up_group[UNCERTAINTY_PROPAGATION_DSET_REALIZATION_OUTPUS] - - realization_outputs = [realization_output_samples[sample_index][qoi_index] for qoi_index, sample_index in meta.sample_indexes] - mean_result = up_group[UNCERTAINTY_PROPAGATION_DSET_MEAN_RESULT][meta.result_index] - std_result = up_group[UNCERTAINTY_PROPAGATION_DSET_STD_RESULT][meta.result_index] + realization_output_samples = up_group[ + UNCERTAINTY_PROPAGATION_DSET_REALIZATION_OUTPUS + ] + + realization_outputs = [ + realization_output_samples[sample_index][qoi_index] + for qoi_index, sample_index in meta.sample_indexes + ] + mean_result = up_group[UNCERTAINTY_PROPAGATION_DSET_MEAN_RESULT][ + meta.result_index + ] + std_result = up_group[UNCERTAINTY_PROPAGATION_DSET_STD_RESULT][ + meta.result_index + ] return UPResult( realization_output=realization_outputs, mean_result=mean_result, std_result=std_result, category=meta.category, - unit=meta.unit + unit=meta.unit, ) + def read_based_uq_time_set( - result_directory: Path, - group_name: str + result_directory: Path, group_name: str ) -> Optional[numpy.array]: """ Get the time set for based uq analysis results. diff --git a/src/alfasim_sdk/result_reader/aggregator_constants.py b/src/alfasim_sdk/result_reader/aggregator_constants.py index 0482b41a..abc366af 100644 --- a/src/alfasim_sdk/result_reader/aggregator_constants.py +++ b/src/alfasim_sdk/result_reader/aggregator_constants.py @@ -13,7 +13,7 @@ ) UNCERTAINTY_PROPAGATION_DSET_MEAN_RESULT = "uncertainty_propagation_mean_results" UNCERTAINTY_PROPAGATION_DSET_STD_RESULT = "uncertainty_propagation_std_results" -UNCERTAINTY_PROPAGATION_GROUP_NAME = 'uncertainty_propagation' +UNCERTAINTY_PROPAGATION_GROUP_NAME = "uncertainty_propagation" TIME_SET_DSET_NAME = "time_set" diff --git a/tests/conftest.py b/tests/conftest.py index e02d85fd..1db8018b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -12,9 +12,7 @@ from _pytest.monkeypatch import MonkeyPatch from alfasim_sdk.result_reader.aggregator_constants import ( - GLOBAL_SENSITIVITY_ANALYSIS_GROUP_NAME, UNCERTAINTY_PROPAGATION_GROUP_META_ATTR_NAME, UNCERTAINTY_PROPAGATION_GROUP_NAME, - UNCERTAINTY_PROPAGATION_DSET_REALIZATION_OUTPUS, UNCERTAINTY_PROPAGATION_DSET_MEAN_RESULT, - UNCERTAINTY_PROPAGATION_DSET_STD_RESULT, + GLOBAL_SENSITIVITY_ANALYSIS_GROUP_NAME, ) from alfasim_sdk.result_reader.aggregator_constants import ( HISTORY_MATCHING_DETERMINISTIC_DSET_NAME, @@ -25,6 +23,21 @@ ) from alfasim_sdk.result_reader.aggregator_constants import META_GROUP_NAME from alfasim_sdk.result_reader.aggregator_constants import TIME_SET_DSET_NAME +from alfasim_sdk.result_reader.aggregator_constants import ( + UNCERTAINTY_PROPAGATION_DSET_MEAN_RESULT, +) +from alfasim_sdk.result_reader.aggregator_constants import ( + UNCERTAINTY_PROPAGATION_DSET_REALIZATION_OUTPUS, +) +from alfasim_sdk.result_reader.aggregator_constants import ( + UNCERTAINTY_PROPAGATION_DSET_STD_RESULT, +) +from alfasim_sdk.result_reader.aggregator_constants import ( + UNCERTAINTY_PROPAGATION_GROUP_META_ATTR_NAME, +) +from alfasim_sdk.result_reader.aggregator_constants import ( + UNCERTAINTY_PROPAGATION_GROUP_NAME, +) from alfasim_sdk.result_reader.reader import Results @@ -270,6 +283,7 @@ def global_sa_results_dir(datadir: Path) -> Path: file.close() return result_dir + @pytest.fixture() def up_results_dir(datadir: Path) -> Path: """ @@ -285,8 +299,13 @@ def up_results_dir(datadir: Path) -> Path: realization_outputs = np.array( [ [ - [i + (qoi_index*10) + tl for tl in (0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7)] - for qoi_index, trend_property in enumerate([('trend_id_1','temperature'), ('trend_id_1','absolute_pressure')]) + [ + i + (qoi_index * 10) + tl + for tl in (0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7) + ] + for qoi_index, trend_property in enumerate( + [("trend_id_1", "temperature"), ("trend_id_1", "absolute_pressure")] + ) ] for i in range(5) ] @@ -307,7 +326,7 @@ def up_results_dir(datadir: Path) -> Path: "position_unit": "m", "unit": "K", "samples": 5, - "sample_indexes": [[0,0], [0,1], [0,2],[0,3],[0,4]], + "sample_indexes": [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4]], "result_index": 0, }, "absolute_pressure@trend_id_1": { @@ -319,28 +338,45 @@ def up_results_dir(datadir: Path) -> Path: "position_unit": "m", "unit": "bar", "samples": 5, - "sample_indexes": [[1, 0],[1, 1], [1, 2], [1, 3],[1,4]], + "sample_indexes": [[1, 0], [1, 1], [1, 2], [1, 3], [1, 4]], "result_index": 1, }, } - meta_group.attrs[UNCERTAINTY_PROPAGATION_GROUP_META_ATTR_NAME] = json.dumps(fake_meta) - time_set_dset = uncertainty_propagation_group.create_dataset(name=TIME_SET_DSET_NAME, shape=time_set.shape) + meta_group.attrs[UNCERTAINTY_PROPAGATION_GROUP_META_ATTR_NAME] = json.dumps( + fake_meta + ) + time_set_dset = uncertainty_propagation_group.create_dataset( + name=TIME_SET_DSET_NAME, shape=time_set.shape + ) time_set_dset[:] = time_set - realization_outputs_dset = uncertainty_propagation_group.create_dataset(name=UNCERTAINTY_PROPAGATION_DSET_REALIZATION_OUTPUS, shape=realization_outputs.shape, maxshape=(None, None, None)) + realization_outputs_dset = uncertainty_propagation_group.create_dataset( + name=UNCERTAINTY_PROPAGATION_DSET_REALIZATION_OUTPUS, + shape=realization_outputs.shape, + maxshape=(None, None, None), + ) realization_outputs = realization_outputs realization_outputs_dset[:] = realization_outputs mean_results_array = np.mean(realization_outputs, axis=0) - mean_results = uncertainty_propagation_group.create_dataset(name=UNCERTAINTY_PROPAGATION_DSET_MEAN_RESULT, shape=mean_results_array.shape, maxshape=(None, None)) + mean_results = uncertainty_propagation_group.create_dataset( + name=UNCERTAINTY_PROPAGATION_DSET_MEAN_RESULT, + shape=mean_results_array.shape, + maxshape=(None, None), + ) mean_results[:] = mean_results_array std_results_array = np.std(realization_outputs, axis=0) - std_results = uncertainty_propagation_group.create_dataset(name=UNCERTAINTY_PROPAGATION_DSET_STD_RESULT, shape=std_results_array.shape, maxshape=(None, None)) + std_results = uncertainty_propagation_group.create_dataset( + name=UNCERTAINTY_PROPAGATION_DSET_STD_RESULT, + shape=std_results_array.shape, + maxshape=(None, None), + ) std_results[:] = std_results_array file.swmr_mode = True return result_dir + def _create_and_populate_hm_result_file( result_dir: Path, result: np.ndarray, diff --git a/tests/results/test_aggregator.py b/tests/results/test_aggregator.py index 32ca84a8..218547ff 100644 --- a/tests/results/test_aggregator.py +++ b/tests/results/test_aggregator.py @@ -13,15 +13,14 @@ from pytest_mock import MockerFixture from pytest_regressions.num_regression import NumericRegressionFixture -from alfasim_sdk.result_reader.aggregator import concatenate_metadata, read_uncertainty_propagation_analyses_meta_data, \ - read_uncertainty_propagation_results +from alfasim_sdk.result_reader.aggregator import concatenate_metadata from alfasim_sdk.result_reader.aggregator import HistoryMatchingMetadata from alfasim_sdk.result_reader.aggregator import open_result_files from alfasim_sdk.result_reader.aggregator import ( - read_global_sensitivity_analysis_meta_data, + read_based_uq_time_set, ) from alfasim_sdk.result_reader.aggregator import ( - read_based_uq_time_set, + read_global_sensitivity_analysis_meta_data, ) from alfasim_sdk.result_reader.aggregator import read_global_sensitivity_coefficients from alfasim_sdk.result_reader.aggregator import read_history_matching_metadata @@ -30,10 +29,16 @@ from alfasim_sdk.result_reader.aggregator import read_profiles_local_statistics from alfasim_sdk.result_reader.aggregator import read_time_sets from alfasim_sdk.result_reader.aggregator import read_trends_data +from alfasim_sdk.result_reader.aggregator import ( + read_uncertainty_propagation_analyses_meta_data, +) +from alfasim_sdk.result_reader.aggregator import read_uncertainty_propagation_results from alfasim_sdk.result_reader.aggregator import ResultsNeedFullReloadError from alfasim_sdk.result_reader.aggregator import TimeSetInfoItem -from alfasim_sdk.result_reader.aggregator_constants import HISTORY_MATCHING_GROUP_NAME, \ - GLOBAL_SENSITIVITY_ANALYSIS_GROUP_NAME +from alfasim_sdk.result_reader.aggregator_constants import ( + GLOBAL_SENSITIVITY_ANALYSIS_GROUP_NAME, +) +from alfasim_sdk.result_reader.aggregator_constants import HISTORY_MATCHING_GROUP_NAME from alfasim_sdk.result_reader.aggregator_constants import META_GROUP_NAME from alfasim_sdk.result_reader.aggregator_constants import RESULTS_FOLDER_NAME from alfasim_sdk.result_reader.reader import Results @@ -347,7 +352,7 @@ def test_read_gsa_metadata(global_sa_results_dir: Path) -> None: def test_read_gsa_timeset(global_sa_results_dir: Path) -> None: time_set = read_based_uq_time_set( result_directory=global_sa_results_dir, - group_name=GLOBAL_SENSITIVITY_ANALYSIS_GROUP_NAME + group_name=GLOBAL_SENSITIVITY_ANALYSIS_GROUP_NAME, ) assert numpy.all(time_set == [0, 1, 2, 3, 4, 5, 6, 7]) @@ -373,7 +378,9 @@ def test_read_incomplete_gsa_metadata(global_sa_results_dir: Path) -> None: """ creating_file = global_sa_results_dir / "result.creating" creating_file.touch() - gsa_time_set = read_based_uq_time_set(global_sa_results_dir, GLOBAL_SENSITIVITY_ANALYSIS_GROUP_NAME) + gsa_time_set = read_based_uq_time_set( + global_sa_results_dir, GLOBAL_SENSITIVITY_ANALYSIS_GROUP_NAME + ) assert gsa_time_set is None gsa_meta_data = read_global_sensitivity_analysis_meta_data(global_sa_results_dir) assert gsa_meta_data.items == {} @@ -508,30 +515,83 @@ def test_read_history_matching_result_data( with pytest.raises(ValueError, match="type `foobar` not supported"): read_history_matching_result(metadata, "foobar") # type: ignore -def test_read_uncertainty_propagation_results(datadir: Path, up_results_dir: Path) -> None: - empty_metadata = read_uncertainty_propagation_analyses_meta_data(result_directory=datadir) +def test_read_uncertainty_propagation_results( + datadir: Path, up_results_dir: Path +) -> None: + empty_metadata = read_uncertainty_propagation_analyses_meta_data( + result_directory=datadir + ) assert empty_metadata.items == {} - result = read_uncertainty_propagation_results(metadata=empty_metadata,results_key='absolute_pressure@trend_id_1') + result = read_uncertainty_propagation_results( + metadata=empty_metadata, results_key="absolute_pressure@trend_id_1" + ) assert result is None - metadata = read_uncertainty_propagation_analyses_meta_data(result_directory=up_results_dir) - assert list(metadata.items.keys()) == ['temperature@trend_id_1', 'absolute_pressure@trend_id_1'] + metadata = read_uncertainty_propagation_analyses_meta_data( + result_directory=up_results_dir + ) + assert list(metadata.items.keys()) == [ + "temperature@trend_id_1", + "absolute_pressure@trend_id_1", + ] - assert metadata.items['temperature@trend_id_1'].result_index == 0 - assert metadata.items['temperature@trend_id_1'].sample_indexes == [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4]] + assert metadata.items["temperature@trend_id_1"].result_index == 0 + assert metadata.items["temperature@trend_id_1"].sample_indexes == [ + [0, 0], + [0, 1], + [0, 2], + [0, 3], + [0, 4], + ] - assert metadata.items['absolute_pressure@trend_id_1'].result_index == 1 - assert metadata.items['absolute_pressure@trend_id_1'].sample_indexes == [[1, 0], [1, 1], [1, 2], [1, 3], [1, 4]] + assert metadata.items["absolute_pressure@trend_id_1"].result_index == 1 + assert metadata.items["absolute_pressure@trend_id_1"].sample_indexes == [ + [1, 0], + [1, 1], + [1, 2], + [1, 3], + [1, 4], + ] - result = read_uncertainty_propagation_results(metadata=metadata,results_key='temperature@trend_id_1') - assert np.all(result.realization_output[0] == np.array([0.1,0.2,0.3,0.4,0.5,0.6,0.7],dtype=np.float32)) - assert np.all(result.realization_output[-1] == np.array([4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7], dtype=np.float32)) - assert np.all(result.mean_result == np.array([2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7], dtype=np.float32)) - assert np.allclose(result.std_result, np.array([1.41, 1.41, 1.41, 1.41, 1.41, 1.41, 1.41], dtype=np.float32), rtol=0.01) + result = read_uncertainty_propagation_results( + metadata=metadata, results_key="temperature@trend_id_1" + ) + assert np.all( + result.realization_output[0] + == np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7], dtype=np.float32) + ) + assert np.all( + result.realization_output[-1] + == np.array([4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7], dtype=np.float32) + ) + assert np.all( + result.mean_result + == np.array([2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7], dtype=np.float32) + ) + assert np.allclose( + result.std_result, + np.array([1.41, 1.41, 1.41, 1.41, 1.41, 1.41, 1.41], dtype=np.float32), + rtol=0.01, + ) - result = read_uncertainty_propagation_results(metadata=metadata,results_key='absolute_pressure@trend_id_1') - assert np.all(result.realization_output[0] == np.array([10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7], dtype=np.float32)) - assert np.all(result.realization_output[-1] == np.array([14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7], dtype=np.float32)) - assert np.all(result.mean_result == np.array([12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7], dtype=np.float32)) - assert np.allclose(result.std_result,np.array([1.414, 1.414, 1.414, 1.414, 1.414, 1.414, 1.414], dtype=np.float32), rtol=0.001) + result = read_uncertainty_propagation_results( + metadata=metadata, results_key="absolute_pressure@trend_id_1" + ) + assert np.all( + result.realization_output[0] + == np.array([10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 10.7], dtype=np.float32) + ) + assert np.all( + result.realization_output[-1] + == np.array([14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 14.7], dtype=np.float32) + ) + assert np.all( + result.mean_result + == np.array([12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7], dtype=np.float32) + ) + assert np.allclose( + result.std_result, + np.array([1.414, 1.414, 1.414, 1.414, 1.414, 1.414, 1.414], dtype=np.float32), + rtol=0.001, + )