Merge pull request #2690 from joakim-hove/readonly-testing

Readonly testing
This commit is contained in:
Joakim Hove 2021-09-17 12:05:32 +02:00 committed by GitHub
commit 0355a71abd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 2000 additions and 2043 deletions

View File

@ -64,6 +64,11 @@ namespace {
Opm::filesystem::remove_all(this->root_);
}
std::string org_path(const std::string& fname) {
return Opm::filesystem::canonical( this->orig_ / fname );
}
private:
Opm::filesystem::path root_;
Opm::filesystem::path area_;

View File

@ -51,9 +51,11 @@
#include <opm/parser/eclipse/EclipseState/Grid/PinchMode.hpp>
#include <opm/parser/eclipse/Parser/Parser.hpp>
#include <opm/io/eclipse/EclFile.hpp>
#include "tests/WorkArea.cpp"
BOOST_AUTO_TEST_CASE(CreateMissingDIMENS_throws) {
Opm::Deck deck;
Opm::Parser parser;
@ -1838,20 +1840,13 @@ BOOST_AUTO_TEST_CASE(SAVE_FIELD_UNITS) {
Opm::NNC nnc(grid1, deck);
bool formatted = false;
{
WorkArea work;
time_t timer;
time(&timer);
std::string cwd = Opm::filesystem::current_path().c_str();
std::string testDir = cwd + "/tmp_dir_" + std::to_string(timer);
if ( Opm::filesystem::exists( testDir )) {
Opm::filesystem::remove_all(testDir);
}
Opm::filesystem::create_directory(testDir);
std::string fileName = testDir + "/" + "TMP.EGRID";
std::string fileName = "TMP.EGRID";
grid1.save(fileName, formatted, nnc.input(), units);
Opm::EclIO::EclFile file1(fileName);
@ -1911,7 +1906,7 @@ BOOST_AUTO_TEST_CASE(SAVE_FIELD_UNITS) {
Opm::NNC nnc2(grid2, deck2);
std::string fileName2 = testDir + "/" + "TMP2.FEGRID";
std::string fileName2 = "TMP2.FEGRID";
grid2.save(fileName2, true, nnc2.input(), units);
@ -1937,7 +1932,7 @@ BOOST_AUTO_TEST_CASE(SAVE_FIELD_UNITS) {
Opm::NNC nnc3(grid3, deck3);
std::string fileName3 = testDir + "/" + "TMP3.FEGRID";
std::string fileName3 = "TMP3.FEGRID";
grid3.save(fileName3, true, nnc3.input(), units3);
@ -1953,8 +1948,7 @@ BOOST_AUTO_TEST_CASE(SAVE_FIELD_UNITS) {
for (size_t n = 0; n < ref3_mapaxes.size(); n++) {
BOOST_CHECK(ref3_mapaxes[n] == test_mapaxes3[n]);
}
Opm::filesystem::remove_all(testDir);
}
}
BOOST_AUTO_TEST_CASE(SAVE_METRIC_UNITS) {
@ -2035,16 +2029,9 @@ BOOST_AUTO_TEST_CASE(SAVE_METRIC_UNITS) {
time_t timer;
time(&timer);
std::string cwd = Opm::filesystem::current_path().c_str();
std::string testDir = cwd + "/tmp_dir_" + std::to_string(timer);
if ( Opm::filesystem::exists( testDir )) {
Opm::filesystem::remove_all(testDir);
}
Opm::filesystem::create_directory(testDir);
std::string fileName = testDir + "/" + "TMP.FEGRID";
{
WorkArea work;
std::string fileName = "TMP.FEGRID";
grid1.save(fileName, formatted, nnc.input(), units1);
Opm::EclIO::EclFile file1(fileName);
@ -2129,7 +2116,7 @@ BOOST_AUTO_TEST_CASE(SAVE_METRIC_UNITS) {
const auto& grid2 = es2.getInputGrid();
// Opm::NNC nnc( deck2 );
std::string fileName2 = testDir + "/" + "TMP2.FEGRID";
std::string fileName2 = "TMP2.FEGRID";
grid2.save(fileName2, true, nnc.input(), units2);
@ -2145,9 +2132,7 @@ BOOST_AUTO_TEST_CASE(SAVE_METRIC_UNITS) {
for (size_t n = 0; n < ref_mapaxes2.size(); n++) {
BOOST_CHECK(ref_mapaxes2[n] == test_mapaxes2[n]);
}
Opm::filesystem::remove_all(testDir);
}
}
BOOST_AUTO_TEST_CASE(CalcCellDims) {
@ -2775,7 +2760,8 @@ BOOST_AUTO_TEST_CASE(TEST_GDFILE_2) {
const auto& grid1a = es1a.getInputGrid();
Opm::NNC nnc(grid1a, deck1a);
{
WorkArea work;
grid1a.save("BAD_CP_M.EGRID", false, nnc.input(), units1a);
auto deck1b = parser.parseString(deckData1b);
@ -2874,7 +2860,7 @@ BOOST_AUTO_TEST_CASE(TEST_GDFILE_2) {
auto deck3c = parser.parseString(deckData3c);
Opm::EclipseGrid grid3c(deck3c);
}
}
BOOST_AUTO_TEST_CASE(TEST_COLLAPSED_CELL) {

View File

@ -50,6 +50,8 @@
#include <vector>
#include <fmt/format.h>
#include "tests/WorkArea.cpp"
namespace {
Opm::Deck first_sim(std::string fname) {
@ -160,6 +162,8 @@ BOOST_AUTO_TEST_CASE(Declared_Actionx_data)
double secs_elapsed = start_time + 2.E09;
// set dummy value for next_step_size
{
WorkArea work;
{
Opm::EclIO::OutputStream::Restart rstFile {Opm::EclIO::OutputStream::ResultSet {outputDir, baseName},
rptStep,
@ -229,7 +233,8 @@ BOOST_AUTO_TEST_CASE(Declared_Actionx_data)
INTEHEAD
Intehead[156] - The number of ACTIONS
Intehead[157] - The max number of lines of schedule data including ENDACTIO keyword for any ACTION
Intehead[157] - The max number of lines of schedule data including ENDACTIO keyword for any
ACTION
---------------------------------------------------------------------------------------------------------------------]
@ -1023,12 +1028,14 @@ BOOST_AUTO_TEST_CASE(Declared_Actionx_data)
{
const auto& action = rst_state.actions[1];
BOOST_CHECK(compare_tokens(action.conditions[0].tokens(), {"FMWPR", ">", "25", "AND"}));
BOOST_CHECK( compare_tokens(action.conditions[1].tokens(), {"WGPR", "OPL02", ">", "GGPR", "LOWER", "AND"}));
BOOST_CHECK(
compare_tokens(action.conditions[1].tokens(), {"WGPR", "OPL02", ">", "GGPR", "LOWER", "AND"}));
BOOST_CHECK(compare_tokens(action.conditions[2].tokens(), {"MNTH", ">", "NOV"}));
}
{
const auto& action = rst_state.actions[2];
BOOST_CHECK( compare_tokens(action.conditions[0].tokens(), {"WWPR", "OPU01", ">", "WWPR", "OPU02", "OR"}));
BOOST_CHECK(
compare_tokens(action.conditions[0].tokens(), {"WWPR", "OPU01", ">", "WWPR", "OPU02", "OR"}));
BOOST_CHECK(compare_tokens(action.conditions[1].tokens(), {"GMWPR", "TEST", ">", "39", "AND"}));
BOOST_CHECK(compare_tokens(action.conditions[2].tokens(), {"YEAR", ">", "2020"}));
}
@ -1046,7 +1053,8 @@ BOOST_AUTO_TEST_CASE(Declared_Actionx_data)
BOOST_CHECK(compare_tokens(action.conditions[1].tokens(), {"WUPR3", "OP*", ">", "46", ")", "AND"}));
BOOST_CHECK(compare_tokens(action.conditions[2].tokens(), {"WOPR", "OP*", ">", "32", "AND"}));
BOOST_CHECK(compare_tokens(action.conditions[3].tokens(), {"(", "WLPR", "OP*", ">", "43", "AND"}));
BOOST_CHECK( compare_tokens(action.conditions[4].tokens(), {"WWCT", "OP*", ">", "0.310000", ")", "AND"}));
BOOST_CHECK(
compare_tokens(action.conditions[4].tokens(), {"WWCT", "OP*", ">", "0.310000", ")", "AND"}));
BOOST_CHECK(compare_tokens(action.conditions[5].tokens(), {"WWPR", "OP*", ">", "23", "AND"}));
BOOST_CHECK(compare_tokens(action.conditions[6].tokens(), {"MNTH", ">", "OCT"}));
}
@ -1105,5 +1113,7 @@ BOOST_AUTO_TEST_CASE(Declared_Actionx_data)
}
}
}
}
BOOST_AUTO_TEST_SUITE_END()

View File

@ -46,6 +46,8 @@
#include <string>
#include <vector>
#include "tests/WorkArea.cpp"
namespace {
Opm::Deck first_sim(std::string fname) {
@ -232,15 +234,15 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
auto udqData = Opm::RestartIO::Helpers::AggregateUDQData(udqDims);
udqData.captureDeclaredUDQData(sched, rptStep, udq_state, ih);
{
WorkArea work;
{
std::string outputDir = "./";
std::string baseName = "TEST_UDQRST";
Opm::EclIO::OutputStream::Restart rstFile {
Opm::EclIO::OutputStream::ResultSet { outputDir, baseName },
Opm::EclIO::OutputStream::Restart rstFile {Opm::EclIO::OutputStream::ResultSet {outputDir, baseName},
rptStep,
Opm::EclIO::OutputStream::Formatted {ioConfig.getFMTOUT()},
Opm::EclIO::OutputStream::Unified { ioConfig.getUNIFOUT() }
};
Opm::EclIO::OutputStream::Unified {ioConfig.getUNIFOUT()}};
rstFile.write("INTEHEAD", ih);
rstFile.write("DOUBHEAD", dh);
rstFile.write("LOGIHEAD", lh);
@ -302,7 +304,6 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
BOOST_CHECK_EQUAL(dh[212], 1.0E+20);
BOOST_CHECK_EQUAL(dh[213], 0.0);
BOOST_CHECK_EQUAL(dh[214], 1.0E-4);
}
@ -319,8 +320,8 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
Integer no 2 = -4 : used for ASSIGN - numerical value
-4 : used for DEFINE
-1 : used for DEFINE MIN() function, SUM() function, AVEA() function
-4 : used for DEFINE MAX() - function - also used for SUM() function - must check on (-1 - value)
1 : used for UPDATE quantity
-4 : used for DEFINE MAX() - function - also used for SUM() function - must check on (-1 -
value) 1 : used for UPDATE quantity
Integer no 3 = sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
(1 - based)
@ -334,222 +335,310 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
auto start = 0 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 1 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -4); // udq NO. 1
BOOST_CHECK_EQUAL(iUdq[start + 2] , 1); // udq NO. 1 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
1); // udq NO. 1 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 1 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 0); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], 0); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 2); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
2); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 2 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -4); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 3); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
3); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 3 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -4); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 1); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
1); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 4 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -4); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 4); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
4); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 5 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -4); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 1); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
1); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 6 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -1); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 2); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
2); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 7 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -4); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 3); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
3); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 8 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -5); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 4); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
4); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 9 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -8); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 5); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
5); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 10 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -1); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 6); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
6); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 11 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -5); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 7); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
7); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 12 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -3); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 8); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
8); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 13 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -1); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 9); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
9); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 14 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -2); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 10); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
10); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 15 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -3); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 11); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
11); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 16 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -1); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 12); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
12); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 17 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -1); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 13); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
13); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 18 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -3); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 14); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
14); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 19 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -5); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 15); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
15); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 20 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -5); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 16); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
16); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 21 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], 1); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 17); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
17); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 22 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], 1); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 18); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
18); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 23 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -1); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 19); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
19); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 24 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -4); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 20); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
20); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 25 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -2); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 21); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
21); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 26 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -1); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 22); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
22); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 27 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -2); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 23); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
23); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 28 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -2); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 24); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
24); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 29 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -8); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 25); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
25); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 30 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -6); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 26); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
26); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 31 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -4); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 27); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
27); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 32 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -5); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 28); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
28); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 33 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -4); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 29); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
29); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 34 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -8); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 30); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
30); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 35 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -4); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 31); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
31); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 36 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -5); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 32); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
32); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 37 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -6); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 33); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
33); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 38 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -1); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 34); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
34); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 39 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -1); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 35); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
35); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 40 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -6); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 36); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
36); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 41 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -2); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 37); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
37); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 42 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -4); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 38); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
38); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
start = 43 * udqDims[1];
BOOST_CHECK_EQUAL(iUdq[start + 0], 2); // udq NO. 2 - ( 0 - ASSIGN, 2 - DEFINE)
BOOST_CHECK_EQUAL(iUdq[start + 1], -1); // udq NO. 2
BOOST_CHECK_EQUAL(iUdq[start + 2] , 39); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
BOOST_CHECK_EQUAL(
iUdq[start + 2],
39); // udq NO. 2 - (sequence number of UDQ pr type (CU, FU, GU, RU, , SU, WU, AU or BU etc.)
}
{
@ -580,7 +669,8 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
item (3) - do not know yet (value: 1)
item (4) - number of times the UDQ variable is used (e.g. for several different wells)
item (5) - the sequence number for the first use of the actual UDQ (index i+1) = 1+sum over <the first i udq's in use >(no_use_udq(i))
item (5) - the sequence number for the first use of the actual UDQ (index i+1) = 1+sum over <the first i
udq's in use >(no_use_udq(i))
*/
const auto& iUad = udqData.getIUAD();
@ -598,7 +688,6 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
BOOST_CHECK_EQUAL(iUad[start + 2], 1); // iuad NO. 2
BOOST_CHECK_EQUAL(iUad[start + 3], 2); // iuad NO. 2
BOOST_CHECK_EQUAL(iUad[start + 4], 3); // iuad NO. 2
}
{
@ -637,7 +726,6 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
start = 5 * udqDims[4];
BOOST_CHECK_EQUAL(zUdn[start + 0].c_str(), "FULPR "); // udq NO. 6
BOOST_CHECK_EQUAL(zUdn[start + 1].c_str(), "SM3/DAY "); // udq NO. 6
}
@ -679,7 +767,6 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
BOOST_CHECK_EQUAL(zUdl[start + 1].c_str(), "543) * 0"); // udq NO. 1
BOOST_CHECK_EQUAL(zUdl[start + 2].c_str(), ".65 "); // udq NO. 1
BOOST_CHECK_EQUAL(zUdl[start + 3].c_str(), " "); // udq NO. 1
}
@ -706,8 +793,6 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
BOOST_CHECK_EQUAL(dUdw[start + 2], 400); // duDw NO. 1
BOOST_CHECK_EQUAL(dUdw[start + 3], 400); // duDw NO. 1
BOOST_CHECK_EQUAL(dUdw[start + 4], -0.3E+21); // duDw NO. 1
}
{
@ -726,8 +811,6 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
BOOST_CHECK_EQUAL(dUdg[start + 2], 361); // duDg NO. 1
BOOST_CHECK_EQUAL(dUdg[start + 3], -0.3E+21); // duDg NO. 1
BOOST_CHECK_EQUAL(dUdg[start + 4], -0.3E+21); // duDg NO. 1
}
@ -743,7 +826,6 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
auto start = 0 * udqDims[12];
BOOST_CHECK_EQUAL(dUdf[start + 0], 460); // duDf NO. 1
}
{
@ -756,8 +838,7 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
BOOST_CHECK_EQUAL(rst_state.header.num_udq(), 44);
BOOST_CHECK_EQUAL(rst_state.udqs.size(), 44);
std::vector<std::pair<std::string, std::string>> expected = {
{"WUOPRL", "SM3/DAY"},
std::vector<std::pair<std::string, std::string>> expected = {{"WUOPRL", "SM3/DAY"},
{"WULPRL", "SM3/DAY"},
{"WUOPRU", "SM3/DAY"},
{"GUOPRU", "SM3/DAY"},
@ -804,11 +885,8 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
}
const auto& uda_records = Opm::UDQActive::load_rst(es.getUnits(),
input_config,
rst_state,
sched.wellNames(report_step),
sched.groupNames(report_step) );
const auto& uda_records = Opm::UDQActive::load_rst(
es.getUnits(), input_config, rst_state, sched.wellNames(report_step), sched.groupNames(report_step));
BOOST_CHECK_EQUAL(uda_records.size(), 4);
BOOST_CHECK(udq_contains(uda_records, Opm::UDAControl::WCONPROD_ORAT, "WUOPRU", "PROD1"));
@ -817,6 +895,7 @@ BOOST_AUTO_TEST_CASE (Declared_UDQ_data)
BOOST_CHECK(udq_contains(uda_records, Opm::UDAControl::WCONPROD_LRAT, "WULPRU", "PROD2"));
}
}
}
// test constructed UDQ restart data
BOOST_AUTO_TEST_CASE (Declared_UDQ_data_2)

View File

@ -35,6 +35,8 @@
#include <stdio.h>
#include <tuple>
#include "tests/WorkArea.cpp"
using namespace Opm::EclIO;
template<typename InputIterator1, typename InputIterator2>
@ -176,6 +178,9 @@ BOOST_AUTO_TEST_CASE(TestERft_2) {
std::string outFile = "TEST.RFT";
{
WorkArea work;
work.copyIn(testFile);
{
EclOutput eclTest(outFile, false);
@ -219,8 +224,5 @@ BOOST_AUTO_TEST_CASE(TestERft_2) {
}
BOOST_CHECK_EQUAL(compare_files(testFile, outFile), true);
if (remove(outFile.c_str())==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}
}

View File

@ -41,6 +41,8 @@
#include <opm/common/utility/FileSystem.hpp>
#include "tests/WorkArea.cpp"
using namespace Opm::EclIO;
template<typename InputIterator1, typename InputIterator2>
@ -221,8 +223,10 @@ BOOST_AUTO_TEST_CASE(TestERst_2) {
// using API for ERst to read all array from a binary unified restart file1
// Then write the data back to a new file and check that new file is identical with input file
ERst rst1(testFile);
WorkArea work;
work.copyIn(testFile);
ERst rst1(testFile);
{
EclOutput eclTest(outFile, false);
@ -230,7 +234,6 @@ BOOST_AUTO_TEST_CASE(TestERst_2) {
for (size_t i = 0; i < seqnums.size(); i++) {
rst1.loadReportStepNumber(seqnums[i]);
auto rstArrays = rst1.listOfRstArrays(seqnums[i]);
for (auto& array : rstArrays) {
@ -242,10 +245,6 @@ BOOST_AUTO_TEST_CASE(TestERst_2) {
}
BOOST_CHECK_EQUAL(compare_files(testFile, outFile), true);
if (remove(outFile.c_str()) == -1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}
@ -257,8 +256,10 @@ BOOST_AUTO_TEST_CASE(TestERst_3) {
// using API for ERst to read all array from a formatted unified restart file1
// Then write the data back to a new file and check that new file is identical with input file
WorkArea work;
work.copyIn(testFile);
ERst rst1(testFile);
{
EclOutput eclTest(outFile, true);
std::vector<int> seqnums = rst1.listOfReportStepNumbers();
@ -273,12 +274,8 @@ BOOST_AUTO_TEST_CASE(TestERst_3) {
readAndWrite(eclTest, rst1, name, seqnums[i], arrType);
}
}
}
BOOST_CHECK_EQUAL(compare_files(testFile, outFile), true);
if (remove(outFile.c_str() )== -1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}

View File

@ -35,6 +35,7 @@
#include <math.h>
#include <stdio.h>
#include <tuple>
#include "tests/WorkArea.cpp"
using Opm::EclIO::ESmry;
@ -401,12 +402,15 @@ BOOST_AUTO_TEST_CASE(TestCreateRSM) {
ESmry smry1("SPE1CASE1.SMSPEC");
smry1.LoadData();
{
WorkArea work;
smry1.write_rsm_file();
BOOST_CHECK(fs::exists("SPE1CASE1.RSM"));
smry1.write_rsm_file("TEST.RSM");
BOOST_CHECK(fs::exists("TEST.RSM"));
}
}
BOOST_AUTO_TEST_CASE(TestUnits) {
ESmry smry("SPE1CASE1.SMSPEC");
@ -430,6 +434,7 @@ BOOST_AUTO_TEST_CASE(Test_all_available) {
std::vector<int> nums (8, 0);
WorkArea work;
{
Opm::EclIO::EclOutput smspec1("TMP1.SMSPEC", false);
smspec1.write<int>("INTEHEAD", {1,100});
@ -489,13 +494,6 @@ BOOST_AUTO_TEST_CASE(Test_all_available) {
Opm::EclIO::ESmry smry2("TMP1.SMSPEC");
BOOST_CHECK_EQUAL( smry2.all_steps_available(), false);
if (Opm::filesystem::exists("TMP1.SMSPEC"))
Opm::filesystem::remove("TMP1.SMSPEC");
if (Opm::filesystem::exists("TMP1.UNSMRY"))
Opm::filesystem::remove("TMP1.UNSMRY");
}
BOOST_AUTO_TEST_CASE(Test_all_available_w_restart) {
@ -511,6 +509,7 @@ BOOST_AUTO_TEST_CASE(Test_all_available_w_restart) {
std::vector<int> nums (8, 0);
WorkArea work;
{
Opm::EclIO::EclOutput smspec1("BASE1.SMSPEC", false);
smspec1.write<int>("INTEHEAD", {1,100});
@ -648,18 +647,6 @@ BOOST_AUTO_TEST_CASE(Test_all_available_w_restart) {
Opm::EclIO::ESmry smry3("RST2.SMSPEC", true);
BOOST_CHECK_EQUAL( smry3.all_steps_available(), false);
if (Opm::filesystem::exists("BASE1.SMSPEC"))
Opm::filesystem::remove("BASE1.SMSPEC");
if (Opm::filesystem::exists("BASE1.UNSMRY"))
Opm::filesystem::remove("BASE1.UNSMRY");
if (Opm::filesystem::exists("RST2.SMSPEC"))
Opm::filesystem::remove("RST2.SMSPEC");
if (Opm::filesystem::exists("RST2.UNSMRY"))
Opm::filesystem::remove("RST2.UNSMRY");
}

View File

@ -89,6 +89,7 @@ void write_header(std::ofstream& ofileH, std::string& arrName, int size, std::st
BOOST_AUTO_TEST_CASE(TestEclFile_X231) {
WorkArea work;
std::string filename = "TEST.DAT";
std::string arrName = "TESTX231";
@ -283,6 +284,7 @@ BOOST_AUTO_TEST_CASE(TestEcl_Write_binary) {
// writing vectors to test file (TEST.DAT) using class EclOutput
WorkArea work;
{
EclOutput eclTest(testFile, false);
@ -292,13 +294,10 @@ BOOST_AUTO_TEST_CASE(TestEcl_Write_binary) {
eclTest.write("XCON",xcon);
eclTest.write("KEYWORDS",keywords);
eclTest.write("ENDSOL",std::vector<char>());
}
work.copyIn(inputFile);
BOOST_CHECK_EQUAL(compare_files(inputFile, testFile), true);
if (remove(testFile.c_str())==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}
BOOST_AUTO_TEST_CASE(TestEcl_Write_formatted) {
@ -319,6 +318,8 @@ BOOST_AUTO_TEST_CASE(TestEcl_Write_formatted) {
// writing vectors to test file (TEST.FDAT) using class EclOutput
{
WorkArea work;
EclOutput eclTest(testFile, true);
eclTest.write("ICON",icon);
@ -328,11 +329,9 @@ BOOST_AUTO_TEST_CASE(TestEcl_Write_formatted) {
eclTest.write("KEYWORDS",keywords);
eclTest.write("ENDSOL",std::vector<char>());
work.copyIn(inputFile);
BOOST_CHECK_EQUAL(compare_files(inputFile, testFile), true);
if (remove(testFile.c_str())==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}
}
BOOST_AUTO_TEST_CASE(TestEcl_Write_formatted_not_finite) {
@ -372,6 +371,7 @@ BOOST_AUTO_TEST_CASE(TestEcl_getList) {
EclFile file1(inputFile);
file1.loadData();
WorkArea work;
{
EclOutput eclTest(testFile, false);
@ -407,16 +407,13 @@ BOOST_AUTO_TEST_CASE(TestEcl_getList) {
}
}
work.copyIn(inputFile);
BOOST_CHECK_EQUAL(compare_files(inputFile, testFile), true);
if (remove(testFile.c_str())==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}
BOOST_AUTO_TEST_CASE(TestEcl_Write_CHAR) {
WorkArea work;
std::string testFile1="TEST.FDAT";
std::string testFile2="TEST2.DAT";
@ -532,13 +529,4 @@ BOOST_AUTO_TEST_CASE(TestEcl_Write_CHAR) {
auto arrayList =file1.getList();
BOOST_CHECK(std::get<1>(arrayList[0]) == Opm::EclIO::C0NN);
}
if (remove(testFile1.c_str())==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
if (remove(testFile2.c_str())==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}

View File

@ -31,6 +31,7 @@
#include <opm/io/eclipse/EclOutput.hpp>
#include <iomanip>
#include "tests/WorkArea.cpp"
using Opm::EclIO::EGrid;
using Opm::EclIO::ESmry;
@ -318,6 +319,7 @@ BOOST_AUTO_TEST_CASE(gridCompare) {
std::vector<int> nnc1;
std::vector<int> nnc2;
std::vector<int> actnum;
WorkArea work;
//-------------------------------------------------------------
// base: identical grids
@ -432,17 +434,10 @@ BOOST_AUTO_TEST_CASE(gridCompare) {
test6.loadGrids();
BOOST_CHECK_THROW(test6.gridCompare(),std::runtime_error);
if (remove("TMP1.EGRID")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
if (remove("TMP2.EGRID")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}
BOOST_AUTO_TEST_CASE(results_init_1) {
WorkArea work;
std::vector<std::vector<int>> intData1;
std::vector<std::vector<float>> floatData1;
@ -520,14 +515,6 @@ BOOST_AUTO_TEST_CASE(results_init_1) {
BOOST_CHECK_THROW(test1a.results_init(),std::runtime_error);
if (remove("TMP1.INIT")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP2.INIT")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}
BOOST_AUTO_TEST_CASE(results_init_2) {
@ -548,6 +535,7 @@ BOOST_AUTO_TEST_CASE(results_init_2) {
std::vector<float> poro2(12,0.25);
std::vector<int> fipnum2(12,1);
WorkArea work;
// ---------------------------------------------------------------------------
// array PORV requires strict tolerances, 1e-6
@ -625,17 +613,10 @@ BOOST_AUTO_TEST_CASE(results_init_2) {
ECLRegressionTest test3("TMP1", "TMP2", 1e-3, 1e-3);
BOOST_CHECK_THROW(test3.results_init(),std::runtime_error);
if (remove("TMP1.INIT")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP2.INIT")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}
BOOST_AUTO_TEST_CASE(results_unrst_1) {
WorkArea work;
using Date = std::tuple<int, int, int>;
std::vector<int> seqnum1 = {0,1,4,7};
@ -760,17 +741,10 @@ BOOST_AUTO_TEST_CASE(results_unrst_1) {
// should fail
BOOST_CHECK_THROW(test2a.results_rst(),std::runtime_error);
if (remove("TMP1.UNRST")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP2.UNRST")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}
BOOST_AUTO_TEST_CASE(results_unrst_2) {
WorkArea work;
using Date = std::tuple<int, int, int>;
std::vector<int> seqnum1 = {0,1,4,7};
@ -857,17 +831,11 @@ BOOST_AUTO_TEST_CASE(results_unrst_2) {
test1.results_rst();
if (remove("TMP1.UNRST")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP2.UNRST")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}
BOOST_AUTO_TEST_CASE(results_unrst_3) {
WorkArea work;
using Date = std::tuple<int, int, int>;
std::vector<int> seqnum1 = {0,1,4,7};
@ -971,18 +939,11 @@ BOOST_AUTO_TEST_CASE(results_unrst_3) {
// should get deviations for two keywords
BOOST_CHECK_EQUAL(test2.countDev(),2);
if (remove("TMP1.UNRST")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP2.UNRST")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
};
}
BOOST_AUTO_TEST_CASE(results_unsmry_1) {
WorkArea work;
std::vector<std::string> keywords1 = {"TIME", "YEARS", "FOPR", "FOPT", "WOPR", "WOPR", "WBHP", "WBHP", "ROIP"};
std::vector<std::string> wgnames1 = {":+:+:+:+", ":+:+:+:+", "FIELD", "FIELD", "A-1H", "A-2H", "A-1H", "A-2H", ":+:+:+:+"};
std::vector<int> nums1 = {-32767, -32767, 0, 0, 1, 2, 1, 2, 1};
@ -1072,29 +1033,12 @@ BOOST_AUTO_TEST_CASE(results_unsmry_1) {
// should fail since not found in any of the cases
test2a.compareSpesificKeyword("XXXXX");
BOOST_CHECK_THROW(test2a.results_smry(),std::runtime_error);
if (remove("TMP1.SMSPEC")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP2.SMSPEC")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP1.UNSMRY")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP2.UNSMRY")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
}
BOOST_AUTO_TEST_CASE(results_unsmry_2) {
WorkArea work;
std::vector<std::string> keywords1 = {"TIME", "YEARS", "FOPR", "FOPT", "WOPR", "WOPR", "WBHP", "WBHP", "ROIP"};
std::vector<std::string> wgnames1 = {":+:+:+:+", ":+:+:+:+", "FIELD", "FIELD", "A-1H", "A-2H", "A-1H", "A-2H", ":+:+:+:+"};
std::vector<int> nums1 = {-32767, -32767, 0, 0, 1, 2, 1, 2, 1};
@ -1153,23 +1097,6 @@ BOOST_AUTO_TEST_CASE(results_unsmry_2) {
// should get deviations for two keywords
BOOST_CHECK_EQUAL(test2.countDev(),2);
if (remove("TMP1.SMSPEC")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP2.SMSPEC")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP1.UNSMRY")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP2.UNSMRY")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
}
@ -1189,6 +1116,7 @@ BOOST_AUTO_TEST_CASE(results_unsmry_3) {
BOOST_AUTO_TEST_CASE(results_rft_1) {
WorkArea work;
using Date = std::tuple<int, int, int>;
std::vector<float> time1 = {0.0, 40.0, 50.0};
@ -1321,22 +1249,10 @@ BOOST_AUTO_TEST_CASE(results_rft_1) {
ECLRegressionTest test2("TMP1", "TMP3", 1e-3, 1e-3);
BOOST_CHECK_THROW(test2.results_rft(),std::runtime_error);
if (remove("TMP1.RFT")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP2.RFT")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP3.RFT")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
}
BOOST_AUTO_TEST_CASE(results_rft_2) {
WorkArea work;
using Date = std::tuple<int, int, int>;
std::vector<float> time1 = {0.0, 40.0, 50.0};
@ -1436,14 +1352,5 @@ BOOST_AUTO_TEST_CASE(results_rft_2) {
// should get deviations for two keywords
BOOST_CHECK_EQUAL(test3.countDev(), 2);
if (remove("TMP1.RFT")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
if (remove("TMP2.RFT")==-1) {
std::cout << " > Warning! temporary file was not deleted" << std::endl;
}
}

View File

@ -37,6 +37,9 @@
#include <stdio.h>
#include <tuple>
#include "tests/WorkArea.cpp"
using Opm::EclIO::ESmry;
using Opm::EclIO::ExtESmry;
@ -150,9 +153,9 @@ std::vector<float> getFrom(const std::vector<float> &ref_vect,int from){
}
BOOST_AUTO_TEST_CASE(TestExtESmry_1) {
if (Opm::filesystem::exists("SPE1CASE1.ESMRY"))
Opm::filesystem::remove("SPE1CASE1.ESMRY");
WorkArea work;
work.copyIn("SPE1CASE1.SMSPEC");
work.copyIn("SPE1CASE1.UNSMRY");
ESmry smry1("SPE1CASE1.SMSPEC");
@ -212,10 +215,6 @@ BOOST_AUTO_TEST_CASE(TestExtESmry_1) {
ExtESmry esmry2("SPE1CASE1.ESMRY");
esmry2.loadData();
if (Opm::filesystem::exists("SPE1CASE1.ESMRY"))
Opm::filesystem::remove("SPE1CASE1.ESMRY");
}
BOOST_AUTO_TEST_CASE(TestExtESmry_2) {
@ -236,7 +235,7 @@ BOOST_AUTO_TEST_CASE(TestExtESmry_2) {
// this is what the summary file from the restart run would be if the restart was 100% perfect.
// changing summary keywords to make the file realistic.
WorkArea work;
std::vector <float> time_ref, wgpr_prod_ref, wbhp_prod_ref, wbhp_inj_ref, fgor_ref, bpr_111_ref, bpr_10103_ref;
getRefSmryVect(time_ref, wgpr_prod_ref, wbhp_prod_ref, wbhp_inj_ref,fgor_ref, bpr_111_ref, bpr_10103_ref);
@ -244,9 +243,9 @@ BOOST_AUTO_TEST_CASE(TestExtESmry_2) {
// defaulting second argument, loadBaseRunData. Only data from the restarted run
// will be loaded. No data from base run (SPE1CASE1 in this case)
if (Opm::filesystem::exists("SPE1CASE1.ESMRY"))
Opm::filesystem::remove("SPE1CASE1.ESMRY");
work.copyIn("SPE1CASE1.SMSPEC");
work.copyIn("SPE1CASE1.UNSMRY");
work.copyIn("SPE1CASE1_RST60.ESMRY");
ESmry smry1("SPE1CASE1.SMSPEC");
smry1.make_esmry_file();
@ -302,10 +301,6 @@ BOOST_AUTO_TEST_CASE(TestExtESmry_2) {
for (unsigned int i=0;i< smryVect.size();i++)
BOOST_REQUIRE_CLOSE (smryVect[i], ref_rst60[i], 0.01);
if (Opm::filesystem::exists("SPE1CASE1.ESMRY"))
Opm::filesystem::remove("SPE1CASE1.ESMRY");
}
BOOST_AUTO_TEST_CASE(TestESmry_3) {
@ -325,7 +320,10 @@ BOOST_AUTO_TEST_CASE(TestESmry_3) {
// this is what the summary file from the restart run would be if the restart was 100% perfect.
// changing summary keywords to make the file realistic.
WorkArea work;
work.copyIn("SPE1CASE1.SMSPEC");
work.copyIn("SPE1CASE1.UNSMRY");
work.copyIn("SPE1CASE1_RST60.ESMRY");
std::vector <float> time_ref, wgpr_prod_ref, wbhp_prod_ref, wbhp_inj_ref, fgor_ref, bpr_111_ref, bpr_10103_ref;
@ -334,8 +332,6 @@ BOOST_AUTO_TEST_CASE(TestESmry_3) {
// second argument, loadBaseRunData = true. Both data from restarted run and base run loaded
// vectors should be equal to reference vectors (from SPE1CASE1)
if (Opm::filesystem::exists("SPE1CASE1.ESMRY"))
Opm::filesystem::remove("SPE1CASE1.ESMRY");
ESmry smry1("SPE1CASE1.SMSPEC");
smry1.make_esmry_file();
@ -377,8 +373,5 @@ BOOST_AUTO_TEST_CASE(TestESmry_3) {
for (unsigned int i=0;i< smryVect.size();i++)
BOOST_REQUIRE_CLOSE (smryVect[i], bpr_10103_ref[i], 0.01);
if (Opm::filesystem::exists("SPE1CASE1.ESMRY"))
Opm::filesystem::remove("SPE1CASE1.ESMRY");
}

View File

@ -46,6 +46,7 @@
#include <tuple>
#include <stdio.h>
#include "tests/WorkArea.cpp"
void verifyWellState(const std::string& rst_filename, const Opm::Schedule& schedule) {
@ -197,7 +198,9 @@ void verifyWellState(const std::string& rst_filename, const Opm::Schedule& sched
BOOST_AUTO_TEST_CASE(EclipseWriteRestartWellInfo) {
WorkArea work;
std::string eclipse_data_filename = "testblackoilstate3.DATA";
work.copyIn(eclipse_data_filename);
auto python = std::make_shared<Opm::Python>();
Opm::Parser parser;