Added InjectorType enum.

This commit is contained in:
Joakim Hove
2014-01-28 08:35:12 +01:00
parent a464429388
commit eae4cbb889
3 changed files with 69 additions and 2 deletions

View File

@@ -211,5 +211,37 @@ namespace Opm {
throw std::invalid_argument("Unknown enum state string: " + stringValue );
}
}
/*****************************************************************/
namespace InjectorType {
const std::string InjectorEnum2String( InjectorEnum enumValue ) {
switch( enumValue ) {
case OIL:
return "OIL";
case GAS:
return "GAS";
case WATER:
return "WATER";
case MULTI:
return "MULTI";
default:
throw std::invalid_argument("unhandled enum value");
}
}
InjectorEnum InjectorEnumFromString( const std::string& stringValue ) {
if (stringValue == "OIL")
return OIL;
else if (stringValue == "WATER")
return WATER;
else if (stringValue == "GAS")
return GAS;
else if (stringValue == "MULTI")
return MULTI;
else
throw std::invalid_argument("Unknown enum state string: " + stringValue );
}
}
}

View File

@@ -44,13 +44,16 @@ namespace Opm {
namespace Injector {
enum InjectorType {
namespace InjectorType {
enum InjectorEnum {
WATER = 1,
GAS = 2,
OIL = 3,
MULTI = 4
};
const std::string InjectorEnum2String( InjectorEnum enumValue );
InjectorEnum InjectorEnumFromString( const std::string& stringValue );
};

View File

@@ -219,3 +219,35 @@ BOOST_AUTO_TEST_CASE(TestPhaseEnumMask) {
/*****************************************************************/
BOOST_AUTO_TEST_CASE(TestInjectorEnum2String) {
BOOST_CHECK_EQUAL( "OIL" , InjectorType::InjectorEnum2String(InjectorType::OIL));
BOOST_CHECK_EQUAL( "GAS" , InjectorType::InjectorEnum2String(InjectorType::GAS));
BOOST_CHECK_EQUAL( "WATER" , InjectorType::InjectorEnum2String(InjectorType::WATER));
BOOST_CHECK_EQUAL( "MULTI" , InjectorType::InjectorEnum2String(InjectorType::MULTI));
}
BOOST_AUTO_TEST_CASE(TestInjectorEnumFromString) {
BOOST_CHECK_THROW( InjectorType::InjectorEnumFromString("XXX") , std::invalid_argument );
BOOST_CHECK_EQUAL( InjectorType::OIL , InjectorType::InjectorEnumFromString("OIL"));
BOOST_CHECK_EQUAL( InjectorType::WATER , InjectorType::InjectorEnumFromString("WATER"));
BOOST_CHECK_EQUAL( InjectorType::GAS , InjectorType::InjectorEnumFromString("GAS"));
BOOST_CHECK_EQUAL( InjectorType::MULTI , InjectorType::InjectorEnumFromString("MULTI"));
}
BOOST_AUTO_TEST_CASE(TestInjectorEnumLoop) {
BOOST_CHECK_EQUAL( InjectorType::OIL , InjectorType::InjectorEnumFromString( InjectorType::InjectorEnum2String( InjectorType::OIL ) ));
BOOST_CHECK_EQUAL( InjectorType::WATER , InjectorType::InjectorEnumFromString( InjectorType::InjectorEnum2String( InjectorType::WATER ) ));
BOOST_CHECK_EQUAL( InjectorType::GAS , InjectorType::InjectorEnumFromString( InjectorType::InjectorEnum2String( InjectorType::GAS ) ));
BOOST_CHECK_EQUAL( InjectorType::MULTI , InjectorType::InjectorEnumFromString( InjectorType::InjectorEnum2String( InjectorType::MULTI ) ));
BOOST_CHECK_EQUAL( "MULTI" , InjectorType::InjectorEnum2String(InjectorType::InjectorEnumFromString( "MULTI" ) ));
BOOST_CHECK_EQUAL( "OIL" , InjectorType::InjectorEnum2String(InjectorType::InjectorEnumFromString( "OIL" ) ));
BOOST_CHECK_EQUAL( "GAS" , InjectorType::InjectorEnum2String(InjectorType::InjectorEnumFromString( "GAS" ) ));
BOOST_CHECK_EQUAL( "WATER" , InjectorType::InjectorEnum2String(InjectorType::InjectorEnumFromString( "WATER" ) ));
}