Make mutable accessors in TimeMap private
This commit is contained in:
@@ -51,16 +51,12 @@ namespace Opm {
|
||||
|
||||
TimeMap() = default;
|
||||
explicit TimeMap(std::time_t startTime);
|
||||
explicit TimeMap( const Deck& deck);
|
||||
explicit TimeMap(const Deck& deck);
|
||||
explicit TimeMap(const std::vector<std::time_t>& time_points);
|
||||
TimeMap(const std::vector<std::time_t>& timeList,
|
||||
const std::vector<StepData>& firstStepMonths,
|
||||
const std::vector<StepData>& firstStepYears);
|
||||
|
||||
void addTime(std::time_t newTime);
|
||||
void addTStep(int64_t step);
|
||||
void addFromDATESKeyword( const DeckKeyword& DATESKeyword );
|
||||
void addFromTSTEPKeyword( const DeckKeyword& TSTEPKeyword );
|
||||
size_t size() const;
|
||||
size_t last() const;
|
||||
size_t numTimesteps() const;
|
||||
@@ -99,6 +95,10 @@ namespace Opm {
|
||||
|
||||
bool isTimestepInFreqSequence (size_t timestep, size_t start_timestep, size_t frequency, bool years) const;
|
||||
size_t closest(const std::vector<size_t> & vec, size_t value) const;
|
||||
void addTStep(int64_t step);
|
||||
void addTime(std::time_t newTime);
|
||||
void addFromDATESKeyword( const DeckKeyword& DATESKeyword );
|
||||
void addFromTSTEPKeyword( const DeckKeyword& TSTEPKeyword );
|
||||
|
||||
std::vector<StepData> m_first_timestep_years; // A list of the first timestep of every year
|
||||
std::vector<StepData> m_first_timestep_months; // A list of the first timestep of every month
|
||||
|
||||
@@ -30,6 +30,16 @@
|
||||
#include <opm/parser/eclipse/EclipseState/Schedule/DynamicState.hpp>
|
||||
|
||||
|
||||
Opm::TimeMap make_timemap(int num) {
|
||||
std::vector<std::time_t> tp;
|
||||
for (int i = 0; i < num; i++)
|
||||
tp.push_back( Opm::asTimeT(Opm::TimeStampUTC({2010,1,i+1})));
|
||||
|
||||
Opm::TimeMap timeMap{ tp };
|
||||
return timeMap;
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(CreateDynamicTest) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
@@ -56,11 +66,7 @@ BOOST_AUTO_TEST_CASE(DynamicStateGetDefault) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateSetOutOfRangeThrows) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 2; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
|
||||
Opm::TimeMap timeMap = make_timemap(3);
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
BOOST_CHECK_THROW( state.update(3 , 100) , std::out_of_range );
|
||||
@@ -68,11 +74,7 @@ BOOST_AUTO_TEST_CASE(DynamicStateSetOutOfRangeThrows) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateSetOK) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
Opm::TimeMap timeMap = make_timemap(11);
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
state.update(2 , 23 );
|
||||
@@ -97,11 +99,7 @@ BOOST_AUTO_TEST_CASE(DynamicStateSetOK) {
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateAddAt) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
|
||||
Opm::TimeMap timeMap = make_timemap(11);
|
||||
Opm::DynamicState<int> state(timeMap , 0);
|
||||
|
||||
state.update( 10 , 77 );
|
||||
@@ -115,10 +113,7 @@ BOOST_AUTO_TEST_CASE(DynamicStateAddAt) {
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateOperatorSubscript) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
Opm::TimeMap timeMap = make_timemap(11);
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
state.update( 10 , 200 );
|
||||
@@ -129,15 +124,10 @@ BOOST_AUTO_TEST_CASE(DynamicStateOperatorSubscript) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicStateInitial) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
|
||||
Opm::TimeMap timeMap = make_timemap(11);
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
Opm::DynamicState<int> state2(timeMap , 137);
|
||||
|
||||
|
||||
state.update( 10 , 200 );
|
||||
BOOST_CHECK_EQUAL( state[9] , 137 );
|
||||
BOOST_CHECK_EQUAL( state[0] , 137 );
|
||||
@@ -165,11 +155,7 @@ BOOST_AUTO_TEST_CASE(DynamicStateInitial) {
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE( ResetGlobal ) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
|
||||
Opm::TimeMap timeMap = make_timemap(11);
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
state.update(5 , 100);
|
||||
@@ -193,11 +179,7 @@ BOOST_AUTO_TEST_CASE( ResetGlobal ) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE( CheckReturn ) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
|
||||
Opm::TimeMap timeMap = make_timemap(11);
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
BOOST_CHECK_EQUAL( false , state.update( 0 , 137 ));
|
||||
@@ -207,11 +189,7 @@ BOOST_AUTO_TEST_CASE( CheckReturn ) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE( UpdateEmptyInitial ) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
|
||||
Opm::TimeMap timeMap = make_timemap(11);
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
BOOST_CHECK_EQUAL( state[5] , 137 );
|
||||
@@ -221,11 +199,7 @@ BOOST_AUTO_TEST_CASE( UpdateEmptyInitial ) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE( find ) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 5; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
|
||||
Opm::TimeMap timeMap = make_timemap(6);
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
|
||||
BOOST_CHECK_EQUAL( state.find( 137 ) , 0 );
|
||||
@@ -254,11 +228,7 @@ BOOST_AUTO_TEST_CASE( find ) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE( update_elm ) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 5; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
|
||||
Opm::TimeMap timeMap = make_timemap(6);
|
||||
Opm::DynamicState<int> state(timeMap , 137);
|
||||
state.update( 5, 88 );
|
||||
BOOST_CHECK_THROW( state.update_elm(10,88) , std::out_of_range );
|
||||
@@ -280,11 +250,7 @@ BOOST_AUTO_TEST_CASE( update_elm ) {
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE( update_equal ) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
|
||||
Opm::TimeMap timeMap = make_timemap(11);
|
||||
Opm::DynamicState<int> state(timeMap , 0);
|
||||
state.update( 5, 100 );
|
||||
BOOST_REQUIRE_THROW(state.update_equal(100, 100), std::out_of_range);
|
||||
@@ -315,11 +281,7 @@ BOOST_AUTO_TEST_CASE( update_equal ) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE( UNIQUE ) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 10; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
|
||||
Opm::TimeMap timeMap = make_timemap(11);
|
||||
Opm::DynamicState<int> state(timeMap , 13);
|
||||
auto unique0 = state.unique();
|
||||
BOOST_CHECK_EQUAL(unique0.size(), 1);
|
||||
|
||||
@@ -42,10 +42,11 @@ BOOST_AUTO_TEST_CASE(CreateDynamicTest) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicVectorSet) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 4; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
std::vector<std::time_t> tp = { startDate };
|
||||
for (int i = 0; i < 4; i++)
|
||||
tp.push_back( Opm::asTimeT(Opm::TimeStampUTC({2010,1,i+2})));
|
||||
|
||||
Opm::TimeMap timeMap{ tp };
|
||||
Opm::DynamicVector<int> state(timeMap , 137);
|
||||
BOOST_CHECK_EQUAL( 137 , state[0] );
|
||||
BOOST_CHECK_EQUAL( 137 , state[1] );
|
||||
@@ -67,11 +68,13 @@ BOOST_AUTO_TEST_CASE(DynamicVectorSet) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(DynamicVectorPtr) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
for (size_t i = 0; i < 4; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
std::vector<std::time_t> tp = { startDate };
|
||||
for (int i = 0; i < 4; i++)
|
||||
tp.push_back( Opm::asTimeT(Opm::TimeStampUTC({2010,1,i+2})));
|
||||
|
||||
Opm::TimeMap timeMap{ tp };
|
||||
Opm::DynamicVector<int> state( timeMap , 137 );
|
||||
|
||||
BOOST_CHECK_EQUAL( 137 , state.iget(0) );
|
||||
BOOST_CHECK_EQUAL( 137 , state.iget(1) );
|
||||
BOOST_CHECK_EQUAL( 137 , state.iget(2) );
|
||||
|
||||
@@ -27,16 +27,19 @@
|
||||
|
||||
#include <opm/parser/eclipse/EclipseState/Schedule/TimeMap.hpp>
|
||||
#include <opm/parser/eclipse/EclipseState/Schedule/Events.hpp>
|
||||
#include <opm/common/utility/TimeService.hpp>
|
||||
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(CreateEmpty) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
Opm::DynamicVector<double> vector(timeMap , 9.99);
|
||||
std::vector<std::time_t> tp = { Opm::asTimeT(Opm::TimeStampUTC({2010,1,1})) };
|
||||
|
||||
for (size_t i = 0; i < 11; i++)
|
||||
timeMap.addTStep((i+1) * 24 * 60 * 60);
|
||||
for (int i = 0; i < 11; i++)
|
||||
tp.push_back( Opm::asTimeT(Opm::TimeStampUTC({2010,1,i+2})));
|
||||
|
||||
Opm::TimeMap timeMap(tp);
|
||||
Opm::Events events( timeMap );
|
||||
Opm::DynamicVector<double> vector(timeMap , 9.99);
|
||||
|
||||
BOOST_CHECK_EQUAL( false , events.hasEvent(Opm::ScheduleEvents::NEW_WELL , 10));
|
||||
|
||||
@@ -65,7 +68,7 @@ BOOST_AUTO_TEST_CASE(CreateEmpty) {
|
||||
|
||||
BOOST_AUTO_TEST_CASE(TestMultiple) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap{ startDate };
|
||||
Opm::TimeMap timeMap( { startDate } );
|
||||
Opm::DynamicVector<double> vector(timeMap , 9.99);
|
||||
Opm::Events events( timeMap );
|
||||
|
||||
|
||||
@@ -3393,13 +3393,16 @@ BOOST_AUTO_TEST_CASE(WellNames) {
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(RFT_CONFIG) {
|
||||
TimeMap tm(Opm::TimeMap::mkdate(2010, 1,1));
|
||||
tm.addTStep(static_cast<time_t>(24 * 60 * 60));
|
||||
tm.addTStep(static_cast<time_t>(24 * 60 * 60));
|
||||
tm.addTStep(static_cast<time_t>(24 * 60 * 60));
|
||||
tm.addTStep(static_cast<time_t>(24 * 60 * 60));
|
||||
tm.addTStep(static_cast<time_t>(24 * 60 * 60));
|
||||
std::vector<std::time_t> tp = { asTimeT( TimeStampUTC({2010, 1, 1})),
|
||||
asTimeT( TimeStampUTC({2010, 1, 2})),
|
||||
asTimeT( TimeStampUTC({2010, 1, 3})),
|
||||
asTimeT( TimeStampUTC({2010, 1, 4})),
|
||||
asTimeT( TimeStampUTC({2010, 1, 5})),
|
||||
asTimeT( TimeStampUTC({2010, 1, 6}))};
|
||||
|
||||
|
||||
|
||||
TimeMap tm(tp);
|
||||
RFTConfig conf(tm);
|
||||
BOOST_CHECK_THROW( conf.rft("W1", 100), std::invalid_argument);
|
||||
BOOST_CHECK_THROW( conf.plt("W1", 100), std::invalid_argument);
|
||||
|
||||
@@ -47,44 +47,29 @@ BOOST_AUTO_TEST_CASE(CreateTimeMapFromTimeT) {
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(AddDateBeforeThrows) {
|
||||
Opm::TimeMap timeMap(startDateJan1st2010);
|
||||
const std::time_t dateBefore = Opm::TimeMap::mkdate(2009, 2, 1);
|
||||
BOOST_CHECK_THROW(timeMap.addTime(dateBefore), std::invalid_argument);
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(GetStartDate) {
|
||||
Opm::TimeMap timeMap(startDateJan1st2010);
|
||||
BOOST_CHECK_EQUAL( Opm::TimeMap::mkdate(2010, 1, 1) , timeMap.getStartTime(/*timeStepIdx=*/0));
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(AddDateAfterSizeCorrect) {
|
||||
Opm::TimeMap timeMap(startDateJan1st2010);
|
||||
const std::time_t dateAfter = Opm::TimeMap::mkdate(2010, 2, 1);
|
||||
timeMap.addTime(dateAfter);
|
||||
BOOST_CHECK_EQUAL( 2U , timeMap.size());
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(AddDateNegativeStepThrows) {
|
||||
const std::time_t startDate = time(NULL);
|
||||
Opm::TimeMap timeMap(startDate);
|
||||
BOOST_CHECK_THROW(timeMap.addTStep(static_cast<time_t>(-1)) , std::invalid_argument);
|
||||
std::vector<std::time_t> time_points = { Opm::asTimeT(Opm::TimeStampUTC({2000,1,1})), Opm::asTimeT(Opm::TimeStampUTC({1999,1,1}))};
|
||||
BOOST_CHECK_THROW(Opm::TimeMap timeMap(time_points), std::invalid_argument);
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(AddStepSizeCorrect) {
|
||||
Opm::TimeMap timeMap{startDateJan1st2010};
|
||||
|
||||
timeMap.addTStep(static_cast<time_t>(1 * 60 * 60));
|
||||
timeMap.addTStep(static_cast<time_t>(23 * 60 * 60));
|
||||
std::vector<std::time_t> time_points = { Opm::asTimeT(Opm::TimeStampUTC({2010,1,1})),
|
||||
Opm::asTimeT(Opm::TimeStampUTC({2010,1,2})),
|
||||
Opm::asTimeT(Opm::TimeStampUTC({2010,1,3}))};
|
||||
Opm::TimeMap timeMap(time_points);
|
||||
BOOST_CHECK_EQUAL(3U, timeMap.size());
|
||||
|
||||
BOOST_CHECK_THROW(timeMap[3] , std::invalid_argument );
|
||||
BOOST_CHECK_EQUAL(timeMap[0] , Opm::TimeMap::mkdate(2010, 1, 1 ));
|
||||
BOOST_CHECK_EQUAL(timeMap[2] , Opm::TimeMap::mkdate(2010, 1, 2 ));
|
||||
BOOST_CHECK_EQUAL(timeMap[2] , Opm::TimeMap::mkdate(2010, 1, 3 ));
|
||||
}
|
||||
|
||||
|
||||
@@ -181,21 +166,6 @@ BOOST_AUTO_TEST_CASE( timeFromEclipseInputRecord ) {
|
||||
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE( addDATESFromWrongKeywordThrows ) {
|
||||
Opm::Parser parser;
|
||||
Opm::TimeMap timeMap(startDateJan1st2010);
|
||||
Opm::DeckKeyword deckKeyword( parser.getKeyword("GRID") );
|
||||
BOOST_CHECK_THROW( timeMap.addFromDATESKeyword( deckKeyword ) , std::invalid_argument );
|
||||
}
|
||||
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE( addTSTEPFromWrongKeywordThrows ) {
|
||||
Opm::Parser parser;
|
||||
Opm::TimeMap timeMap(startDateJan1st2010);
|
||||
Opm::DeckKeyword deckKeyword(parser.getKeyword("GRID"));
|
||||
BOOST_CHECK_THROW( timeMap.addFromTSTEPKeyword( deckKeyword ) , std::invalid_argument );
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(TimeStepsCorrect) {
|
||||
const char *deckData =
|
||||
|
||||
Reference in New Issue
Block a user