From 3efe37dc372acb7b4395859981fca2ef248384d9 Mon Sep 17 00:00:00 2001 From: Joakim Hove Date: Fri, 15 Nov 2013 15:58:06 +0100 Subject: [PATCH] Added size() property to DynamicState --- .../EclipseState/Schedule/DynamicState.hpp | 5 +++++ .../Schedule/tests/DynamicStateTests.cpp | 21 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/opm/parser/eclipse/EclipseState/Schedule/DynamicState.hpp b/opm/parser/eclipse/EclipseState/Schedule/DynamicState.hpp index ed919911b..1ed8968b9 100644 --- a/opm/parser/eclipse/EclipseState/Schedule/DynamicState.hpp +++ b/opm/parser/eclipse/EclipseState/Schedule/DynamicState.hpp @@ -50,6 +50,11 @@ namespace Opm { } + size_t size() const { + return m_data.size(); + } + + void add(size_t index , T value) { if (index >= (m_timeMap->size())) throw std::range_error("Index value is out range."); diff --git a/opm/parser/eclipse/EclipseState/Schedule/tests/DynamicStateTests.cpp b/opm/parser/eclipse/EclipseState/Schedule/tests/DynamicStateTests.cpp index fc6309b89..b4269951e 100644 --- a/opm/parser/eclipse/EclipseState/Schedule/tests/DynamicStateTests.cpp +++ b/opm/parser/eclipse/EclipseState/Schedule/tests/DynamicStateTests.cpp @@ -109,3 +109,24 @@ BOOST_AUTO_TEST_CASE(DynamicStateAddIndexAlreadySetThrows) { + +BOOST_AUTO_TEST_CASE(DynamicStateCheckSize) { + boost::gregorian::date startDate( 2010 , boost::gregorian::Jan , 1); + Opm::TimeMapPtr timeMap(new Opm::TimeMap(startDate)); + Opm::DynamicState state(timeMap , 137); + for (size_t i = 0; i < 10; i++) + timeMap->addTStep( boost::posix_time::hours( (i+1) * 24 )); + + BOOST_CHECK_EQUAL( 0U , state.size() ); + + state.add( 0 , 10 ); + BOOST_CHECK_EQUAL( 1U , state.size() ); + + state.add( 2 , 10 ); + BOOST_CHECK_EQUAL( 3U , state.size() ); + state.add( 2 , 10 ); + BOOST_CHECK_EQUAL( 3U , state.size() ); + + state.add( 6 , 10 ); + BOOST_CHECK_EQUAL( 7U , state.size() ); +}