Add initializer_list based WellContainer constructor

This commit is contained in:
Joakim Hove 2021-05-12 07:15:34 +02:00
parent 817e81d3b7
commit 66c56bb8c3
2 changed files with 17 additions and 0 deletions

View File

@ -20,6 +20,7 @@
#ifndef OPM_WELL_CONTAINER_HEADER_INCLUDED #ifndef OPM_WELL_CONTAINER_HEADER_INCLUDED
#define OPM_WELL_CONTAINER_HEADER_INCLUDED #define OPM_WELL_CONTAINER_HEADER_INCLUDED
#include <initializer_list>
#include <stdexcept> #include <stdexcept>
#include <string> #include <string>
#include <unordered_map> #include <unordered_map>
@ -44,6 +45,15 @@ template <class T>
class WellContainer { class WellContainer {
public: public:
WellContainer() = default;
WellContainer(std::initializer_list<std::pair<std::string,T>> init_list) {
for (const auto& [name, value] : init_list)
this->add(name, value);
}
std::size_t size() const { std::size_t size() const {
return this->data.size(); return this->data.size();
} }

View File

@ -483,6 +483,13 @@ BOOST_AUTO_TEST_CASE(TESTWellContainer) {
BOOST_CHECK_EQUAL(vec_copy.size(), wc3.size()); BOOST_CHECK_EQUAL(vec_copy.size(), wc3.size());
for (std::size_t i = 0; i < wc3.size(); i++) for (std::size_t i = 0; i < wc3.size(); i++)
BOOST_CHECK_EQUAL(vec_copy[i], wc3[i]); BOOST_CHECK_EQUAL(vec_copy[i], wc3[i]);
Opm::WellContainer<int> wci({{"W1", 1}, {"W2", 2}, {"W3", 3}});
BOOST_CHECK_EQUAL(wci.size(), 3);
BOOST_CHECK(wci.has("W1"));
BOOST_CHECK_EQUAL(wci[1], 2);
BOOST_CHECK_EQUAL(wci["W3"], 3);
} }