first complete version that satisfies all unit tests
This commit is contained in:
parent
31c55af919
commit
5907a7520a
@ -31,11 +31,12 @@ public:
|
|||||||
using storage = std::vector<std::string>;
|
using storage = std::vector<std::string>;
|
||||||
|
|
||||||
WList() = default;
|
WList() = default;
|
||||||
WList(const storage& wlist);
|
WList(const storage& wlist, std::string wlname);
|
||||||
std::size_t size() const;
|
std::size_t size() const;
|
||||||
void add(const std::string& well);
|
void add(const std::string& well);
|
||||||
void del(const std::string& well);
|
void del(const std::string& well);
|
||||||
bool has(const std::string& well) const;
|
bool has(const std::string& well) const;
|
||||||
|
std::string getName() const;
|
||||||
|
|
||||||
std::vector<std::string> wells() const;
|
std::vector<std::string> wells() const;
|
||||||
bool operator==(const WList& data) const;
|
bool operator==(const WList& data) const;
|
||||||
@ -44,10 +45,12 @@ public:
|
|||||||
void serializeOp(Serializer& serializer)
|
void serializeOp(Serializer& serializer)
|
||||||
{
|
{
|
||||||
serializer(well_list);
|
serializer(well_list);
|
||||||
|
serializer(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
storage well_list;
|
storage well_list;
|
||||||
|
std::string name;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -33,14 +33,16 @@ public:
|
|||||||
|
|
||||||
static WListManager serializeObject();
|
static WListManager serializeObject();
|
||||||
|
|
||||||
|
//const std::vector<std::string> wListInputSeq()const;
|
||||||
std::size_t WListSize() const;
|
std::size_t WListSize() const;
|
||||||
bool hasList(const std::string&) const;
|
bool hasList(const std::string&) const;
|
||||||
WList& getList(const std::string& name);
|
WList& getList(const std::string& name);
|
||||||
const WList& getList(const std::string& name) const;
|
const WList& getList(const std::string& name) const;
|
||||||
WList& newList(const std::string& name);
|
WList& newList(const std::string& name, const std::vector<std::string>& wname);
|
||||||
//void delWell(const std::string& well);
|
//void delWell(const std::string& well);
|
||||||
|
|
||||||
const std::vector<std::string>& getWListNames(const std::string& wname) const;
|
const std::vector<std::string>& getWListNames(const std::string& wname) const;
|
||||||
|
std::size_t getNoWListsWell(std::string wname) const;
|
||||||
bool hasWList(const std::string& wname) const;
|
bool hasWList(const std::string& wname) const;
|
||||||
void addWListWell(const std::string& wname, const std::string& wlname);
|
void addWListWell(const std::string& wname, const std::string& wlname);
|
||||||
void delWell(const std::string& wname);
|
void delWell(const std::string& wname);
|
||||||
@ -53,11 +55,14 @@ public:
|
|||||||
{
|
{
|
||||||
serializer.map(wlists);
|
serializer.map(wlists);
|
||||||
serializer.map(well_wlist_names);
|
serializer.map(well_wlist_names);
|
||||||
|
//serializer.vector(wlist_input_seq);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::map<std::string, WList> wlists;
|
std::map<std::string, WList> wlists;
|
||||||
std::map<std::string, std::vector<std::string>> well_wlist_names;
|
std::map<std::string, std::vector<std::string>> well_wlist_names;
|
||||||
|
std::map<std::string, std::size_t> no_wlists_well;
|
||||||
|
//std::vector<std::string> wlist_input_seq;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -112,6 +112,19 @@ std::vector<std::vector<std::size_t>> wellOrderInWList(const Opm::Schedule& sc
|
|||||||
throw std::logic_error(msg);
|
throw std::logic_error(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/*for (const auto& wlst_name : wlmngr.wListInputSeq()) {
|
||||||
|
if (std::count(wListNames.begin(), wListNames.end(), wlst_name) > 0) {
|
||||||
|
if (wlmngr.hasList(wlst_name)) {
|
||||||
|
wlist = wlmngr.getList(wlst_name);
|
||||||
|
auto well_no = findInVector<std::string>(wlist.wells(), wname);
|
||||||
|
if (well_no) well_order[iwlst] = well_no.value() + 1;
|
||||||
|
iwlst += 1;
|
||||||
|
} else {
|
||||||
|
auto msg = fmt::format("Well List Manager does not contain WLIST: {} ", wlst_name);
|
||||||
|
throw std::logic_error(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
//store vector in map - and reset vector values to zero
|
//store vector in map - and reset vector values to zero
|
||||||
curWelOrd.push_back(well_order);
|
curWelOrd.push_back(well_order);
|
||||||
|
@ -1595,7 +1595,7 @@ namespace {
|
|||||||
throw std::invalid_argument("The list name in WLIST must start with a '*'");
|
throw std::invalid_argument("The list name in WLIST must start with a '*'");
|
||||||
|
|
||||||
if (action == "NEW") {
|
if (action == "NEW") {
|
||||||
new_wlm.newList(name);
|
new_wlm.newList(name, wells);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!new_wlm.hasList(name))
|
if (!new_wlm.hasList(name))
|
||||||
|
@ -22,8 +22,9 @@
|
|||||||
|
|
||||||
namespace Opm {
|
namespace Opm {
|
||||||
|
|
||||||
WList::WList(const storage& wlist) :
|
WList::WList(const storage& wlist, std::string wlname) :
|
||||||
well_list(wlist)
|
well_list(wlist),
|
||||||
|
name(wlname)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -33,6 +34,10 @@ std::size_t WList::size() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::string WList::getName() const {
|
||||||
|
return this->name;
|
||||||
|
}
|
||||||
|
|
||||||
bool WList::has(const std::string& well) const {
|
bool WList::has(const std::string& well) const {
|
||||||
return (std::count(this->well_list.begin(), this->well_list.end(), well) > 0);
|
return (std::count(this->well_list.begin(), this->well_list.end(), well) > 0);
|
||||||
}
|
}
|
||||||
|
@ -27,10 +27,20 @@
|
|||||||
#include <opm/parser/eclipse/EclipseState/Schedule/Well/WListManager.hpp>
|
#include <opm/parser/eclipse/EclipseState/Schedule/Well/WListManager.hpp>
|
||||||
namespace Opm {
|
namespace Opm {
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
std::optional<int> findInVector(const std::vector<T> & vecOfElements, const T & element)
|
||||||
|
{
|
||||||
|
// Find given element in vector
|
||||||
|
auto it = std::find(vecOfElements.begin(), vecOfElements.end(), element);
|
||||||
|
|
||||||
|
return (it != vecOfElements.end()) ? std::optional<int> {std::distance(vecOfElements.begin(), it)} :
|
||||||
|
std::nullopt;
|
||||||
|
}
|
||||||
|
|
||||||
WListManager WListManager::serializeObject()
|
WListManager WListManager::serializeObject()
|
||||||
{
|
{
|
||||||
WListManager result;
|
WListManager result;
|
||||||
result.wlists = {{"test1", WList({"test2", "test3"})}};
|
result.wlists = {{"test1", WList({"test2", "test3"}, "test1")}};
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -44,12 +54,36 @@ namespace Opm {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WList& WListManager::newList(const std::string& name) {
|
/*WList& WListManager::newList(const std::string& name) {
|
||||||
this->wlists.erase(name);
|
this->wlists.erase(name);
|
||||||
this->wlists.insert( {name, WList() });
|
this->wlists.insert({name, WList({}, name)});
|
||||||
|
return this->getList(name);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
WList& WListManager::newList(const std::string& name, const std::vector<std::string>& new_well_names) {
|
||||||
|
if (this->hasList(name)) {
|
||||||
|
auto& wlist = getList(name);
|
||||||
|
std::vector<std::string> replace_wellnames;
|
||||||
|
for (const auto& wname : wlist.wells()){
|
||||||
|
if (std::count(new_well_names.begin(), new_well_names.end(), wname) == 0) {
|
||||||
|
this->delWListWell(wname, name);
|
||||||
|
} else {
|
||||||
|
replace_wellnames.push_back(wname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (const auto& rwname : replace_wellnames) {
|
||||||
|
wlist.del(rwname);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//this->wlist_input_seq.push_back(name);
|
||||||
|
this->wlists.insert( {name, WList({}, name)} );
|
||||||
|
}
|
||||||
return this->getList(name);
|
return this->getList(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//const std::vector<std::string> WListManager::wListInputSeq() const {
|
||||||
|
// return this->wlist_input_seq;
|
||||||
|
//}
|
||||||
|
|
||||||
WList& WListManager::getList(const std::string& name) {
|
WList& WListManager::getList(const std::string& name) {
|
||||||
return this->wlists.at(name);
|
return this->wlists.at(name);
|
||||||
@ -78,20 +112,29 @@ namespace Opm {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::size_t WListManager::getNoWListsWell(std::string wname) const {
|
||||||
|
return this->no_wlists_well.at(wname);
|
||||||
|
}
|
||||||
|
|
||||||
void WListManager::addWListWell(const std::string& wname, const std::string& wlname) {
|
void WListManager::addWListWell(const std::string& wname, const std::string& wlname) {
|
||||||
//add well to wlist if it is not already in the well list
|
//add well to wlist if it is not already in the well list
|
||||||
auto& wlist = this->getList(wlname);
|
auto& wlist = this->getList(wlname);
|
||||||
wlist.add(wname);
|
wlist.add(wname);
|
||||||
//add well list to well if not in vector already
|
//add well list to well if not in vector already
|
||||||
if (this->well_wlist_names.count(wname) > 0) {
|
if (this->well_wlist_names.count(wname) > 0) {
|
||||||
|
auto& no_wl = this->no_wlists_well.at(wname);
|
||||||
auto& wlist_vec = this->well_wlist_names.at(wname);
|
auto& wlist_vec = this->well_wlist_names.at(wname);
|
||||||
if (std::count(wlist_vec.begin(), wlist_vec.end(), wlname) == 0)
|
if (std::count(wlist_vec.begin(), wlist_vec.end(), wlname) == 0) {
|
||||||
wlist_vec.push_back(wlname);
|
wlist_vec.push_back(wlname);
|
||||||
|
no_wl += 1;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
//make wlist vector for new well
|
//make wlist vector for new well
|
||||||
std::vector<std::string> new_wlvec;
|
std::vector<std::string> new_wlvec;
|
||||||
|
std::size_t sz = 1;
|
||||||
new_wlvec.push_back(wlname);
|
new_wlvec.push_back(wlname);
|
||||||
this->well_wlist_names.insert({wname, new_wlvec});
|
this->well_wlist_names.insert({wname, new_wlvec});
|
||||||
|
this->no_wlists_well.insert({wname, sz});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,21 +142,38 @@ namespace Opm {
|
|||||||
for (auto& pair: this->wlists) {
|
for (auto& pair: this->wlists) {
|
||||||
auto& wlist = pair.second;
|
auto& wlist = pair.second;
|
||||||
wlist.del(wname);
|
wlist.del(wname);
|
||||||
|
if (this->well_wlist_names.count(wname) > 0) {
|
||||||
|
auto& wlist_vec = this->well_wlist_names.at(wname);
|
||||||
|
auto& no_wl = this->no_wlists_well.at(wname);
|
||||||
|
auto itwl = std::find(wlist_vec.begin(), wlist_vec.end(), wlist.getName());
|
||||||
|
if (itwl != wlist_vec.end()) {
|
||||||
|
wlist_vec.erase(itwl);
|
||||||
|
no_wl -= 1;
|
||||||
|
if (no_wl == 0) {
|
||||||
|
wlist_vec.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const auto& it = this->well_wlist_names.find(wname);
|
|
||||||
this->well_wlist_names.erase(it);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WListManager::delWListWell(const std::string& wname, const std::string& wlname) {
|
void WListManager::delWListWell(const std::string& wname, const std::string& wlname) {
|
||||||
//delete well from well list
|
//delete well from well list
|
||||||
auto& wlist = this->getList(wlname);
|
auto& wlist = this->getList(wlname);
|
||||||
wlist.del(wname);
|
wlist.del(wname);
|
||||||
|
|
||||||
if (this->well_wlist_names.count(wname) > 0) {
|
if (this->well_wlist_names.count(wname) > 0) {
|
||||||
auto& wlist_vec = this->well_wlist_names.at(wname);
|
auto& wlist_vec = this->well_wlist_names.at(wname);
|
||||||
// remove wlist element from vector of well lists for a well
|
auto& no_wl = this->no_wlists_well.at(wname);
|
||||||
|
// reduce the no of well lists associated with a well, delete whole list if no wlists is zero
|
||||||
const auto& it = std::find(wlist_vec.begin(), wlist_vec.end(), wlname);
|
const auto& it = std::find(wlist_vec.begin(), wlist_vec.end(), wlname);
|
||||||
if (it != wlist_vec.end()) {
|
if (it != wlist_vec.end()) {
|
||||||
wlist_vec.erase(it);
|
//wlist_vec.erase(it);
|
||||||
|
no_wl -= 1;
|
||||||
|
if (no_wl == 0) {
|
||||||
|
wlist_vec.clear();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2564,6 +2564,17 @@ WLIST --written by schedule script
|
|||||||
|
|
||||||
DATES
|
DATES
|
||||||
10 SEP 2020 /
|
10 SEP 2020 /
|
||||||
|
/
|
||||||
|
|
||||||
|
WLIST --written by schedule script
|
||||||
|
'*PRD1' NEW 'P2' 'P3' /
|
||||||
|
/
|
||||||
|
|
||||||
|
WLIST --written by schedule script
|
||||||
|
'*PRD2' NEW 'P1' /
|
||||||
|
/
|
||||||
|
|
||||||
|
DATES
|
||||||
20 SEP 2020 /
|
20 SEP 2020 /
|
||||||
1 OCT 2020 /
|
1 OCT 2020 /
|
||||||
10 OCT 2020 /
|
10 OCT 2020 /
|
||||||
@ -2572,9 +2583,6 @@ DATES
|
|||||||
1 DEC 2020 /
|
1 DEC 2020 /
|
||||||
1 JAN 2021 /
|
1 JAN 2021 /
|
||||||
/
|
/
|
||||||
|
|
||||||
-- 1.5 2 2 5 10 10 30 30 30 30 30 30 30 /
|
|
||||||
|
|
||||||
|
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -651,10 +651,11 @@ BOOST_AUTO_TEST_CASE(TestWLIST) {
|
|||||||
|
|
||||||
|
|
||||||
Action::Context context(st, wlm);
|
Action::Context context(st, wlm);
|
||||||
auto& wl = wlm.newList("*LIST1");
|
//auto& wl = wlm.newList("*LIST1");
|
||||||
wl.add("W1");
|
auto& wl = wlm.newList("*LIST1", {"W1", "W3", "W5"});
|
||||||
wl.add("W3");
|
//wl.add("W1");
|
||||||
wl.add("W5");
|
//wl.add("W3");
|
||||||
|
//wl.add("W5");
|
||||||
auto res = ast.eval(context);
|
auto res = ast.eval(context);
|
||||||
auto wells = res.wells();
|
auto wells = res.wells();
|
||||||
BOOST_CHECK(res);
|
BOOST_CHECK(res);
|
||||||
|
@ -76,28 +76,28 @@ BOOST_AUTO_TEST_CASE(WLISTManager) {
|
|||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
auto& wlist1 = wlm.newList("LIST1");
|
auto& wlist1 = wlm.newList("LIST1", {"A", "B", "C"});
|
||||||
wlist1.add("A");
|
//wlist1.add("A");
|
||||||
wlist1.add("B");
|
//wlist1.add("B");
|
||||||
wlist1.add("C");
|
//wlist1.add("C");
|
||||||
}
|
}
|
||||||
|
|
||||||
// If a new list is added with the same name as an existing list the old
|
// If a new list is added with the same name as an existing list the old
|
||||||
// list is dropped and a new list is created.
|
// list is dropped and a new list is created.
|
||||||
{
|
{
|
||||||
auto& wlist1 = wlm.newList("LIST1");
|
auto& wlist1 = wlm.newList("LIST1", {});
|
||||||
BOOST_CHECK_EQUAL(wlist1.size(), 0U);
|
BOOST_CHECK_EQUAL(wlist1.size(), 0U);
|
||||||
}
|
}
|
||||||
auto& wlist1 = wlm.newList("LIST1");
|
auto& wlist1 = wlm.newList("LIST1", {"W1", "W2", "W3"});
|
||||||
auto& wlist2 = wlm.newList("LIST2");
|
auto& wlist2 = wlm.newList("LIST2", {"W1", "W2", "W3"});
|
||||||
|
|
||||||
wlist1.add("W1");
|
/*wlist1.add("W1");
|
||||||
wlist1.add("W2");
|
wlist1.add("W2");
|
||||||
wlist1.add("W3");
|
wlist1.add("W3");
|
||||||
|
|
||||||
wlist2.add("W1");
|
wlist2.add("W1");
|
||||||
wlist2.add("W2");
|
wlist2.add("W2");
|
||||||
wlist2.add("W3");
|
wlist2.add("W3"); */
|
||||||
|
|
||||||
// The delWell operation will work across all well lists.
|
// The delWell operation will work across all well lists.
|
||||||
wlm.delWell("W1");
|
wlm.delWell("W1");
|
||||||
|
@ -84,7 +84,7 @@ struct SimulationCase
|
|||||||
BOOST_AUTO_TEST_SUITE(Aggregate_WList)
|
BOOST_AUTO_TEST_SUITE(Aggregate_WList)
|
||||||
|
|
||||||
|
|
||||||
// test dimensions of multisegment data
|
// test dimensions for IWLS and ZWLS plus the vectors for different cases
|
||||||
BOOST_AUTO_TEST_CASE (Constructor)
|
BOOST_AUTO_TEST_CASE (Constructor)
|
||||||
{
|
{
|
||||||
namespace VI = ::Opm::RestartIO::Helpers::VectorItems;
|
namespace VI = ::Opm::RestartIO::Helpers::VectorItems;
|
||||||
@ -424,6 +424,70 @@ BOOST_AUTO_TEST_CASE (Constructor)
|
|||||||
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
|
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Report Step 9 (10.09.20)
|
||||||
|
{
|
||||||
|
const auto simStep = std::size_t {8};
|
||||||
|
double secs_elapsed = 3.1536E07;
|
||||||
|
const auto ih
|
||||||
|
= Opm::RestartIO::Helpers::createInteHead(es, grid, sched, secs_elapsed, simStep, simStep + 1, simStep);
|
||||||
|
|
||||||
|
auto wListData = Opm::RestartIO::Helpers::AggregateWListData(ih);
|
||||||
|
wListData.captureDeclaredWListData(sched, simStep, ih);
|
||||||
|
|
||||||
|
// IWls-parameters
|
||||||
|
auto iWLs = wListData.getIWls();
|
||||||
|
auto start = 0 * ih[VI::intehead::MXWLSTPRWELL];
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 0], 1);
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 1], 0);
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
|
||||||
|
|
||||||
|
start = 1 * ih[VI::intehead::MXWLSTPRWELL];
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 0], 0);
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 1], 1);
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
|
||||||
|
|
||||||
|
start = 2 * ih[VI::intehead::MXWLSTPRWELL];
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 0], 0);
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 1], 2);
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
|
||||||
|
|
||||||
|
start = 3 * ih[VI::intehead::MXWLSTPRWELL];
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 0], 1);
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 1], 0);
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 2], 0);
|
||||||
|
BOOST_CHECK_EQUAL(iWLs[start + 3], 0);
|
||||||
|
|
||||||
|
// ZWLs-parameters
|
||||||
|
const std::string blank8 = " ";
|
||||||
|
|
||||||
|
auto zWLs = wListData.getZWls();
|
||||||
|
start = 0 * ih[VI::intehead::MXWLSTPRWELL];
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*PRD2"));
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), blank8);
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
|
||||||
|
|
||||||
|
start = 1 * ih[VI::intehead::MXWLSTPRWELL];
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), blank8);
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), pad8("*PRD1"));
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
|
||||||
|
|
||||||
|
start = 2 * ih[VI::intehead::MXWLSTPRWELL];
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), blank8);
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), pad8("*PRD1"));
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
|
||||||
|
|
||||||
|
start = 3 * ih[VI::intehead::MXWLSTPRWELL];
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 0].c_str(), pad8("*INJ1"));
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 1].c_str(), blank8);
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 2].c_str(), blank8);
|
||||||
|
BOOST_CHECK_EQUAL(zWLs[start + 3].c_str(), blank8);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
Loading…
Reference in New Issue
Block a user