#3213 Observed data import. Handle custom vector naming. Fix failing unit tests

This commit is contained in:
Bjørn Erik Jensen 2018-08-30 13:30:54 +02:00
parent 2e8bf5aafe
commit 37961717e3
5 changed files with 73 additions and 35 deletions

View File

@ -299,6 +299,7 @@ RifEclipseSummaryAddress::SummaryVarCategory RifEclipseSummaryAddress::identifyC
if (firstTwoLetters == "LC") return SUMMARY_WELL_COMPLETION_LGR;
if (firstTwoLetters == "LW") return SUMMARY_WELL_LGR;
if (quantityName[0] == 'N') return SUMMARY_NETWORK;
return SUMMARY_INVALID;
}

View File

@ -351,7 +351,7 @@ TEST(RifColumnBasedRsmspecParserTest, TestTableValues)
out << "---------------------------------------\n";
out << "SUMMARY OF RUN SIP USER FILE DATA VECTORS\n";
out << "---------------------------------------\n";
out << "TIME WLVP WPLT WTEST WFOFF WBUP\n";
out << "TIME WOPR WOPRA WOPRB WOPTA WOPTB\n";
out << "DAYS BARSA BARSA BARSA BARSA BARSA\n";
out << "\n";
out << " P-15P P-15P P-15P P-15P P-15P \n";
@ -377,7 +377,7 @@ TEST(RifColumnBasedRsmspecParserTest, TestTableValues)
out << "---------------------------------------\n";
out << "SUMMARY OF RUN SIP USER FILE DATA VECTORS\n";
out << "---------------------------------------\n";
out << "TIME WLVP WPLT WTEST WFOFF WBUP\n";
out << "TIME WOPR WOPRA WOPRB WOPTA WOPTB\n";
out << "DAYS BARSA BARSA BARSA BARSA BARSA\n";
out << "\n";
out << " P-9P P-9P P-9P P-9P P-9P \n";
@ -404,7 +404,7 @@ TEST(RifColumnBasedRsmspecParserTest, TestTableValues)
EXPECT_EQ(3.0, tables.at(1).columnInfos().at(0).values.at(2));
EXPECT_EQ(370.0, tables.at(1).columnInfos().at(3).values.at(3));
EXPECT_EQ("WLVP", tables.at(0).columnInfos().at(1).summaryAddress.quantityName());
EXPECT_EQ("WOPR", tables.at(0).columnInfos().at(1).summaryAddress.quantityName());
EXPECT_EQ("P-15P", tables.at(0).columnInfos().at(5).summaryAddress.wellName());
EXPECT_EQ("P-9P", tables.at(1).columnInfos().at(1).summaryAddress.wellName());
EXPECT_NE("P-9P", tables.at(1).columnInfos().at(0).summaryAddress.wellName());
@ -412,7 +412,7 @@ TEST(RifColumnBasedRsmspecParserTest, TestTableValues)
RifColumnBasedUserData userData;
userData.parse(data);
RifEclipseSummaryAddress adr(RifEclipseSummaryAddress::SUMMARY_WELL, "WLVP", -1, -1, "", "P-15P", -1, "", -1, -1, -1, -1, false);
RifEclipseSummaryAddress adr(RifEclipseSummaryAddress::SUMMARY_WELL, "WOPR", -1, -1, "", "P-15P", -1, "", -1, -1, -1, -1, false);
QDateTime firstTimeStep = RiaQDateTimeTools::addDays(RiaQDateTimeTools::epoch(), 1.0);
auto timeSteps = userData.timeSteps(adr);
@ -434,7 +434,7 @@ TEST(RifColumnBasedRsmspecParserTest, TestTableMissingWellNames)
out << "---------------------------------------\n";
out << "SUMMARY OF RUN SIP USER FILE DATA VECTORS\n";
out << "---------------------------------------\n";
out << "TIME WLVP WPLT WTEST WFOFF WBUP\n";
out << "TIME WOPR WOPRA WOPRB WOPTA WOPTB\n";
out << "DAYS BARSA BARSA BARSA BARSA BARSA\n";
out << "\n";
out << " 1 0.0 0.0 0.0 0.0 0.0\n";
@ -680,10 +680,10 @@ TEST(RifKeywordBasedRsmspecParserTest, TestShutins)
out << "-- Created running the command shutin_pressures\n";
out << "\n";
out << "PAGE 1\n";
out << "ORIGIN OP-1_WBP9L\n";
out << "ORIGIN OP-1_WOPR\n";
out << "STARTDATE 01 01 2004 -- DD MM YYYY\n";
out << "\n";
out << "TIME YEARX WBP9L\n";
out << "TIME YEARX WOPR\n";
out << "DAYS YEARS BARSA\n";
out << "1 1 1\n";
out << " OP-1\n";
@ -720,7 +720,7 @@ TEST(RifKeywordBasedRsmspecParserTest, TestShutins)
EXPECT_EQ(2014.39, tables.at(0).columnInfos().at(1).values[2]);
EXPECT_EQ("WBP9L", tables.at(0).columnInfos().at(2).summaryAddress.quantityName());
EXPECT_EQ("WOPR", tables.at(0).columnInfos().at(2).summaryAddress.quantityName());
EXPECT_EQ("OP-1", tables.at(0).columnInfos().at(2).summaryAddress.wellName());
EXPECT_NE("OP-1", tables.at(0).columnInfos().at(1).summaryAddress.wellName());
@ -739,10 +739,10 @@ TEST(RifKeywordBasedRsmspecParserTest, TestTimeSteps)
out << "-- Created running the command shutin_pressures\n";
out << "\n";
out << "PAGE 1\n";
out << "ORIGIN OP-1_WBP9L\n";
out << "ORIGIN OP-1_WOPR\n";
out << "STARTDATE 01 01 2004 -- DD MM YYYY\n";
out << "\n";
out << "TIME YEARX WBP9L\n";
out << "TIME YEARX WOPR\n";
out << "DAYS YEARS BARSA\n";
out << "1 1 1\n";
out << " OP-1\n";
@ -768,7 +768,7 @@ TEST(RifKeywordBasedRsmspecParserTest, TestTimeSteps)
out << "3493 2015.55 219.0 -- Measured\n";
out << "\n";
std::string quantityName = "WBP9L";
std::string quantityName = "WOPR";
std::vector< std::string > headerColumn;
headerColumn.push_back("OP-1");

View File

@ -21,13 +21,13 @@ TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_Field)
TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_Aquifer)
{
std::string addrString = "AAQU:456";
std::string addrString = "AAQR:456";
RifEclipseSummaryAddress addr = RifEclipseSummaryAddress::fromEclipseTextAddress(addrString);
EXPECT_TRUE(addr.isValid());
EXPECT_EQ(RifEclipseSummaryAddress::SUMMARY_AQUIFER, addr.category());
EXPECT_EQ("AAQU", addr.quantityName());
EXPECT_EQ("AAQR", addr.quantityName());
EXPECT_EQ(456, addr.aquiferNumber());
EXPECT_FALSE(addr.isErrorResult());
}
@ -46,38 +46,38 @@ TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_Network)
TEST(RifEclipseSummaryAddressTest, DISABLED_TestEclipseAddressParsing_Misc)
{
std::string addrString = "MISC";
std::string addrString = "CPU";
RifEclipseSummaryAddress addr = RifEclipseSummaryAddress::fromEclipseTextAddress(addrString);
EXPECT_TRUE(addr.isValid());
EXPECT_EQ(RifEclipseSummaryAddress::SUMMARY_MISC, addr.category());
EXPECT_EQ("NETW", addr.quantityName());
EXPECT_EQ("CPU", addr.quantityName());
EXPECT_FALSE(addr.isErrorResult());
}
TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_Region)
{
std::string addrString = "REGI:7081";
std::string addrString = "RPR:7081";
RifEclipseSummaryAddress addr = RifEclipseSummaryAddress::fromEclipseTextAddress(addrString);
EXPECT_TRUE(addr.isValid());
EXPECT_EQ(RifEclipseSummaryAddress::SUMMARY_REGION, addr.category());
EXPECT_EQ("REGI", addr.quantityName());
EXPECT_EQ("RPR", addr.quantityName());
EXPECT_EQ(7081, addr.regionNumber());
EXPECT_FALSE(addr.isErrorResult());
}
TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_RegionToRegion)
{
std::string addrString = "REFR:7081-8001";
std::string addrString = "ROFR:7081-8001";
RifEclipseSummaryAddress addr = RifEclipseSummaryAddress::fromEclipseTextAddress(addrString);
EXPECT_TRUE(addr.isValid());
EXPECT_EQ(RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION, addr.category());
EXPECT_EQ("REFR", addr.quantityName());
EXPECT_EQ("ROFR", addr.quantityName());
EXPECT_EQ(7081, addr.regionNumber());
EXPECT_EQ(8001, addr.regionNumber2());
EXPECT_FALSE(addr.isErrorResult());
@ -85,39 +85,39 @@ TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_RegionToRegion)
TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_WellGroup)
{
std::string addrString = "GGRP:WELLS1";
std::string addrString = "GOPR:WELLS1";
RifEclipseSummaryAddress addr = RifEclipseSummaryAddress::fromEclipseTextAddress(addrString);
EXPECT_TRUE(addr.isValid());
EXPECT_EQ(RifEclipseSummaryAddress::SUMMARY_WELL_GROUP, addr.category());
EXPECT_EQ("GGRP", addr.quantityName());
EXPECT_EQ("GOPR", addr.quantityName());
EXPECT_EQ("WELLS1", addr.wellGroupName());
EXPECT_FALSE(addr.isErrorResult());
}
TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_Well)
{
std::string addrString = "WGAS:B-2H";
std::string addrString = "WOPR:B-2H";
RifEclipseSummaryAddress addr = RifEclipseSummaryAddress::fromEclipseTextAddress(addrString);
EXPECT_TRUE(addr.isValid());
EXPECT_EQ(RifEclipseSummaryAddress::SUMMARY_WELL, addr.category());
EXPECT_EQ("WGAS", addr.quantityName());
EXPECT_EQ("WOPR", addr.quantityName());
EXPECT_EQ("B-2H", addr.wellName());
EXPECT_FALSE(addr.isErrorResult());
}
TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_WellCompletion)
{
std::string addrString = "CDATA:B-1H:15,13,14";
std::string addrString = "COFRL:B-1H:15,13,14";
RifEclipseSummaryAddress addr = RifEclipseSummaryAddress::fromEclipseTextAddress(addrString);
EXPECT_TRUE(addr.isValid());
EXPECT_EQ(RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION, addr.category());
EXPECT_EQ("CDATA", addr.quantityName());
EXPECT_EQ("COFRL", addr.quantityName());
EXPECT_EQ("B-1H", addr.wellName());
EXPECT_EQ(15, addr.cellI());
EXPECT_EQ(13, addr.cellJ());
@ -158,13 +158,13 @@ TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_WellCompletionLgr)
TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_WellSegment)
{
std::string addrString = "SGMT:B-5H:32";
std::string addrString = "SOFR:B-5H:32";
RifEclipseSummaryAddress addr = RifEclipseSummaryAddress::fromEclipseTextAddress(addrString);
EXPECT_TRUE(addr.isValid());
EXPECT_EQ(RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT, addr.category());
EXPECT_EQ("SGMT", addr.quantityName());
EXPECT_EQ("SOFR", addr.quantityName());
EXPECT_EQ("B-5H", addr.wellName());
EXPECT_EQ(32, addr.wellSegmentNumber());
EXPECT_FALSE(addr.isErrorResult());
@ -172,13 +172,13 @@ TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_WellSegment)
TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_Block)
{
std::string addrString = "BLOC:123,122,121";
std::string addrString = "BPR:123,122,121";
RifEclipseSummaryAddress addr = RifEclipseSummaryAddress::fromEclipseTextAddress(addrString);
EXPECT_TRUE(addr.isValid());
EXPECT_EQ(RifEclipseSummaryAddress::SUMMARY_BLOCK, addr.category());
EXPECT_EQ("BLOC", addr.quantityName());
EXPECT_EQ("BPR", addr.quantityName());
EXPECT_EQ(123, addr.cellI());
EXPECT_EQ(122, addr.cellJ());
EXPECT_EQ(121, addr.cellK());
@ -215,13 +215,13 @@ TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_Imported)
TEST(RifEclipseSummaryAddressTest, TestEclipseAddressParsing_ErrorResult1)
{
std::string addrString = "ER:AAQU:456";
std::string addrString = "ER:AAQR:456";
RifEclipseSummaryAddress addr = RifEclipseSummaryAddress::fromEclipseTextAddress(addrString);
EXPECT_TRUE(addr.isValid());
EXPECT_EQ(RifEclipseSummaryAddress::SUMMARY_AQUIFER, addr.category());
EXPECT_EQ("AAQU", addr.quantityName());
EXPECT_EQ("AAQR", addr.quantityName());
EXPECT_EQ(456, addr.aquiferNumber());
EXPECT_TRUE(addr.isErrorResult());
}
@ -262,7 +262,7 @@ TEST(RifEclipseSummaryAddressTest, TestEclipseAddressIjkParsing)
{
{ RifEclipseSummaryAddress::INPUT_WELL_NAME, "1-BH" },
{ RifEclipseSummaryAddress::INPUT_CELL_IJK, "6, 7, 8" },
{ RifEclipseSummaryAddress::INPUT_VECTOR_NAME, "WABC" },
{ RifEclipseSummaryAddress::INPUT_VECTOR_NAME, "WOPR" },
}
);
@ -270,7 +270,7 @@ TEST(RifEclipseSummaryAddressTest, TestEclipseAddressIjkParsing)
EXPECT_TRUE(addr.isValid());
EXPECT_EQ(RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION, addr.category());
EXPECT_EQ("WABC", addr.quantityName());
EXPECT_EQ("WOPR", addr.quantityName());
EXPECT_EQ("1-BH", addr.wellName());
EXPECT_EQ(6, addr.cellI());
EXPECT_EQ(7, addr.cellJ());
@ -284,7 +284,7 @@ TEST(RifEclipseSummaryAddressTest, TestEclipseAddressRegToRegParsing)
std::map<RifEclipseSummaryAddress::SummaryIdentifierType, std::string> identifiers(
{
{ RifEclipseSummaryAddress::INPUT_REGION_2_REGION, "123 - 456" },
{ RifEclipseSummaryAddress::INPUT_VECTOR_NAME, "REFR" },
{ RifEclipseSummaryAddress::INPUT_VECTOR_NAME, "ROFR" },
}
);
@ -292,7 +292,7 @@ TEST(RifEclipseSummaryAddressTest, TestEclipseAddressRegToRegParsing)
EXPECT_TRUE(addr.isValid());
EXPECT_EQ(RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION, addr.category());
EXPECT_EQ("REFR", addr.quantityName());
EXPECT_EQ("ROFR", addr.quantityName());
EXPECT_EQ(123, addr.regionNumber());
EXPECT_EQ(456, addr.regionNumber2());
EXPECT_TRUE(!addr.isErrorResult());

View File

@ -45,3 +45,24 @@ TEST(RiuSummaryVectorDescriptionMap, TestInit)
EXPECT_TRUE(test == s);
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
TEST(RiuSummaryVectorDescriptionMap, TestCustomNaming)
{
{
std::string s("SRSFCABC");
auto test = RiuSummaryVectorDescriptionMap::instance()->vectorInfo(s);
EXPECT_TRUE(test.category == RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT);
EXPECT_TRUE(test.longName == "Reach brine concentration");
}
{
std::string s("BHD__ABC");
auto test = RiuSummaryVectorDescriptionMap::instance()->vectorLongName(s);
EXPECT_TRUE(test == "Hydraulic head");
}
}

View File

@ -41,6 +41,8 @@ RiuSummaryVectorInfo RiuSummaryVectorDescriptionMap::vectorInfo(const std::strin
}
else if (vectorName.size() > 1 && vectorName[1] == 'U')
{
// User defined vector name
std::string key = vectorName.substr(0, 2);
it = m_summaryToDescMap.find(key);
@ -50,6 +52,20 @@ RiuSummaryVectorInfo RiuSummaryVectorDescriptionMap::vectorInfo(const std::strin
return it->second;
}
}
else if (vectorName.size() > 5)
{
// Check for custom vector naming
std::string baseName = vectorName.substr(0, 5);
while (baseName.back() == '_') baseName.pop_back();
it = m_summaryToDescMap.find(baseName);
if (it != m_summaryToDescMap.end())
{
return it->second;
}
}
return RiuSummaryVectorInfo();
}