#2434 Eclipse input property: fix import for keywords without data

Keywords without data does not have a trailing '/'.
This commit is contained in:
Kristian Bendiksen 2022-05-25 13:55:13 +02:00 committed by Magne Sjaastad
parent a47edd4fa6
commit 53af120f39
2 changed files with 37 additions and 0 deletions

View File

@ -88,6 +88,11 @@ std::pair<std::string, std::vector<float>>
{
std::vector<float> values;
auto isKeywordWithoutData = []( const std::string& keyword ) {
std::vector<std::string> keywords = { "ECHO", "NOECHO" };
return std::find( keywords.begin(), keywords.end(), keyword ) != keywords.end();
};
const auto commentChar = '-';
const auto commentString = "--";
@ -133,7 +138,9 @@ std::pair<std::string, std::vector<float>>
{
keywordName = line;
if ( keywordName == "FAULTS" ) isFaultKeyword = true;
if ( isKeywordWithoutData( keywordName ) ) isEndTokenKeywordRead = true;
}
continue;
}

View File

@ -204,3 +204,33 @@ TEST( RifEclipseTextFileReader, ValueMultiplier )
EXPECT_FLOAT_EQ( 0.5f, firstKeyword.values[2] );
EXPECT_FLOAT_EQ( 12345.12f, firstKeyword.values[3] );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
TEST( RifEclipseTextFileReader, KeywordsWithoutValue )
{
std::string fileContent = "NOECHO\n"
"SWAT\n"
"1.0 2.0 3.0\n"
"/\n"
"SOIL\n"
"6.0 7.0 8.0 9.0\n"
"/\n";
auto keywordDataItems = RifEclipseTextFileReader::parseStringData( fileContent );
EXPECT_EQ( 3u, keywordDataItems.size() );
auto noEchoKeyword = keywordDataItems[0];
EXPECT_EQ( 0u, noEchoKeyword.values.size() );
auto swatKeyword = keywordDataItems[1];
EXPECT_EQ( 3u, swatKeyword.values.size() );
auto soilKeyword = keywordDataItems[2];
EXPECT_EQ( 4u, soilKeyword.values.size() );
EXPECT_FLOAT_EQ( 1.0f, swatKeyword.values[0] );
EXPECT_FLOAT_EQ( 6.0f, soilKeyword.values[0] );
}