Implementation (not finished) of wells_equal, well_controls_equal, and tests. To build a WellsManager test for old and new parser

Conflicts:
	CMakeLists_files.cmake
This commit is contained in:
Kristian Flikka
2013-12-18 15:06:38 +01:00
committed by Joakim Hove
parent b280af372b
commit fd942e347d
6 changed files with 206 additions and 13 deletions

View File

@@ -203,3 +203,29 @@ BOOST_AUTO_TEST_CASE(Copy)
}
}
}
BOOST_AUTO_TEST_CASE(Equals_WellsEqual_ReturnsTrue) {
const int nphases = 2;
const int nwells = 2;
const int nperfs = 2;
std::shared_ptr<Wells> W1(create_wells(nphases, nwells, nperfs),
destroy_wells);
std::shared_ptr<Wells> W2(create_wells(nphases, nwells, nperfs),
destroy_wells);
BOOST_CHECK(wells_equal(W1.get(), W2.get()));
}
BOOST_AUTO_TEST_CASE(Equals_WellsDiffer_ReturnsFalse) {
const int nphases = 2;
const int nperfs = 2;
std::shared_ptr<Wells> W1(create_wells(nphases, 2, nperfs),
destroy_wells);
std::shared_ptr<Wells> W2(create_wells(nphases, 3, nperfs),
destroy_wells);
BOOST_CHECK(!wells_equal(W1.get(), W2.get()));
}

View File

@@ -0,0 +1,40 @@
/*
Copyright 2013 Statoil ASA.
This file is part of the Open Porous Media project (OPM).
OPM is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OPM is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OPM. If not, see <http://www.gnu.org/licenses/>.
*/
#include <config.h>
#if HAVE_DYNAMIC_BOOST_TEST
#define BOOST_TEST_DYN_LINK
#endif
#define NVERBOSE // Suppress own messages when throw()ing
#define BOOST_TEST_MODULE WellsManagerTests
#include <boost/test/unit_test.hpp>
#include <opm/core/wells/WellsManager.hpp>
#include <opm/core/io/eclipse/EclipseGridParser.hpp>
#include <opm/core/grid/GridManager.hpp>
BOOST_AUTO_TEST_CASE(Constructor_Old_Works) {
Opm::EclipseGridParser oldParser("wells_manager_data.data");
Opm::GridManager gridManager(oldParser);
Opm::WellsManager wellsManager(oldParser, *gridManager.c_grid(), NULL);
const Wells* oldWells = wellsManager.c_wells();
BOOST_CHECK_EQUAL(oldWells->number_of_wells, 2);
}

45
tests/wells_manager_data.data Executable file
View File

@@ -0,0 +1,45 @@
OIL
GAS
WATER
DIMENS
15 5 5 /
GRID
DXV
15*1000.0 /
DYV
5*1000.0 /
DZV
10.0 20.0 30.0 10.0 5.0 /
SCHEDULE
WELSPECS
'INJ1' 'G' 1 1 8335 'GAS' /
'PROD1' 'G' 10 10 8400 'OIL' /
/
COMPDAT
'INJ1' 1 1 1 1 'OPEN' 1 10.6092 0.5 /
'PROD1' 10 3 3 3 'OPEN' 0 10.6092 0.5 /
/
WCONPROD
'PROD1' 'OPEN' 'ORAT' 20000 4* 1000 /
/
WCONINJE
'INJ1' 'GAS' 'OPEN' 'RATE' 100000 100000 50000/
/
TSTEP
14.0
/
END