Added new enum ParserKeywordActionEnum

This commit is contained in:
Joakim Hove 2013-10-08 11:39:04 +02:00
parent 8884f865b3
commit 9b96d6dfa5
3 changed files with 71 additions and 0 deletions

View File

@ -103,4 +103,36 @@ namespace Opm {
else
throw std::invalid_argument("String: " + stringValue + " can not be converted to enum value");
}
/*****************************************************************/
const std::string ParserKeywordActionEnum2String(ParserKeywordActionEnum enumValue) {
switch (enumValue) {
case INTERNALIZE:
return "INTERNALIZE";
break;
case IGNORE:
return "IGNORE";
break;
case IGNORE_WARNING:
return "IGNORE_WARNING";
break;
default:
throw std::invalid_argument("Implementation error - should NOT be here");
}
}
ParserKeywordActionEnum ParserKeywordActionEnumFromString(const std::string& stringValue) {
if (stringValue == "INTERNALIZE")
return INTERNALIZE;
else if (stringValue == "IGNORE")
return IGNORE;
else if (stringValue == "IGNORE_WARNING")
return IGNORE_WARNING;
else
throw std::invalid_argument("String: " + stringValue + " can not be converted to enum value");
}
}

View File

@ -47,6 +47,13 @@ namespace Opm {
};
enum ParserKeywordActionEnum {
INTERNALIZE = 0,
IGNORE = 1,
IGNORE_WARNING = 2
};
const std::string ParserKeywordActionEnum2String(ParserKeywordActionEnum enumValue);
const std::string ParserItemSizeEnum2String(ParserItemSizeEnum enumValue);
const std::string ParserKeywordSizeEnum2String(ParserKeywordSizeEnum enumValue);
const std::string ParserValueTypeEnum2String(ParserValueTypeEnum enumValue);
@ -54,6 +61,7 @@ namespace Opm {
ParserItemSizeEnum ParserItemSizeEnumFromString(const std::string& stringValue);
ParserKeywordSizeEnum ParserKeywordSizeEnumFromString(const std::string& stringValue);
ParserValueTypeEnum ParserValueTypeEnumFromString(const std::string& stringValue);
ParserKeywordActionEnum ParserKeywordActionEnumFromString(const std::string& stringValue);
}
#endif

View File

@ -100,3 +100,34 @@ BOOST_AUTO_TEST_CASE(TestValueTypeEnumLoop) {
BOOST_CHECK_EQUAL( "FLOAT" , ParserValueTypeEnum2String(ParserValueTypeEnumFromString( "FLOAT" ) ));
BOOST_CHECK_EQUAL( "STRING" , ParserValueTypeEnum2String(ParserValueTypeEnumFromString( "STRING" ) ));
}
/*****************************************************************/
BOOST_AUTO_TEST_CASE(TestKeywordActionEnum2String) {
BOOST_CHECK_EQUAL( "INTERNALIZE" , ParserKeywordActionEnum2String(INTERNALIZE));
BOOST_CHECK_EQUAL( "IGNORE" , ParserKeywordActionEnum2String(IGNORE));
BOOST_CHECK_EQUAL( "IGNORE_WARNING" , ParserKeywordActionEnum2String(IGNORE_WARNING));
}
BOOST_AUTO_TEST_CASE(TestKeywordActionEnumFromString) {
BOOST_CHECK_THROW( ParserKeywordActionEnumFromString("XXX") , std::invalid_argument );
BOOST_CHECK_EQUAL( INTERNALIZE , ParserKeywordActionEnumFromString("INTERNALIZE"));
BOOST_CHECK_EQUAL( IGNORE_WARNING , ParserKeywordActionEnumFromString("IGNORE_WARNING"));
BOOST_CHECK_EQUAL( IGNORE , ParserKeywordActionEnumFromString("IGNORE"));
}
BOOST_AUTO_TEST_CASE(TestKeywordActionEnumLoop) {
BOOST_CHECK_EQUAL( INTERNALIZE , ParserKeywordActionEnumFromString( ParserKeywordActionEnum2String( INTERNALIZE ) ));
BOOST_CHECK_EQUAL( IGNORE , ParserKeywordActionEnumFromString( ParserKeywordActionEnum2String( IGNORE ) ));
BOOST_CHECK_EQUAL( IGNORE_WARNING , ParserKeywordActionEnumFromString( ParserKeywordActionEnum2String( IGNORE_WARNING ) ));
BOOST_CHECK_EQUAL( "INTERNALIZE" , ParserKeywordActionEnum2String(ParserKeywordActionEnumFromString( "INTERNALIZE" ) ));
BOOST_CHECK_EQUAL( "IGNORE" , ParserKeywordActionEnum2String(ParserKeywordActionEnumFromString( "IGNORE" ) ));
BOOST_CHECK_EQUAL( "IGNORE_WARNING" , ParserKeywordActionEnum2String(ParserKeywordActionEnumFromString( "IGNORE_WARNING" ) ));
}