From a09ff8b80eecbc144c1a4bea877a590108c76ef5 Mon Sep 17 00:00:00 2001 From: chflo Date: Thu, 13 Aug 2015 11:43:30 +0200 Subject: [PATCH] OPM-217: Added integration test for IOConfig handling of restart file write --- .../IOConfigIntegrationTest.cpp | 69 +- .../integration_tests/IOConfig/RPT_TEST2.DATA | 802 ++++++++++++++++++ 2 files changed, 868 insertions(+), 3 deletions(-) create mode 100644 testdata/integration_tests/IOConfig/RPT_TEST2.DATA diff --git a/opm/parser/eclipse/IntegrationTests/IOConfigIntegrationTest.cpp b/opm/parser/eclipse/IntegrationTests/IOConfigIntegrationTest.cpp index ec03e94d5..0fee013a8 100644 --- a/opm/parser/eclipse/IntegrationTests/IOConfigIntegrationTest.cpp +++ b/opm/parser/eclipse/IntegrationTests/IOConfigIntegrationTest.cpp @@ -288,10 +288,73 @@ BOOST_AUTO_TEST_CASE( NorneResttartConfig ) { std::shared_ptr ioconfig = state.getIOConfigConst(); for (auto rptrst : rptConfig) { - int report_step = std::get<0>(rptrst); - bool save = std::get<1>(rptrst); + int report_step = std::get<0>(rptrst); + bool save = std::get<1>(rptrst); + boost::gregorian::date report_date = std::get<2>(rptrst); + BOOST_CHECK_EQUAL( save , ioconfig->getWriteRestartFile( report_step )); - std::cout << "step: " << report_step << " : " << save << std::endl; + if (save) { + BOOST_CHECK_EQUAL( report_date, ioconfig->getTimestepDate( report_step )); + } + std::cout << "step: " << report_step << " date: " << report_date << " : " << save << std::endl; + } +} + + + + +BOOST_AUTO_TEST_CASE( RestartConfig2 ) { + std::vector> rptConfig; + + for (size_t report_step = 0; report_step <= 251; ++report_step) { + if (0 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2000,1,1))); + else if (8 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2000,7,1))); + else if (27 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2001,1,1))); + else if (45 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2001,7,1))); + else if (61 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2002,1,1))); + else if (79 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2002,7,1))); + else if (89 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2003,1,1))); + else if (99 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2003,7,1))); + else if (109 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2004,1,1))); + else if (128 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2004,7,1))); + else if (136 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2005,1,1))); + else if (146 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2005,7,1))); + else if (158 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2006,1,1))); + else if (164 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2006,7,1))); + else if (170 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2007,1,1))); + else if (178 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2007,7,1))); + else if (184 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2008,1,1))); + else if (192 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2008,7,1))); + else if (198 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2009,1,1))); + else if (204 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2009,7,1))); + else if (210 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2010,1,1))); + else if (216 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2010,7,1))); + else if (222 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2011,1,1))); + else if (228 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2011,7,1))); + else if (234 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2012,1,1))); + else if (240 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2012,7,1))); + else if (246 == report_step) rptConfig.push_back( std::make_tuple(report_step, true, boost::gregorian::date(2013,1,1))); + else rptConfig.push_back( std::make_tuple(report_step, false, boost::gregorian::date(2000,1,1))); } + ParseMode parseMode; + ParserPtr parser(new Parser()); + DeckConstPtr deck = parser->parseFile("testdata/integration_tests/IOConfig/RPT_TEST2.DATA", parseMode); + EclipseState state( deck , parseMode ); + + std::shared_ptr ioconfig = state.getIOConfigConst(); + for (auto rptrst : rptConfig) { + int report_step = std::get<0>(rptrst); + bool save = std::get<1>(rptrst); + boost::gregorian::date report_date = std::get<2>(rptrst); + + BOOST_CHECK_EQUAL( save , ioconfig->getWriteRestartFile( report_step )); + if (save) { + BOOST_CHECK_EQUAL( report_date, ioconfig->getTimestepDate( report_step )); + } + std::cout << "step: " << report_step << " date: " << report_date << " : " << save << std::endl; + } } + + + diff --git a/testdata/integration_tests/IOConfig/RPT_TEST2.DATA b/testdata/integration_tests/IOConfig/RPT_TEST2.DATA new file mode 100644 index 000000000..73a1035c0 --- /dev/null +++ b/testdata/integration_tests/IOConfig/RPT_TEST2.DATA @@ -0,0 +1,802 @@ +RUNSPEC + +DIMENS + 137 236 28 / + + +START +1 'JAN' 2000 / + +GRID +SPECGRID + 46 112 22 1 F / + +SOLUTION + +RPTSOL + 'THPRES' 'FIP=2' / + +RPTRST + ALLPROPS RVSAT RSSAT PBPD NORST=1 / +--ALLPROPS --> fluid densities, viscosities , reciprocal formation volume factors and phase relative permeabilities +--NORST=1 --> output for visualization only + +SCHEDULE + + +RPTSCHED + 'RESTART=1' 'FIP=3' 'WELSPECS' 'WELLS=0' 'NEWTON=1' 'SUMMARY=1' 'CPU=1' / + + +RPTRST + BASIC=5 FREQ=6 ALLPROPS CONV=10 RVSAT RSSAT PBPD NORST=1 / +--ALLPROPS --> fluid densities, viscosities , reciprocal formation volume factors and phase relative permeabilities +--NORST=1 --> output for visualization only + + +DATES + 3 'JAN' 2000 / +/ +DATES + 4 'JAN' 2000 / +/ +DATES + 5 'FEB' 2000 / +/ +DATES + 1 'MAR' 2000 / +/ +DATES + 1 'APR' 2000 / +/ +DATES + 1 'MAY' 2000 / +/ +DATES + 1 'JUN' 2000 / +/ +DATES + 1 'JUL' 2000 / +/ +DATES + 1 'AUG' 2000 / +/ +DATES + 11 'AUG' 2000 / +/ +DATES + 12 'AUG' 2000 / +/ +DATES + 1 'SEP' 2000 / +/ +DATES + 22 'SEP' 2000 / +/ + +DATES + 23 'SEP' 2000 / +/ +DATES + 24 'SEP' 2000 / +/ +DATES + 1 'OCT' 2000 / +/ +DATES + 7 'OCT' 2000 / +/ +DATES + 30 'OCT' 2000 / +/ +DATES + 1 'NOV' 2000 / +/ +DATES + 30 'NOV' 2000 / +/ +DATES + 1 'DEC' 2000 / +/ +DATES + 2 'DEC' 2000 / +/ +DATES + 8 'DEC' 2000 / +/ +DATES + 9 'DEC' 2000 / +/ +DATES + 10 'DEC' 2000 / +/ +DATES + 12 'DEC' 2000 / +/ +DATES + 1 'JAN' 2001 / +/ +RPTRST + 'FREQ=6' / +DATES + 15 'JAN' 2001 / +/ +DATES + 16 'JAN' 2001 / +/ +DATES + 1 'FEB' 2001 / +/ +DATES + 6 'FEB' 2001 / +/ +DATES + 1 'MAR' 2001 / +/ +DATES + 7 'MAR' 2001 / +/ +DATES + 1 'APR' 2001 / +/ +DATES + 13 'APR' 2001 / +/ +WTEST + 'F-14A' 7.000 'P' 2* / +/ +DATES + 15 'APR' 2001 / +/ +DATES + 1 'MAY' 2001 / +/ +DATES + 1 'JUN' 2001 / +/ +DATES + 2 'JUN' 2001 / +/ +DATES + 11 'JUN' 2001 / +/ +DATES + 12 'JUN' 2001 / +/ +DATES + 18 'JUN' 2001 / +/ +DATES + 19 'JUN' 2001 / +/ +DATES + 26 'JUN' 2001 / +/ +DATES + 1 'JUL' 2001 / +/ +DATES + 5 'JUL' 2001 / +/ +DATES + 1 'AUG' 2001 / +/ +DATES + 18 'AUG' 2001 / +/ +DATES + 21 'AUG' 2001 / +/ +DATES + 24 'AUG' 2001 / +/ +DATES + 1 'SEP' 2001 / +/ +DATES + 18 'SEP' 2001 / +/ +DATES + 27 'SEP' 2001 / +/ +DATES + 1 'OCT' 2001 / +/ +DATES + 2 'OCT' 2001 / +/ +DATES + 15 'OCT' 2001 / +/ +DATES + 1 'NOV' 2001 / +/ +DATES + 1 'DEC' 2001 / +/ +DATES + 2 'DEC' 2001 / +/ +DATES + 5 'DEC' 2001 / +/ +DATES + 1 'JAN' 2002 / +/ +DATES + 19 'JAN' 2002 / +/ +DATES + 1 'FEB' 2002 / +/ +DATES + 1 'MAR' 2002 / +/ +DATES + 6 'MAR' 2002 / +/ +DATES + 7 'MAR' 2002 / +/ +DATES + 28 'MAR' 2002 / +/ +DATES + 1 'APR' 2002 / +/ +DATES + 22 'APR' 2002 / +/ +DATES + 1 'MAY' 2002 / +/ +DATES + 4 'MAY' 2002 / +/ +DATES + 5 'MAY' 2002 / +/ +DATES + 26 'MAY' 2002 / +/ +DATES + 1 'JUN' 2002 / +/ +DATES + 2 'JUN' 2002 / +/ +DATES + 18 'JUN' 2002 / +/ +DATES + 19 'JUN' 2002 / +/ +DATES + 28 'JUN' 2002 / +/ +DATES + 1 'JUL' 2002 / +/ +DATES + 3 'JUL' 2002 / +/ +DATES + 19 'JUL' 2002 / +/ +DATES + 20 'JUL' 2002 / +/ +DATES + 1 'AUG' 2002 / +/ +DATES + 1 'SEP' 2002 / +/ +DATES + 1 'OCT' 2002 / +/ +DATES + 1 'NOV' 2002 / +/ +DATES + 1 'DEC' 2002 / +/ +DATES + 6 'DEC' 2002 / +/ +DATES + 1 'JAN' 2003 / +/ +DATES + 22 'JAN' 2003 / +/ +DATES + 23 'JAN' 2003 / +/ +DATES + 1 'FEB' 2003 / +/ +DATES + 1 'MAR' 2003 / +/ +DATES + 1 'APR' 2003 / +/ +DATES + 30 'APR' 2003 / +/ +DATES + 1 'MAY' 2003 / +/ +DATES + 1 'JUN' 2003 / +/ +DATES + 26 'JUN' 2003 / +/ +DATES + 1 'JUL' 2003 / +/ +DATES + 4 'JUL' 2003 / +/ +DATES + 1 'AUG' 2003 / +/ +DATES + 27 'AUG' 2003 / +/ +DATES + 28 'AUG' 2003 / +/ +DATES + 1 'SEP' 2003 / +/ +DATES + 1 'OCT' 2003 / +/ +DATES + 1 'NOV' 2003 / +/ +DATES + 3 'NOV' 2003 / +/ +DATES + 1 'DEC' 2003 / +/ +DATES + 1 'JAN' 2004 / +/ +DATES + 26 'JAN' 2004 / +/ +DATES + 1 'FEB' 2004 / +/ +DATES + 13 'FEB' 2004 / +/ +DATES + 1 'MAR' 2004 / +/ +DATES + 11 'MAR' 2004 / +/ +DATES + 18 'MAR' 2004 / +/ +DATES + 1 'APR' 2004 / +/ +DATES + 19 'APR' 2004 / +/ +DATES + 28 'APR' 2004 / +/ +DATES + 29 'APR' 2004 / +/ +DATES + 1 'MAY' 2004 / +/ +DATES + 2 'MAY' 2004 / +/ +DATES + 21 'MAY' 2004 / +/ +DATES + 22 'MAY' 2004 / +/ +DATES + 24 'MAY' 2004 / +/ +DATES + 25 'MAY' 2004 / +/ +DATES + 1 'JUN' 2004 / +/ +DATES + 30 'JUN' 2004 / +/ +DATES + 1 'JUL' 2004 / +/ +DATES + 1 'AUG' 2004 / +/ +DATES + 1 'SEP' 2004 / +/ +DATES + 1 'OCT' 2004 / +/ +DATES + 11 'OCT' 2004 / +/ +DATES + 12 'OCT' 2004 / +/ +DATES + 1 'NOV' 2004 / +/ +DATES + 1 'DEC' 2004 / +/ +DATES + 1 'JAN' 2005 / +/ +DATES + 1 'FEB' 2005 / +/ +DATES + 21 'FEB' 2005 / +/ +DATES + 27 'FEB' 2005 / +/ +DATES + 1 'MAR' 2005 / +/ +DATES + 1 'APR' 2005 / +/ +DATES + 1 'MAY' 2005 / +/ +DATES + 31 'MAY' 2005 / +/ +DATES + 1 'JUN' 2005 / +/ +DATES + 13 'JUN' 2005 / +/ +DATES + 1 'JUL' 2005 / +/ +DATES + 5 'JUL' 2005 / +/ +DATES + 8 'JUL' 2005 / +/ +DATES + 1 'AUG' 2005 / +/ +DATES + 1 'SEP' 2005 / +/ +DATES + 5 'SEP' 2005 / +/ +DATES + 20 'SEP' 2005 / +/ +DATES + 21 'SEP' 2005 / +/ +DATES + 1 'OCT' 2005 / +/ +DATES + 1 'NOV' 2005 / +/ +DATES + 1 'DEC' 2005 / +/ +DATES + 27 'DEC' 2005 / +/ +DATES + 1 'JAN' 2006 / +/ +DATES + 1 'FEB' 2006 / +/ +DATES + 1 'MAR' 2006 / +/ +DATES + 1 'APR' 2006 / +/ +DATES + 1 'MAY' 2006 / +/ +DATES + 1 'JUN' 2006 / +/ +DATES + 1 'JUL' 2006 / +/ +DATES + 1 'AUG' 2006 / +/ +DATES + 1 'SEP' 2006 / +/ +DATES + 1 'OCT' 2006 / +/ +DATES + 1 'NOV' 2006 / +/ +DATES + 1 'DEC' 2006 / +/ +DATES + 1 'JAN' 2007 / +/ +DATES + 8 'JAN' 2007 / +/ +DATES + 9 'JAN' 2007 / +/ +DATES + 1 'FEB' 2007 / +/ +DATES + 1 'MAR' 2007 / +/ +DATES + 1 'APR' 2007 / +/ +DATES + 1 'MAY' 2007 / +/ +DATES + 1 'JUN' 2007 / +/ +DATES + 1 'JUL' 2007 / +/ +DATES + 1 'AUG' 2007 / +/ +DATES + 1 'SEP' 2007 / +/ +DATES + 1 'OCT' 2007 / +/ +DATES + 1 'NOV' 2007 / +/ +DATES + 1 'DEC' 2007 / +/ +DATES + 1 'JAN' 2008 / +/ +DATES + 1 'FEB' 2008 / +/ +DATES + 1 'MAR' 2008 / +/ +DATES + 1 'APR' 2008 / +/ +DATES + 1 'MAY' 2008 / +/ +DATES + 21 'MAY' 2008 / +/ +DATES + 29 'MAY' 2008 / +/ +DATES + 1 'JUN' 2008 / +/ +DATES + 1 'JUL' 2008 / +/ +DATES + 1 'AUG' 2008 / +/ +DATES + 1 'SEP' 2008 / +/ +DATES + 1 'OCT' 2008 / +/ +DATES + 1 'NOV' 2008 / +/ +DATES + 1 'DEC' 2008 / +/ +DATES + 1 'JAN' 2009 / +/ +DATES + 1 'FEB' 2009 / +/ +DATES + 1 'MAR' 2009 / +/ +DATES + 1 'APR' 2009 / +/ +DATES + 1 'MAY' 2009 / +/ +DATES + 1 'JUN' 2009 / +/ +DATES + 1 'JUL' 2009 / +/ +DATES + 1 'AUG' 2009 / +/ +DATES + 1 'SEP' 2009 / +/ +DATES + 1 'OCT' 2009 / +/ +DATES + 1 'NOV' 2009 / +/ +DATES + 1 'DEC' 2009 / +/ +DATES + 1 'JAN' 2010 / +/ +DATES + 1 'FEB' 2010 / +/ +DATES + 1 'MAR' 2010 / +/ +DATES + 1 'APR' 2010 / +/ +DATES + 1 'MAY' 2010 / +/ +DATES + 1 'JUN' 2010 / +/ +DATES + 1 'JUL' 2010 / +/ +DATES + 1 'AUG' 2010 / +/ +DATES + 1 'SEP' 2010 / +/ +DATES + 1 'OCT' 2010 / +/ +DATES + 1 'NOV' 2010 / +/ +DATES + 1 'DEC' 2010 / +/ +DATES + 1 'JAN' 2011 / +/ +DATES + 1 'FEB' 2011 / +/ +DATES + 1 'MAR' 2011 / +/ +DATES + 1 'APR' 2011 / +/ +DATES + 1 'MAY' 2011 / +/ +DATES + 1 'JUN' 2011 / +/ +DATES + 1 'JUL' 2011 / +/ +DATES + 1 'AUG' 2011 / +/ +DATES + 1 'SEP' 2011 / +/ +DATES + 1 'OCT' 2011 / +/ +DATES + 1 'NOV' 2011 / +/ +DATES + 1 'DEC' 2011 / +/ +DATES + 1 'JAN' 2012 / +/ +DATES + 1 'FEB' 2012 / +/ +DATES + 1 'MAR' 2012 / +/ +DATES + 1 'APR' 2012 / +/ +DATES + 1 'MAY' 2012 / +/ +DATES + 1 'JUN' 2012 / +/ +DATES + 1 'JUL' 2012 / +/ +DATES + 1 'AUG' 2012 / +/ +DATES + 1 'SEP' 2012 / +/ +DATES + 1 'OCT' 2012 / +/ +DATES + 1 'NOV' 2012 / +/ +DATES + 1 'DEC' 2012 / +/ +DATES + 1 'JAN' 2013 / +/ +DATES + 1 'FEB' 2013 / +/ +DATES + 1 'MAR' 2013 / +/ +DATES + 1 'APR' 2013 / +/ +DATES + 1 'MAY' 2013 / +/ + +--Write save file at end of history +SAVE + +--there must be a TSTEP or DATES between SAVE and END (otherwise no SAVE is created) +TSTEP + 1 / + +END +