Added functionality in Completion class to adjust I and J to wellHead value if they have been defaulted (i.e. have value -1). This is unfortunate because we loose quite a lot of const correctness.

This commit is contained in:
Joakim Hove
2014-03-27 15:41:19 +01:00
parent a422a4929b
commit 5785d088ea
8 changed files with 68 additions and 32 deletions

View File

@@ -43,13 +43,13 @@ BOOST_AUTO_TEST_CASE( CreateCompletionsFromRecord ) {
DeckRecordConstPtr line0 = COMPDAT1->getRecord(0);
DeckRecordConstPtr line1 = COMPDAT1->getRecord(1);
std::pair< std::string , std::vector<CompletionConstPtr> > completionsList = Completion::completionsFromCOMPDATRecord( line0 );
std::pair< std::string , std::vector<CompletionPtr> > completionsList = Completion::completionsFromCOMPDATRecord( line0 );
BOOST_CHECK_EQUAL( "W_1" , completionsList.first );
BOOST_CHECK_EQUAL( 3U , completionsList.second.size() );
{
CompletionConstPtr completion0 = completionsList.second[0];
CompletionConstPtr completion2 = completionsList.second[2];
CompletionPtr completion0 = completionsList.second[0];
CompletionPtr completion2 = completionsList.second[2];
BOOST_CHECK_EQUAL( 29 , completion0->getI() );
BOOST_CHECK_EQUAL( 36 , completion0->getJ() );
@@ -77,7 +77,7 @@ BOOST_AUTO_TEST_CASE( CreateCompletionsFromKeyword ) {
DeckPtr deck = parser->parseFile(scheduleFile.string());
DeckKeywordConstPtr COMPDAT1 = deck->getKeyword("COMPDAT" , 1);
std::map< std::string , std::vector<CompletionConstPtr> > completions = Completion::completionsFromCOMPDATKeyword( COMPDAT1 );
std::map< std::string , std::vector<CompletionPtr> > completions = Completion::completionsFromCOMPDATKeyword( COMPDAT1 );
BOOST_CHECK_EQUAL( 3U , completions.size() );
@@ -89,7 +89,7 @@ BOOST_AUTO_TEST_CASE( CreateCompletionsFromKeyword ) {
BOOST_CHECK_EQUAL( 5U , completions.find("W_2")->second.size() );
BOOST_CHECK_EQUAL( 5U , completions.find("W_3")->second.size() );
std::vector<CompletionConstPtr> W_3Completions = completions.find("W_3")->second;
std::vector<CompletionPtr> W_3Completions = completions.find("W_3")->second;
CompletionConstPtr completion0 = W_3Completions[0];
CompletionConstPtr completion4 = W_3Completions[4];

View File

@@ -537,3 +537,28 @@ BOOST_AUTO_TEST_CASE(WellTestWGRUPCONWellPropertiesSet) {
BOOST_CHECK_EQUAL(0.5, well3->getGuideRateScalingFactor(0));
}
BOOST_AUTO_TEST_CASE(TestDefaultedCOMPDATIJ) {
ParserPtr parser(new Parser());
boost::filesystem::path scheduleFile("testdata/integration_tests/SCHEDULE/SCHEDULE_COMPDAT_DEFAULT_IJ");
const char * deckString = "\n\
START\n\
\n\
10 MAI 2007 /\n\
\n\
SCHEDULE\n\
WELSPECS \n\
'W1' 'OP' 11 21 3.33 'OIL' 7* / \n\
/\n\
COMPDAT \n\
'W1' 2* 1 1 'OPEN' 1* 32.948 0.311 3047.839 2* 'X' 22.100 /\n\
/\n";
DeckPtr deck = parser->parseString(deckString);
ScheduleConstPtr sched(new Schedule(deck));
WellConstPtr well = sched->getWell("W1");
CompletionSetConstPtr completions = well->getCompletions(0);
BOOST_CHECK_EQUAL( 10 , completions->get(0)->getI() );
BOOST_CHECK_EQUAL( 20 , completions->get(0)->getJ() );
}