use correct size of bit set, test added
This commit is contained in:
committed by
Atgeirr Flø Rasmussen
parent
2fbf3c4fc9
commit
6efe981234
@@ -38,7 +38,8 @@ enum class Phase {
|
||||
POLYMER = 4,
|
||||
ENERGY = 5,
|
||||
POLYMW = 6,
|
||||
FOAM = 7
|
||||
FOAM = 7,
|
||||
NUMPHASES // only used to get correct size of the bitset in class Phases
|
||||
};
|
||||
|
||||
Phase get_phase( const std::string& );
|
||||
@@ -53,7 +54,7 @@ class Phases {
|
||||
bool active( Phase ) const noexcept;
|
||||
size_t size() const noexcept;
|
||||
private:
|
||||
std::bitset< 7 > bits;
|
||||
std::bitset< static_cast<int>(Phase::NUMPHASES) > bits;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -199,11 +199,11 @@ Runspec::Runspec( const Deck& deck ) :
|
||||
active_phases( Phases( deck.hasKeyword( "OIL" ),
|
||||
deck.hasKeyword( "GAS" ),
|
||||
deck.hasKeyword( "WATER" ),
|
||||
deck.hasKeyword( "FOAM" ),
|
||||
deck.hasKeyword( "SOLVENT" ),
|
||||
deck.hasKeyword( "POLYMER" ),
|
||||
deck.hasKeyword( "THERMAL" ),
|
||||
deck.hasKeyword( "POLYMW" ) ) ),
|
||||
deck.hasKeyword( "POLYMW" ),
|
||||
deck.hasKeyword( "FOAM" ) ) ),
|
||||
m_tabdims( deck ),
|
||||
endscale( deck ),
|
||||
welldims( deck ),
|
||||
|
||||
@@ -548,3 +548,27 @@ BOOST_AUTO_TEST_CASE(PolymerMolecularWeight) {
|
||||
BOOST_CHECK( phases.active( Phase::POLYMER ) );
|
||||
BOOST_CHECK( phases.active( Phase::POLYMW) );
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_CASE(Foam) {
|
||||
const std::string input = R"(
|
||||
RUNSPEC
|
||||
OIL
|
||||
GAS
|
||||
WATER
|
||||
FOAM
|
||||
)";
|
||||
|
||||
Parser parser;
|
||||
|
||||
auto deck = parser.parseString(input);
|
||||
|
||||
Runspec runspec( deck );
|
||||
const auto& phases = runspec.phases();
|
||||
BOOST_CHECK_EQUAL( 4, phases.size() );
|
||||
BOOST_CHECK( phases.active( Phase::OIL ) );
|
||||
BOOST_CHECK( phases.active( Phase::GAS ) );
|
||||
BOOST_CHECK( phases.active( Phase::WATER ) );
|
||||
BOOST_CHECK( phases.active( Phase::FOAM) );
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user