Add three argument (year, month, day) constructor TimeStampUTC

This commit is contained in:
Joakim Hove
2020-04-04 16:17:32 +02:00
parent efb34b6533
commit ab2e5cc310
8 changed files with 31 additions and 26 deletions

View File

@@ -53,6 +53,7 @@ namespace Opm {
explicit TimeStampUTC(const std::time_t tp); explicit TimeStampUTC(const std::time_t tp);
explicit TimeStampUTC(const YMD& ymd); explicit TimeStampUTC(const YMD& ymd);
TimeStampUTC(int year, int month, int day);
TimeStampUTC(const YMD& ymd, TimeStampUTC(const YMD& ymd,
int hour, int hour,
int minutes, int minutes,

View File

@@ -113,6 +113,10 @@ Opm::TimeStampUTC::TimeStampUTC(const YMD& ymd)
: ymd_{ std::move(ymd) } : ymd_{ std::move(ymd) }
{} {}
Opm::TimeStampUTC::TimeStampUTC(int year, int month, int day)
: ymd_{ year, month, day }
{}
Opm::TimeStampUTC& Opm::TimeStampUTC::hour(const int h) Opm::TimeStampUTC& Opm::TimeStampUTC::hour(const int h)
{ {
this->hour_ = h; this->hour_ = h;

View File

@@ -115,7 +115,7 @@ RstHeader::RstHeader(const std::vector<int>& intehead, const std::vector<bool>&
} }
std::pair<std::time_t, std::size_t> RstHeader::restart_info() const { std::pair<std::time_t, std::size_t> RstHeader::restart_info() const {
return std::make_pair(asTimeT(TimeStampUTC({this->year, this->month, this->mday})), return std::make_pair(asTimeT(TimeStampUTC(this->year, this->month, this->mday)),
std::size_t(this->report_step)); std::size_t(this->report_step));
} }

View File

@@ -33,7 +33,7 @@
Opm::TimeMap make_timemap(int num) { Opm::TimeMap make_timemap(int num) {
std::vector<std::time_t> tp; std::vector<std::time_t> tp;
for (int i = 0; i < num; i++) for (int i = 0; i < num; i++)
tp.push_back( Opm::asTimeT(Opm::TimeStampUTC({2010,1,i+1}))); tp.push_back( Opm::asTimeT(Opm::TimeStampUTC(2010,1,i+1)));
Opm::TimeMap timeMap{ tp }; Opm::TimeMap timeMap{ tp };
return timeMap; return timeMap;

View File

@@ -44,7 +44,7 @@ BOOST_AUTO_TEST_CASE(DynamicVectorSet) {
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1); const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
std::vector<std::time_t> tp = { startDate }; std::vector<std::time_t> tp = { startDate };
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
tp.push_back( Opm::asTimeT(Opm::TimeStampUTC({2010,1,i+2}))); tp.push_back( Opm::asTimeT(Opm::TimeStampUTC(2010,1,i+2)));
Opm::TimeMap timeMap{ tp }; Opm::TimeMap timeMap{ tp };
Opm::DynamicVector<int> state(timeMap , 137); Opm::DynamicVector<int> state(timeMap , 137);
@@ -70,7 +70,7 @@ BOOST_AUTO_TEST_CASE(DynamicVectorPtr) {
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1); const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
std::vector<std::time_t> tp = { startDate }; std::vector<std::time_t> tp = { startDate };
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
tp.push_back( Opm::asTimeT(Opm::TimeStampUTC({2010,1,i+2}))); tp.push_back( Opm::asTimeT(Opm::TimeStampUTC(2010,1,i+2)));
Opm::TimeMap timeMap{ tp }; Opm::TimeMap timeMap{ tp };
Opm::DynamicVector<int> state( timeMap , 137 ); Opm::DynamicVector<int> state( timeMap , 137 );

View File

@@ -32,10 +32,10 @@
BOOST_AUTO_TEST_CASE(CreateEmpty) { BOOST_AUTO_TEST_CASE(CreateEmpty) {
std::vector<std::time_t> tp = { Opm::asTimeT(Opm::TimeStampUTC({2010,1,1})) }; std::vector<std::time_t> tp = { Opm::asTimeT(Opm::TimeStampUTC(2010,1,1)) };
for (int i = 0; i < 11; i++) for (int i = 0; i < 11; i++)
tp.push_back( Opm::asTimeT(Opm::TimeStampUTC({2010,1,i+2}))); tp.push_back( Opm::asTimeT(Opm::TimeStampUTC(2010,1,i+2)));
Opm::TimeMap timeMap(tp); Opm::TimeMap timeMap(tp);
Opm::Events events( timeMap ); Opm::Events events( timeMap );

View File

@@ -3453,12 +3453,12 @@ BOOST_AUTO_TEST_CASE(WellNames) {
BOOST_AUTO_TEST_CASE(RFT_CONFIG) { BOOST_AUTO_TEST_CASE(RFT_CONFIG) {
std::vector<std::time_t> tp = { asTimeT( TimeStampUTC({2010, 1, 1})), std::vector<std::time_t> tp = { asTimeT( TimeStampUTC(2010, 1, 1)),
asTimeT( TimeStampUTC({2010, 1, 2})), asTimeT( TimeStampUTC(2010, 1, 2)),
asTimeT( TimeStampUTC({2010, 1, 3})), asTimeT( TimeStampUTC(2010, 1, 3)),
asTimeT( TimeStampUTC({2010, 1, 4})), asTimeT( TimeStampUTC(2010, 1, 4)),
asTimeT( TimeStampUTC({2010, 1, 5})), asTimeT( TimeStampUTC(2010, 1, 5)),
asTimeT( TimeStampUTC({2010, 1, 6}))}; asTimeT( TimeStampUTC(2010, 1, 6))};

View File

@@ -48,15 +48,15 @@ BOOST_AUTO_TEST_CASE(GetStartDate) {
BOOST_AUTO_TEST_CASE(AddDateNegativeStepThrows) { BOOST_AUTO_TEST_CASE(AddDateNegativeStepThrows) {
std::vector<std::time_t> time_points = { Opm::asTimeT(Opm::TimeStampUTC({2000,1,1})), Opm::asTimeT(Opm::TimeStampUTC({1999,1,1}))}; 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_CHECK_THROW(Opm::TimeMap timeMap(time_points), std::invalid_argument);
} }
BOOST_AUTO_TEST_CASE(AddStepSizeCorrect) { BOOST_AUTO_TEST_CASE(AddStepSizeCorrect) {
std::vector<std::time_t> time_points = { Opm::asTimeT(Opm::TimeStampUTC({2010,1,1})), 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,2)),
Opm::asTimeT(Opm::TimeStampUTC({2010,1,3}))}; Opm::asTimeT(Opm::TimeStampUTC(2010,1,3))};
Opm::TimeMap timeMap(time_points); Opm::TimeMap timeMap(time_points);
BOOST_CHECK_EQUAL(3U, timeMap.size()); BOOST_CHECK_EQUAL(3U, timeMap.size());
@@ -696,25 +696,25 @@ TSTEP
const auto deck3 = parser.parseString(deck_string3); const auto deck3 = parser.parseString(deck_string3);
// The date 2005-01-02 is not present as a DATES in the deck; invalid input. // The date 2005-01-02 is not present as a DATES in the deck; invalid input.
auto invalid_restart = std::make_pair(Opm::asTimeT(Opm::TimeStampUTC({2005, 1, 2})), 5); auto invalid_restart = std::make_pair(Opm::asTimeT(Opm::TimeStampUTC(2005, 1, 2)), 5);
auto valid_restart = std::make_pair(Opm::asTimeT(Opm::TimeStampUTC({2005, 1, 1})), 5); auto valid_restart = std::make_pair(Opm::asTimeT(Opm::TimeStampUTC(2005, 1, 1)), 5);
BOOST_CHECK_THROW( Opm::TimeMap(deck1, invalid_restart) , std::invalid_argument); BOOST_CHECK_THROW( Opm::TimeMap(deck1, invalid_restart) , std::invalid_argument);
Opm::TimeMap tm1(deck1, valid_restart); Opm::TimeMap tm1(deck1, valid_restart);
BOOST_CHECK_THROW( tm1[1], std::invalid_argument ); BOOST_CHECK_THROW( tm1[1], std::invalid_argument );
BOOST_CHECK_THROW( tm1[4], std::invalid_argument ); BOOST_CHECK_THROW( tm1[4], std::invalid_argument );
auto start = tm1[0]; auto start = tm1[0];
BOOST_CHECK_EQUAL(start , Opm::asTimeT(Opm::TimeStampUTC({2000,1,1}))); BOOST_CHECK_EQUAL(start , Opm::asTimeT(Opm::TimeStampUTC(2000,1,1)));
BOOST_CHECK_EQUAL(tm1[5] , Opm::asTimeT(Opm::TimeStampUTC({2005,1,1}))); BOOST_CHECK_EQUAL(tm1[5] , Opm::asTimeT(Opm::TimeStampUTC(2005,1,1)));
BOOST_CHECK(tm1.skiprest()); BOOST_CHECK(tm1.skiprest());
Opm::TimeMap tm2(deck2, valid_restart); Opm::TimeMap tm2(deck2, valid_restart);
BOOST_CHECK_EQUAL(tm2[5], Opm::asTimeT(Opm::TimeStampUTC({2005,1,1}))); BOOST_CHECK_EQUAL(tm2[5], Opm::asTimeT(Opm::TimeStampUTC(2005,1,1)));
BOOST_CHECK_EQUAL(tm2[6], Opm::asTimeT(Opm::TimeStampUTC({2005,7,1}))); BOOST_CHECK_EQUAL(tm2[6], Opm::asTimeT(Opm::TimeStampUTC(2005,7,1)));
Opm::TimeMap tm3(deck3, valid_restart); Opm::TimeMap tm3(deck3, valid_restart);
BOOST_CHECK_EQUAL(tm3[5], Opm::asTimeT(Opm::TimeStampUTC({2005,1,1}))); BOOST_CHECK_EQUAL(tm3[5], Opm::asTimeT(Opm::TimeStampUTC(2005,1,1)));
BOOST_CHECK_EQUAL(tm3[6], Opm::asTimeT(Opm::TimeStampUTC({2005,1,2}))); BOOST_CHECK_EQUAL(tm3[6], Opm::asTimeT(Opm::TimeStampUTC(2005,1,2)));
BOOST_CHECK_EQUAL(tm3[7], Opm::asTimeT(Opm::TimeStampUTC({2005,1,3}))); BOOST_CHECK_EQUAL(tm3[7], Opm::asTimeT(Opm::TimeStampUTC(2005,1,3)));
BOOST_CHECK_EQUAL(tm3[8], Opm::asTimeT(Opm::TimeStampUTC({2005,1,4}))); BOOST_CHECK_EQUAL(tm3[8], Opm::asTimeT(Opm::TimeStampUTC(2005,1,4)));
} }