added unit tests and modified input data accordingly

This commit is contained in:
Jostein Alvestad 2021-08-25 14:15:13 +02:00
parent f3fbd44b4b
commit 86a85b5b24
3 changed files with 79 additions and 38 deletions

View File

@ -149,8 +149,8 @@ const std::map<cmp_enum, int> cmpToIndex = {
iAct[0] = 0;
//item [1]: The number of lines of schedule data including ENDACTIO
iAct[1] = actx.keyword_strings().size();
//item [2]: is the number of times an action has been triggered
iAct[2] = action_state.run_count(actx);
//item [2]: is the number of times an action has been triggered plus 1
iAct[2] = action_state.run_count(actx) + 1;
//item [3]: is unknown, (=7)
iAct[3] = 7;
//item [4]: is unknown, (=0)

View File

@ -79,8 +79,8 @@ ACTDIMS
--
-- ----------------------------------------------------
-- Input and output files format
FMTIN
FMTOUT
--FMTIN
--FMTOUT
UNIFIN
UNIFOUT
@ -330,6 +330,11 @@ WUPR3
SCHEDULE
TUNING
1* 1. /
/
/
GRUPTREE
'UPPER' 'TEST' /
'LOWER' 'TEST' /
@ -408,10 +413,10 @@ GUIDERAT
--start files/actionxprod.tmpl
ACTIONX
ACT01 10 /
WWPR 'OP*' > 17 OR /
ACT01 10 0.345 /
WWPR 'OP*' > 170000 OR /
GMWPR 'TEST' > 14 AND /
DAY > 3 /
DAY > 1113. /
/
WELOPEN
'?' SHUT 0 0 0 2* /
@ -419,7 +424,7 @@ WELOPEN
ENDACTIO
ACTIONX
ACT02 11 /
ACT02 11 0.567 /
FMWPR > 25 AND /
WGPR 'OPL02' > GGPR 'LOWER' AND /
MNTH > NOV /
@ -438,10 +443,10 @@ DATES
/
ACTIONX
ACT03 13 /
WWPR 'OPU02' > WWPR 'OPU01' OR /
ACT03 13 0.789 /
WWPR 'OPU01' > WWPR 'OPU02' OR /
GMWPR 'TEST' > 39 AND /
YEAR > 2019 /
YEAR > 2020 /
/
WELOPEN
'?' SHUT 0 0 0 2* /
@ -450,10 +455,10 @@ ENDACTIO
--start files/actionxprod.tmpl
ACTIONX
ACT01 10 /
ACT01 10 0.543 /
FMWPR > 45 AND /
WUPR3 'OP*' > 46 OR /
MNTH > OCT /
MNTH < MAY /
/
WELOPEN
'?' SHUT 0 0 0 2* /
@ -468,7 +473,7 @@ ENDACTIO
--start files/actionxprod.tmpl
ACTIONX
ACT04 10 /
ACT04 10 0.278 /
FMWPR > 3 AND /
( WUPR3 'OP*' > 46 OR /
WOPR 'OP*' > 32 ) AND /
@ -484,7 +489,7 @@ ENDACTIO
--start files/actionxprod.tmpl
ACTIONX
ACT05 10 /
ACT05 10 0.984 /
FMWPR > 3 AND /
( WUPR3 'OP*' > 46 AND /
WOPR 'OP*' > 32 ) AND /
@ -500,7 +505,7 @@ ENDACTIO
--start files/actionxprod.tmpl
ACTIONX
ACT06 10 /
ACT06 10 0.176 /
FMWPR > 3 OR /
( WUPR3 'OP*' > 46 AND /
WOPR 'OP*' > 32 ) AND /
@ -516,7 +521,7 @@ ENDACTIO
--start files/actionxprod.tmpl
ACTIONX
ACT07 10 /
ACT07 10 0.045 /
FMWPR > 3 AND /
( WUPR3 'OP*' > 46 AND /
WOPR 'OP*' > 32 ) OR /
@ -532,7 +537,7 @@ ENDACTIO
--start files/actionxprod.tmpl
ACTIONX
ACT08 10 /
ACT08 10 0.487 /
( FMWPR > 3 AND /
WUPR3 'OP*' > 46 ) AND /
WOPR 'OP*' > 32 AND /
@ -550,7 +555,7 @@ ENDACTIO
--start files/actionxprod.tmpl
ACTIONX
ACT09 10 /
ACT09 10 0.398 /
( FMWPR > 3 OR /
WUPR3 'OP*' > 46 ) AND /
WOPR 'OP*' > 32 AND /
@ -568,7 +573,7 @@ ENDACTIO
--start files/actionxprod.tmpl
ACTIONX
ACT10 10 /
ACT10 10 4.67 /
( FMWPR > 3 AND /
WUPR3 'OP*' > 46 ) OR /
WOPR 'OP*' > 32 AND /
@ -586,7 +591,7 @@ ENDACTIO
--start files/actionxprod.tmpl
ACTIONX
ACT11 10 /
ACT11 10 3.98 /
( FMWPR > 3 AND /
WUPR3 'OP*' > 46 ) AND /
WOPR 'OP*' > 32 OR /
@ -604,7 +609,7 @@ ENDACTIO
--start files/actionxprod.tmpl
ACTIONX
ACT12 10 /
ACT12 10 7.23 /
( FMWPR > 3 AND /
WUPR3 'OP*' > 46 ) AND /
WOPR 'OP*' > 32 AND /
@ -622,7 +627,7 @@ ENDACTIO
--start files/actionxprod.tmpl
ACTIONX
ACT13 10 /
ACT13 10 8.32 /
( FMWPR > 3 AND /
WUPR3 'OP*' > 46 ) AND /
WOPR 'OP*' > 32 AND /
@ -638,6 +643,21 @@ WELOPEN
ENDACTIO
ACTIONX
ACT14 10 0.55 /
FMWPR > 1 /
/
WELOPEN
'OPL0*' SHUT 0 0 0 2* /
/
ENDACTIO
WELOPEN
'OPU02' 'OPEN' 5* /
/
WELOPEN
'OPL01' 'OPEN' 5* /
@ -648,6 +668,10 @@ DATES
/
WELOPEN
'OPL02' 'OPEN' 5* /
/
WELOPEN
'WIL01' 'OPEN' 5* /
/
@ -657,10 +681,6 @@ DATES
/
END
WELOPEN
'OPL02' 'OPEN' 5* /
/
DATES
@ -677,10 +697,6 @@ DATES
/
WELOPEN
'OPU02' 'OPEN' 5* /
/
DATES
1 'JUN' 2019 /
/

View File

@ -118,10 +118,13 @@ BOOST_AUTO_TEST_CASE (Declared_Actionx_data)
//const auto& restart = es.cfg().restart();
// Report Step 1: 2008-10-10 --> 2011-01-20
const auto rptStep = std::size_t{1};
// Report Step 3: 2008-08-22 --> 2018-10-01
const auto rptStep = std::size_t{3};
std::string outputDir = "./";
std::string baseName = "UDQ_ACTIONX_TEST1";
Opm::Action::ActionX actx_14 = Opm::Action::ActionX("ACT14", 10, 0.543, 0.);
Opm::Action::Result result = Opm::Action::Result(true);
action_state.add_run(actx_14, 100., result);
Opm::EclIO::OutputStream::Restart rstFile {
Opm::EclIO::OutputStream::ResultSet { outputDir, baseName },
rptStep,
@ -170,14 +173,14 @@ BOOST_AUTO_TEST_CASE (Declared_Actionx_data)
const auto rptStep_2 = std::size_t{1};
const auto ih_2 = Opm::RestartIO::Helpers::createInteHead(es, grid, sched,
secs_elapsed, rptStep, rptStep_2 + 1, rptStep_2);
BOOST_CHECK_EQUAL(ih_2[156] , 13);
BOOST_CHECK_EQUAL(ih_2[156] , 14);
BOOST_CHECK_EQUAL(ih_2[157] , 10);
const auto rptStep_3 = std::size_t{2};
const auto ih_3 = Opm::RestartIO::Helpers::createInteHead(es, grid, sched,
secs_elapsed, rptStep, rptStep_3 + 1, rptStep_3);
BOOST_CHECK_EQUAL(ih_3[156] , 13);
BOOST_CHECK_EQUAL(ih_3[156] , 14);
BOOST_CHECK_EQUAL(ih_3[157] , 10);
}
@ -188,7 +191,7 @@ BOOST_AUTO_TEST_CASE (Declared_Actionx_data)
--length is equal to 9*the number of ACTIONX keywords
//item [0]: is unknown, (=0)
//item [1]: The number of lines of schedule data including ENDACTIO
//item [2]: is unknown, (=1)
//item [2]: is the number of times an action has been triggered
//item [3]: is unknown, (=7)
//item [4]: is unknown, (=0)
//item [5]: The number of times the action is triggered
@ -234,6 +237,28 @@ BOOST_AUTO_TEST_CASE (Declared_Actionx_data)
BOOST_CHECK_EQUAL(iAct[start + 7] , 0);
BOOST_CHECK_EQUAL(iAct[start + 8] , 3);
start = 13*actDims[1];
BOOST_CHECK_EQUAL(iAct[start + 2] , 2);
}
{
/*
SACT
--length is equal to 9*the number of ACTIONX keywords
//item [0]: is unknown, (=0)
//item [1]: is unknown, (=0)
//item [2]: is unknown, (=0)
//item [3]: Minimum time interval between action triggers.
//item [4]: is unknown, (=0)
*/
const auto& sAct = actionxData.getSACT();
auto start = 0*actDims[2];
BOOST_CHECK_CLOSE(sAct[start + 3], 0.543, 1.0e-5f);
start = 1*actDims[2];
BOOST_CHECK_CLOSE(sAct[start + 3], 0.567, 1.0e-5f);
}
{
@ -342,7 +367,7 @@ BOOST_AUTO_TEST_CASE (Declared_Actionx_data)
start = start_a + 2*13;
BOOST_CHECK_EQUAL(zAcn[start + 0].c_str() , " ");
BOOST_CHECK_EQUAL(zAcn[start + 1].c_str() , " ");
BOOST_CHECK_EQUAL(zAcn[start + 2].c_str() , "> ");
BOOST_CHECK_EQUAL(zAcn[start + 2].c_str() , "< ");
BOOST_CHECK_EQUAL(zAcn[start + 3].c_str() , " ");
BOOST_CHECK_EQUAL(zAcn[start + 4].c_str() , " ");
@ -864,7 +889,7 @@ BOOST_AUTO_TEST_CASE (Declared_Actionx_data)
start = start_a + 2*16;
BOOST_CHECK_EQUAL(sAcn[start + 0] , 0);
BOOST_CHECK_EQUAL(sAcn[start + 1] , 0);
BOOST_CHECK_EQUAL(sAcn[start + 2] , 10);
BOOST_CHECK_EQUAL(sAcn[start + 2] , 5);
BOOST_CHECK_EQUAL(sAcn[start + 3] , 0);
BOOST_CHECK_EQUAL(sAcn[start + 4] , 1.E+20);
BOOST_CHECK_EQUAL(sAcn[start + 5] , 1.E+20);