From c48451a532908d102fbb30140e50142c1691b1c6 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Fri, 25 Mar 2022 18:34:24 +0100 Subject: [PATCH] Summary Import : Support cases with one file per time step (#8493) --- .../Application/RiaEclipseFileNameTools.cpp | 48 ------------------- .../Application/RiaEclipseFileNameTools.h | 5 -- .../Summary/RimSummaryCaseMainCollection.cpp | 8 ++-- .../Python/rips/tests/test_summary_cases.py | 31 ++++++++++++ 4 files changed, 34 insertions(+), 58 deletions(-) diff --git a/ApplicationLibCode/Application/RiaEclipseFileNameTools.cpp b/ApplicationLibCode/Application/RiaEclipseFileNameTools.cpp index c2fcb91d61..048e9774f9 100644 --- a/ApplicationLibCode/Application/RiaEclipseFileNameTools.cpp +++ b/ApplicationLibCode/Application/RiaEclipseFileNameTools.cpp @@ -77,54 +77,6 @@ QString RiaEclipseFileNameTools::findRelatedDataFile() return relatedFilePath( EclipseFileType::ECLIPSE_DATA ); } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -bool RiaEclipseFileNameTools::isProjectFile( const QString& fileName ) -{ - return hasMatchingSuffix( fileName, EclipseFileType::RESINSIGHT_PROJECT ); -} - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -bool RiaEclipseFileNameTools::isGridFile( const QString& fileName ) -{ - if ( hasMatchingSuffix( fileName, EclipseFileType::ECLIPSE_EGRID ) ) - { - return true; - } - - return hasMatchingSuffix( fileName, EclipseFileType::ECLIPSE_GRID ); -} - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -bool RiaEclipseFileNameTools::isSummarySpecFile( const QString& fileName ) -{ - return hasMatchingSuffix( fileName, EclipseFileType::ECLIPSE_SMSPEC ); -} - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -bool RiaEclipseFileNameTools::isSummaryDataFilePresent( const QString& smspecFileName ) -{ - QFileInfo fi( smspecFileName ); - { - QString candidateFileName = fi.absolutePath() + '/' + fi.baseName() + ".UNSMRY"; - if ( QFile::exists( candidateFileName ) ) return true; - } - - { - QString candidateFileName = fi.absolutePath() + '/' + fi.baseName() + ".FUNSMRY"; - if ( QFile::exists( candidateFileName ) ) return true; - } - - return false; -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationLibCode/Application/RiaEclipseFileNameTools.h b/ApplicationLibCode/Application/RiaEclipseFileNameTools.h index 17f8faaa62..745a3d3ad0 100644 --- a/ApplicationLibCode/Application/RiaEclipseFileNameTools.h +++ b/ApplicationLibCode/Application/RiaEclipseFileNameTools.h @@ -49,11 +49,6 @@ public: QString findRelatedSummarySpecFile(); QString findRelatedDataFile(); - static bool isProjectFile( const QString& fileName ); - static bool isGridFile( const QString& fileName ); - static bool isSummarySpecFile( const QString& fileName ); - static bool isSummaryDataFilePresent( const QString& smspecFileName ); - private: QString relatedFilePath( EclipseFileType fileType ) const; diff --git a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp index 538c6d6dc9..622a7b82a8 100644 --- a/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp +++ b/ApplicationLibCode/ProjectDataModel/Summary/RimSummaryCaseMainCollection.cpp @@ -625,14 +625,12 @@ std::vector RimSummaryCaseMainCollection::createSummaryCasesFro { const QString& smspecFileName = fileInfo.summaryFileName(); - bool isEsmryFile = smspecFileName.endsWith( "ESMRY" ); - bool foundDataFile = RiaEclipseFileNameTools::isSummaryDataFilePresent( smspecFileName ); - if ( foundDataFile || isEsmryFile ) + if ( !smspecFileName.isEmpty() ) { - RimFileSummaryCase* newSumCase = new RimFileSummaryCase(); + auto newSumCase = new RimFileSummaryCase(); newSumCase->setIncludeRestartFiles( fileInfo.includeRestartFiles() ); - newSumCase->setSummaryHeaderFileName( fileInfo.summaryFileName() ); + newSumCase->setSummaryHeaderFileName( smspecFileName ); newSumCase->updateOptionSensitivity(); project->assignCaseIdToSummaryCase( newSumCase ); diff --git a/GrpcInterface/Python/rips/tests/test_summary_cases.py b/GrpcInterface/Python/rips/tests/test_summary_cases.py index 38e31e78d3..fdd5c349f9 100644 --- a/GrpcInterface/Python/rips/tests/test_summary_cases.py +++ b/GrpcInterface/Python/rips/tests/test_summary_cases.py @@ -108,3 +108,34 @@ def test_summary_no_unsmry(rips_instance, initialize_test): summary_case = rips_instance.project.import_summary_case(temp_path) assert summary_case is None + +def test_summary_set_values(rips_instance, initialize_test): + casePath = dataroot.PATH + "/flow_diagnostics_test/SIMPLE_SUMMARY2.SMSPEC" + summary_case = rips_instance.project.import_summary_case(casePath) + assert summary_case.id == 1 + + addresses = summary_case.available_addresses() + original_keyword_count = len(addresses.values) + + summary_data = summary_case.summary_vector_values("FOPT") + assert len(summary_data.values) == 60 + + summary_case.set_summary_values("FOPT_1", "", summary_data.values) + generated_summary_data = summary_case.summary_vector_values("FOPT_1") + assert len(generated_summary_data.values) == 60 + + addresses = summary_case.available_addresses() + current_keyword_count = len(addresses.values) + assert current_keyword_count == original_keyword_count + 1 + + # Using existing keyword will overwrite existing data + summary_case.set_summary_values("FOPT_1", "", summary_data.values) + addresses = summary_case.available_addresses() + current_keyword_count = len(addresses.values) + assert current_keyword_count == original_keyword_count + 1 + + # invalid value count, check that available addresses are unchanged + summary_case.set_summary_values("FOPT_2", "", []) + addresses = summary_case.available_addresses() + current_keyword_count = len(addresses.values) + assert current_keyword_count == original_keyword_count + 1