Manage events with the ScheduleState machinery
This commit is contained in:
@@ -25,53 +25,22 @@
|
||||
#include <boost/test/unit_test.hpp>
|
||||
#include <boost/date_time/posix_time/posix_time.hpp>
|
||||
|
||||
#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) {
|
||||
std::vector<std::time_t> tp = { Opm::asTimeT(Opm::TimeStampUTC(2010,1,1)) };
|
||||
Opm::Events events;
|
||||
|
||||
for (int i = 0; i < 11; i++)
|
||||
tp.push_back( Opm::asTimeT(Opm::TimeStampUTC(2010,1,i+2)));
|
||||
BOOST_CHECK_EQUAL( false , events.hasEvent(Opm::ScheduleEvents::NEW_WELL));
|
||||
|
||||
Opm::TimeMap timeMap(tp);
|
||||
Opm::Events events( timeMap );
|
||||
Opm::DynamicVector<double> vector(timeMap , 9.99);
|
||||
events.addEvent( Opm::ScheduleEvents::NEW_WELL);
|
||||
BOOST_CHECK_EQUAL( true , events.hasEvent(Opm::ScheduleEvents::NEW_WELL));
|
||||
|
||||
BOOST_CHECK_EQUAL( false , events.hasEvent(Opm::ScheduleEvents::NEW_WELL , 10));
|
||||
|
||||
events.addEvent( Opm::ScheduleEvents::NEW_WELL , 0 );
|
||||
BOOST_CHECK_EQUAL( true , events.hasEvent(Opm::ScheduleEvents::NEW_WELL , 0));
|
||||
|
||||
events.addEvent( Opm::ScheduleEvents::NEW_WELL , 10 );
|
||||
BOOST_CHECK_EQUAL( false , events.hasEvent(Opm::ScheduleEvents::NEW_WELL , 9));
|
||||
BOOST_CHECK_EQUAL( true , events.hasEvent(Opm::ScheduleEvents::NEW_WELL , 10));
|
||||
BOOST_CHECK_EQUAL( false , events.hasEvent(Opm::ScheduleEvents::NEW_WELL , 11));
|
||||
|
||||
events.addEvent( Opm::ScheduleEvents::NEW_WELL , 10 );
|
||||
BOOST_CHECK_EQUAL( false , events.hasEvent(Opm::ScheduleEvents::NEW_WELL , 9));
|
||||
BOOST_CHECK_EQUAL( true , events.hasEvent(Opm::ScheduleEvents::NEW_WELL , 10));
|
||||
BOOST_CHECK_EQUAL( false , events.hasEvent(Opm::ScheduleEvents::NEW_WELL , 11));
|
||||
|
||||
events.addEvent( Opm::ScheduleEvents::WELL_STATUS_CHANGE , 9 );
|
||||
events.addEvent( Opm::ScheduleEvents::WELL_STATUS_CHANGE , 10 );
|
||||
BOOST_CHECK_EQUAL( false , events.hasEvent(Opm::ScheduleEvents::NEW_WELL , 9));
|
||||
BOOST_CHECK_EQUAL( true , events.hasEvent(Opm::ScheduleEvents::NEW_WELL , 10));
|
||||
BOOST_CHECK_EQUAL( false , events.hasEvent(Opm::ScheduleEvents::NEW_WELL , 11));
|
||||
BOOST_CHECK_EQUAL( true , events.hasEvent(Opm::ScheduleEvents::WELL_STATUS_CHANGE , 9));
|
||||
BOOST_CHECK_EQUAL( true , events.hasEvent(Opm::ScheduleEvents::WELL_STATUS_CHANGE , 10));
|
||||
events.addEvent( Opm::ScheduleEvents::WELL_STATUS_CHANGE);
|
||||
BOOST_CHECK_EQUAL( true , events.hasEvent(Opm::ScheduleEvents::NEW_WELL));
|
||||
BOOST_CHECK_EQUAL( true , events.hasEvent(Opm::ScheduleEvents::WELL_STATUS_CHANGE));
|
||||
BOOST_CHECK_EQUAL( true , events.hasEvent(Opm::ScheduleEvents::WELL_STATUS_CHANGE | Opm::ScheduleEvents::NEW_WELL));
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(TestMultiple) {
|
||||
const std::time_t startDate = Opm::TimeMap::mkdate(2010, 1, 1);
|
||||
Opm::TimeMap timeMap( { startDate } );
|
||||
Opm::DynamicVector<double> vector(timeMap , 9.99);
|
||||
Opm::Events events( timeMap );
|
||||
|
||||
events.addEvent( Opm::ScheduleEvents::NEW_WELL , 0 );
|
||||
BOOST_CHECK( events.hasEvent( Opm::ScheduleEvents::NEW_WELL | Opm::ScheduleEvents::NEW_GROUP , 0 ));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user