Added new UNKNOWN for keywordSizeEnum
This commit is contained in:
@@ -58,6 +58,12 @@ namespace Opm {
|
||||
case FIXED:
|
||||
return "FIXED";
|
||||
break;
|
||||
case OTHER_KEYWORD_IN_DECK:
|
||||
return "OTHER_KEYWORD_IN_DECK";
|
||||
break;
|
||||
case UNKNOWN:
|
||||
return "UNKNOWN";
|
||||
break;
|
||||
default:
|
||||
throw std::invalid_argument("Implementation error - should NOT be here");
|
||||
}
|
||||
@@ -70,6 +76,10 @@ namespace Opm {
|
||||
return SLASH_TERMINATED;
|
||||
else if (stringValue == "FIXED")
|
||||
return FIXED;
|
||||
else if (stringValue == "OTHER_KEYWORD_IN_DECK")
|
||||
return OTHER_KEYWORD_IN_DECK;
|
||||
else if (stringValue == "UNKNOWN")
|
||||
return UNKNOWN;
|
||||
else
|
||||
throw std::invalid_argument("String: " + stringValue + " can not be converted to enum value");
|
||||
}
|
||||
|
||||
@@ -28,7 +28,8 @@ namespace Opm {
|
||||
enum ParserKeywordSizeEnum {
|
||||
SLASH_TERMINATED = 0,
|
||||
FIXED = 1,
|
||||
OTHER = 2
|
||||
OTHER_KEYWORD_IN_DECK = 2,
|
||||
UNKNOWN=3
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -37,7 +37,6 @@ namespace Opm {
|
||||
if (!validName(name))
|
||||
throw std::invalid_argument("Invalid name: " + name + "keyword must be all upper case, max 8 characters. Starting with character.");
|
||||
|
||||
m_keywordSizeType = SLASH_TERMINATED;
|
||||
m_isDataKeyword = false;
|
||||
m_isTableCollection = false;
|
||||
m_name = name;
|
||||
@@ -45,19 +44,23 @@ namespace Opm {
|
||||
m_record = ParserRecordPtr(new ParserRecord);
|
||||
}
|
||||
|
||||
ParserKeyword::ParserKeyword(const std::string& name, ParserKeywordActionEnum action) {
|
||||
ParserKeyword::ParserKeyword(const std::string& name, ParserKeywordSizeEnum sizeType, ParserKeywordActionEnum action) {
|
||||
|
||||
m_keywordSizeType = SLASH_TERMINATED;
|
||||
commonInit(name, action);
|
||||
m_action = action;
|
||||
}
|
||||
|
||||
ParserKeyword::ParserKeyword(const char * name, ParserKeywordActionEnum action) {
|
||||
ParserKeyword::ParserKeyword(const char * name, ParserKeywordSizeEnum sizeType, ParserKeywordActionEnum action) {
|
||||
if (!(sizeType == SLASH_TERMINATED || sizeType == UNKNOWN)) {
|
||||
throw std::invalid_argument("Size type " + ParserKeywordSizeEnum2String(sizeType) + " can not be set explicitly.");
|
||||
}
|
||||
m_keywordSizeType = sizeType;
|
||||
commonInit(name, action);
|
||||
m_action = action;
|
||||
}
|
||||
|
||||
ParserKeyword::ParserKeyword(const std::string& name, size_t fixedKeywordSize, ParserKeywordActionEnum action) {
|
||||
commonInit(name, action);
|
||||
m_keywordSizeType = FIXED;
|
||||
m_keywordSizeType = sizeType;
|
||||
m_fixedSize = fixedKeywordSize;
|
||||
}
|
||||
|
||||
@@ -136,7 +139,7 @@ namespace Opm {
|
||||
}
|
||||
|
||||
void ParserKeyword::initSizeKeyword(const std::string& sizeKeyword, const std::string& sizeItem) {
|
||||
m_keywordSizeType = OTHER;
|
||||
m_keywordSizeType = OTHER_KEYWORD_IN_DECK;
|
||||
m_sizeDefinitionPair = std::pair<std::string, std::string>(sizeKeyword, sizeItem);
|
||||
}
|
||||
|
||||
@@ -372,14 +375,15 @@ namespace Opm {
|
||||
if (m_fixedSize == other.m_fixedSize)
|
||||
equal = true;
|
||||
break;
|
||||
case SLASH_TERMINATED:
|
||||
equal = true;
|
||||
break;
|
||||
case OTHER:
|
||||
case OTHER_KEYWORD_IN_DECK:
|
||||
if ((m_sizeDefinitionPair.first == other.m_sizeDefinitionPair.first) &&
|
||||
(m_sizeDefinitionPair.second == other.m_sizeDefinitionPair.second))
|
||||
equal = true;
|
||||
break;
|
||||
default:
|
||||
equal = true;
|
||||
break;
|
||||
|
||||
}
|
||||
return equal;
|
||||
} else
|
||||
@@ -396,7 +400,7 @@ namespace Opm {
|
||||
case FIXED:
|
||||
os << lhs << " = new ParserKeyword(\"" << m_name << "\",(size_t)" << m_fixedSize << "," << actionString << ");" << std::endl;
|
||||
break;
|
||||
case OTHER:
|
||||
case OTHER_KEYWORD_IN_DECK:
|
||||
if (isTableCollection())
|
||||
os << lhs << " = new ParserKeyword(\"" << m_name << "\",\"" << m_sizeDefinitionPair.first << "\",\"" << m_sizeDefinitionPair.second << "\"," << actionString << ", true);" << std::endl;
|
||||
else
|
||||
|
||||
@@ -52,6 +52,8 @@ BOOST_AUTO_TEST_CASE(TestItemSizeEnumLoop) {
|
||||
BOOST_AUTO_TEST_CASE(TestKeywordSizeEnum2String) {
|
||||
BOOST_CHECK_EQUAL( "SLASH_TERMINATED" , ParserKeywordSizeEnum2String(SLASH_TERMINATED));
|
||||
BOOST_CHECK_EQUAL( "FIXED" , ParserKeywordSizeEnum2String(FIXED));
|
||||
BOOST_CHECK_EQUAL( "OTHER_KEYWORD_IN_DECK" , ParserKeywordSizeEnum2String(OTHER_KEYWORD_IN_DECK));
|
||||
BOOST_CHECK_EQUAL( "UNKNOWN" , ParserKeywordSizeEnum2String(UNKNOWN));
|
||||
}
|
||||
|
||||
|
||||
@@ -59,6 +61,8 @@ BOOST_AUTO_TEST_CASE(TestKeywordSizeEnumFromString) {
|
||||
BOOST_CHECK_THROW( ParserKeywordSizeEnumFromString("XXX") , std::invalid_argument );
|
||||
BOOST_CHECK_EQUAL( FIXED , ParserKeywordSizeEnumFromString("FIXED"));
|
||||
BOOST_CHECK_EQUAL( SLASH_TERMINATED , ParserKeywordSizeEnumFromString("SLASH_TERMINATED"));
|
||||
BOOST_CHECK_EQUAL( "OTHER_KEYWORD_IN_DECK" , ParserKeywordSizeEnum2String(OTHER_KEYWORD_IN_DECK));
|
||||
BOOST_CHECK_EQUAL( "UNKNOWN" , ParserKeywordSizeEnum2String(UNKNOWN));
|
||||
}
|
||||
|
||||
|
||||
@@ -66,9 +70,13 @@ BOOST_AUTO_TEST_CASE(TestKeywordSizeEnumFromString) {
|
||||
BOOST_AUTO_TEST_CASE(TestKeywordSizeEnumLoop) {
|
||||
BOOST_CHECK_EQUAL( FIXED , ParserKeywordSizeEnumFromString( ParserKeywordSizeEnum2String( FIXED ) ));
|
||||
BOOST_CHECK_EQUAL( SLASH_TERMINATED , ParserKeywordSizeEnumFromString( ParserKeywordSizeEnum2String( SLASH_TERMINATED ) ));
|
||||
BOOST_CHECK_EQUAL( OTHER_KEYWORD_IN_DECK , ParserKeywordSizeEnumFromString( ParserKeywordSizeEnum2String( OTHER_KEYWORD_IN_DECK ) ));
|
||||
BOOST_CHECK_EQUAL( UNKNOWN , ParserKeywordSizeEnumFromString( ParserKeywordSizeEnum2String( UNKNOWN ) ));
|
||||
|
||||
BOOST_CHECK_EQUAL( "FIXED" , ParserKeywordSizeEnum2String(ParserKeywordSizeEnumFromString( "FIXED" ) ));
|
||||
BOOST_CHECK_EQUAL( "SLASH_TERMINATED" , ParserKeywordSizeEnum2String(ParserKeywordSizeEnumFromString( "SLASH_TERMINATED" ) ));
|
||||
BOOST_CHECK_EQUAL( "OTHER_KEYWORD_IN_DECK" , ParserKeywordSizeEnum2String(ParserKeywordSizeEnumFromString( "OTHER_KEYWORD_IN_DECK" ) ));
|
||||
BOOST_CHECK_EQUAL( "UNKNOWN" , ParserKeywordSizeEnum2String(ParserKeywordSizeEnumFromString( "UNKNOWN" ) ));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ BOOST_AUTO_TEST_CASE(ParserKeyword_withOtherSize_SizeTypeOTHER) {
|
||||
std::string keyword("KEYWORD");
|
||||
ParserKeyword parserKeyword(keyword, "EQUILDIMS" , "NTEQUIL");
|
||||
const std::pair<std::string,std::string>& sizeKW = parserKeyword.getSizeDefinitionPair();
|
||||
BOOST_CHECK_EQUAL(OTHER , parserKeyword.getSizeType() );
|
||||
BOOST_CHECK_EQUAL(OTHER_KEYWORD_IN_DECK , parserKeyword.getSizeType() );
|
||||
BOOST_CHECK_EQUAL("EQUILDIMS", sizeKW.first );
|
||||
BOOST_CHECK_EQUAL("NTEQUIL" , sizeKW.second );
|
||||
}
|
||||
@@ -204,7 +204,7 @@ BOOST_AUTO_TEST_CASE(ConstructFromJsonObject_withSizeOther) {
|
||||
const std::pair<std::string,std::string>& sizeKW = parserKeyword.getSizeDefinitionPair();
|
||||
BOOST_CHECK_EQUAL("BPR" , parserKeyword.getName());
|
||||
BOOST_CHECK_EQUAL( false , parserKeyword.hasFixedSize() );
|
||||
BOOST_CHECK_EQUAL( parserKeyword.getSizeType() , OTHER);
|
||||
BOOST_CHECK_EQUAL( parserKeyword.getSizeType() , OTHER_KEYWORD_IN_DECK);
|
||||
BOOST_CHECK_EQUAL("Bjarne", sizeKW.first );
|
||||
BOOST_CHECK_EQUAL("BjarneIgjen" , sizeKW.second );
|
||||
}
|
||||
@@ -368,7 +368,7 @@ BOOST_AUTO_TEST_CASE(ConstructorIsTableCollection) {
|
||||
BOOST_CHECK(parserKeyword->isTableCollection());
|
||||
BOOST_CHECK(!parserKeyword->hasFixedSize());
|
||||
|
||||
BOOST_CHECK_EQUAL( parserKeyword->getSizeType() , OTHER);
|
||||
BOOST_CHECK_EQUAL( parserKeyword->getSizeType() , OTHER_KEYWORD_IN_DECK);
|
||||
BOOST_CHECK_EQUAL("TABDIMS", sizeKW.first );
|
||||
BOOST_CHECK_EQUAL("NTPVT" , sizeKW.second );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user