Add ParseContext argument to the RPTxxx parsing

This commit is contained in:
Joakim Hove
2018-12-20 12:27:49 +01:00
parent f5851bcb92
commit 25fbff2632
7 changed files with 75 additions and 58 deletions

View File

@@ -72,7 +72,7 @@ BOOST_AUTO_TEST_CASE(RPTSCHED_INTEGER) {
ParseContext ctx;
auto deck1 = parser.parseString( deckData1, ctx );
RestartConfig rstConfig1( deck1 );
RestartConfig rstConfig1( deck1, ctx );
BOOST_CHECK( rstConfig1.getWriteRestartFile( 0 ) );
BOOST_CHECK( !rstConfig1.getWriteRestartFile( 1 ) );
@@ -254,8 +254,9 @@ BOOST_AUTO_TEST_CASE(RPTRST_mixed_mnemonics_int_list) {
"BASIC=1\n"
"/\n";
auto deck = Parser().parseString( data, ParseContext() );
BOOST_CHECK_THROW( RestartConfig c( deck ), std::runtime_error );
ParseContext parseContext;
auto deck = Parser().parseString( data, parseContext );
BOOST_CHECK_THROW( RestartConfig c( deck, parseContext ), std::runtime_error );
}
BOOST_AUTO_TEST_CASE(RPTRST) {
@@ -327,7 +328,7 @@ BOOST_AUTO_TEST_CASE(RPTRST) {
ParseContext ctx;
auto deck1 = parser.parseString( deckData1, ctx );
RestartConfig rstConfig1( deck1 );
RestartConfig rstConfig1( deck1, ctx );
// Observe that this is true due to some undocumented guessing that
// the initial restart file should be written if a RPTRST keyword is
@@ -347,7 +348,7 @@ BOOST_AUTO_TEST_CASE(RPTRST) {
BOOST_CHECK_EQUAL( rstConfig1.getKeyword( "ALLPROPS" , 2 ) , 0);
auto deck2 = parser.parseString( deckData2, ctx );
RestartConfig rstConfig2( deck2 );
RestartConfig rstConfig2( deck2, ctx );
const auto expected2 = { "BASIC", "FLOWS", "FREQ" };
const auto kw_list2 = fun::map( fst, rstConfig2.getRestartKeywords( 2 ) );
@@ -360,7 +361,7 @@ BOOST_AUTO_TEST_CASE(RPTRST) {
BOOST_CHECK( !rstConfig2.getWriteRestartFile( 3 ) );
auto deck3 = parser.parseString( deckData3, ctx );
RestartConfig rstConfig3( deck3 );
RestartConfig rstConfig3( deck3, ctx );
BOOST_CHECK( !rstConfig3.getWriteRestartFile( 0 ) );
BOOST_CHECK( !rstConfig3.getWriteRestartFile( 1 ) );
@@ -456,7 +457,7 @@ BOOST_AUTO_TEST_CASE(RPTSCHED) {
ParseContext ctx;
auto deck1 = parser.parseString( deckData1, ctx );
RestartConfig rstConfig1( deck1 );
RestartConfig rstConfig1( deck1, ctx );
BOOST_CHECK( !rstConfig1.getWriteRestartFile( 0 ) );
BOOST_CHECK( !rstConfig1.getWriteRestartFile( 1 ) );
@@ -465,7 +466,7 @@ BOOST_AUTO_TEST_CASE(RPTSCHED) {
auto deck2 = parser.parseString( deckData2, ctx );
RestartConfig rstConfig2( deck2 );
RestartConfig rstConfig2( deck2, ctx );
BOOST_CHECK( !rstConfig2.getWriteRestartFile( 0 ) );
BOOST_CHECK( !rstConfig2.getWriteRestartFile( 1 ) );
@@ -479,7 +480,7 @@ BOOST_AUTO_TEST_CASE(RPTSCHED) {
auto deck3 = parser.parseString( deckData3, ctx );
RestartConfig rstConfig3( deck3 );
RestartConfig rstConfig3( deck3, ctx );
//Older ECLIPSE 100 data set may use integer controls instead of mnemonics
BOOST_CHECK( rstConfig3.getWriteRestartFile( 0 ) );
BOOST_CHECK( !rstConfig3.getWriteRestartFile( 1 ) );
@@ -522,7 +523,7 @@ BOOST_AUTO_TEST_CASE(RPTSCHED_and_RPTRST) {
ParseContext ctx;
auto deck = parser.parseString( deckData, ctx );
RestartConfig rstConfig( deck );
RestartConfig rstConfig( deck, ctx );
BOOST_CHECK( !rstConfig.getWriteRestartFile( 0 ) );
BOOST_CHECK( !rstConfig.getWriteRestartFile( 1 ) );
@@ -551,8 +552,9 @@ BOOST_AUTO_TEST_CASE(NO_BASIC) {
"RPTSCHED\n"
"/\n";
auto deck = Parser().parseString( data, ParseContext() );
RestartConfig ioConfig( deck );
ParseContext parseContext;
auto deck = Parser().parseString( data, parseContext );
RestartConfig ioConfig( deck, parseContext );
for( size_t ts = 0; ts < 4; ++ts )
BOOST_CHECK( !ioConfig.getWriteRestartFile( ts ) );
@@ -582,8 +584,9 @@ BOOST_AUTO_TEST_CASE(BASIC_EQ_1) {
"BASIC=1\n"
"/\n";
auto deck = Parser().parseString( data, ParseContext() );
RestartConfig ioConfig( deck );
ParseContext parseContext;
auto deck = Parser().parseString( data, parseContext );
RestartConfig ioConfig( deck, parseContext );
for( size_t ts = 0; ts < 3; ++ts )
BOOST_CHECK( !ioConfig.getWriteRestartFile( ts ) );
@@ -617,8 +620,9 @@ BOOST_AUTO_TEST_CASE(BASIC_EQ_3) {
" 6 JAN 1982 14:56:45.123 /\n" // timestep 11
"/\n";
auto deck = Parser().parseString( data, ParseContext() );
RestartConfig ioConfig( deck );
ParseContext parseContext;
auto deck = Parser().parseString( data, parseContext );
RestartConfig ioConfig( deck, parseContext );
const size_t freq = 3;
@@ -654,8 +658,9 @@ BOOST_AUTO_TEST_CASE(BASIC_EQ_4) {
" 6 JAN 1983 14:56:45.123 /\n" // timestep 12
"/\n";
auto deck = Parser().parseString( data, ParseContext() );
RestartConfig ioConfig( deck );
ParseContext parseContext;
auto deck = Parser().parseString( data, parseContext );
RestartConfig ioConfig( deck, parseContext );
/* BASIC=4, restart file is written at the first report step of each year.
*/
@@ -692,8 +697,9 @@ BOOST_AUTO_TEST_CASE(BASIC_EQ_4_FREQ_2) {
" 1 JAN 1986 /\n"
"/\n";
auto deck = Parser().parseString( data, ParseContext() );
RestartConfig ioConfig( deck );
ParseContext parseContext;
auto deck = Parser().parseString( data, parseContext );
RestartConfig ioConfig( deck, parseContext );
/* BASIC=4, restart file is written at the first report step of each year.
* Optionally, if the mnemonic FREQ is set >1 the restart is written only
@@ -729,13 +735,14 @@ BOOST_AUTO_TEST_CASE(BASIC_EQ_5) {
" 1 JAN 1982 /\n"
" 2 JAN 1982 /\n"
" 1 FEB 1982 /\n" // write
" 1 MAR 1982 /\n"
" 1 MAR 1982 /\n"
" 1 APR 1983 /\n" //write
" 2 JUN 1983 /\n"
"/\n";
auto deck = Parser().parseString( data, ParseContext() );
RestartConfig ioConfig( deck );
ParseContext parseContext;
auto deck = Parser().parseString( data, parseContext );
RestartConfig ioConfig( deck, parseContext );
/* BASIC=5, restart file is written at the first report step of each month.
*/
@@ -772,8 +779,9 @@ BOOST_AUTO_TEST_CASE(BASIC_EQ_0) {
" 2 JUN 1983 /\n"
"/\n";
auto deck = Parser().parseString( data, ParseContext() );
RestartConfig ioConfig( deck );
ParseContext parseContext;
auto deck = Parser().parseString( data, parseContext) ;
RestartConfig ioConfig( deck, parseContext );
/* RESTART=0, no restart file is written
*/
@@ -808,8 +816,9 @@ BOOST_AUTO_TEST_CASE(RESTART_EQ_0) {
" 2 JUN 1983 /\n"
"/\n";
auto deck = Parser().parseString( data, ParseContext() );
RestartConfig ioConfig( deck );
ParseContext parseContext;
auto deck = Parser().parseString( data, parseContext);
RestartConfig ioConfig( deck, parseContext );
/* RESTART=0, no restart file is written
*/
@@ -845,11 +854,12 @@ BOOST_AUTO_TEST_CASE(RESTART_BASIC_GT_2) {
" 26 MAY 1984 /\n"
" 26 MAY 1985 /\n" // write
" 27 MAY 1985 /\n"
" 1 JAN 1986 /\n"
" 1 JAN 1986 /\n"
"/\n";
auto deck = Parser().parseString( data, ParseContext() );
RestartConfig ioConfig( deck );
ParseContext parseContext;
auto deck = Parser().parseString( data, parseContext );
RestartConfig ioConfig( deck, parseContext );
for( size_t ts : { 1, 2, 3, 4, 5, 7, 8, 10, 11 } )
BOOST_CHECK( !ioConfig.getWriteRestartFile( ts ) );
@@ -889,8 +899,9 @@ BOOST_AUTO_TEST_CASE(RESTART_BASIC_LEQ_2) {
" 1 JAN 1986 /\n"
"/\n";
auto deck = Parser().parseString( data, ParseContext() );
RestartConfig ioConfig( deck );
ParseContext parseContext;
auto deck = Parser().parseString( data, parseContext );
RestartConfig ioConfig( deck, parseContext );
BOOST_CHECK( ioConfig.getWriteRestartFile( 1 ) );
for( size_t ts = 2; ts < 11; ++ts )
@@ -924,9 +935,9 @@ BOOST_AUTO_TEST_CASE(RESTART_SAVE) {
"SAVE \n"
"TSTEP \n"
" 1 /\n";
auto deck = Parser().parseString( data, ParseContext() );
RestartConfig ioConfig( deck );
ParseContext parseContext;
auto deck = Parser().parseString( data, parseContext );
RestartConfig ioConfig( deck, parseContext );
for( size_t ts = 1; ts < 11; ++ts )
BOOST_CHECK( !ioConfig.getWriteRestartFile( ts ) );