2013-03-18 13:40:14 +01:00
|
|
|
/*
|
|
|
|
|
Copyright 2013 Statoil ASA.
|
|
|
|
|
|
|
|
|
|
This file is part of the Open Porous Media project (OPM).
|
|
|
|
|
|
|
|
|
|
OPM is free software: you can redistribute it and/or modify
|
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
(at your option) any later version.
|
|
|
|
|
|
|
|
|
|
OPM is distributed in the hope that it will be useful,
|
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
|
along with OPM. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
*/
|
|
|
|
|
|
2013-03-18 15:59:57 +01:00
|
|
|
#include <stdexcept>
|
2013-03-20 16:29:51 +01:00
|
|
|
#include <iostream>
|
2013-03-14 14:54:53 +01:00
|
|
|
#include <boost/filesystem.hpp>
|
2013-03-18 15:59:57 +01:00
|
|
|
#define BOOST_TEST_MODULE ParserTests
|
|
|
|
|
#include <boost/test/unit_test.hpp>
|
|
|
|
|
|
2013-07-30 14:10:07 +02:00
|
|
|
#include <opm/json/JsonObject.hpp>
|
2013-04-03 11:38:06 +02:00
|
|
|
|
2013-05-30 10:11:12 +02:00
|
|
|
#include <opm/parser/eclipse/Parser/Parser.hpp>
|
2013-06-20 15:30:37 +02:00
|
|
|
#include <opm/parser/eclipse/Parser/ParserKeyword.hpp>
|
2013-04-04 09:56:00 +02:00
|
|
|
|
2013-06-20 13:56:11 +02:00
|
|
|
#include <opm/parser/eclipse/Parser/ParserIntItem.hpp>
|
|
|
|
|
#include <opm/parser/eclipse/Parser/ParserStringItem.hpp>
|
|
|
|
|
|
2013-06-18 13:47:07 +02:00
|
|
|
|
2013-05-30 10:11:12 +02:00
|
|
|
using namespace Opm;
|
2013-04-04 09:56:00 +02:00
|
|
|
|
2013-06-20 15:40:45 +02:00
|
|
|
/************************Basic structural tests**********************'*/
|
|
|
|
|
|
2013-03-18 15:59:57 +01:00
|
|
|
BOOST_AUTO_TEST_CASE(Initializing) {
|
2013-06-21 10:23:24 +02:00
|
|
|
BOOST_CHECK_NO_THROW(Parser parser);
|
2013-05-06 12:13:49 +02:00
|
|
|
BOOST_CHECK_NO_THROW(Parser parser);
|
2013-05-30 10:11:12 +02:00
|
|
|
BOOST_CHECK_NO_THROW(ParserPtr parserPtr(new Parser()));
|
|
|
|
|
BOOST_CHECK_NO_THROW(ParserConstPtr parserConstPtr(new Parser()));
|
2013-03-14 12:07:33 +01:00
|
|
|
}
|
|
|
|
|
|
2013-06-20 15:40:45 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(addKeyword_keyword_doesntfail) {
|
2013-05-06 12:13:49 +02:00
|
|
|
Parser parser;
|
|
|
|
|
{
|
2014-06-11 15:08:58 +02:00
|
|
|
ParserKeywordPtr equilKeyword = ParserKeyword::createDynamicSized("EQUIL");
|
2014-06-27 16:42:54 +02:00
|
|
|
parser.addParserKeyword(equilKeyword);
|
2013-05-06 12:13:49 +02:00
|
|
|
}
|
2013-03-20 17:35:03 +01:00
|
|
|
}
|
2013-04-03 11:38:06 +02:00
|
|
|
|
2013-07-31 11:30:21 +02:00
|
|
|
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_AUTO_TEST_CASE(canParseKeyword_canParseKeyword_returnstrue) {
|
2013-06-18 14:12:00 +02:00
|
|
|
ParserPtr parser(new Parser());
|
2014-06-27 16:42:54 +02:00
|
|
|
parser->addParserKeyword(ParserKeyword::createDynamicSized("FJAS"));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK(parser->canParseKeyword("FJAS"));
|
2013-06-04 14:32:30 +02:00
|
|
|
}
|
|
|
|
|
|
2013-06-20 15:40:45 +02:00
|
|
|
|
2013-08-27 10:10:12 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(getKeyword_haskeyword_returnskeyword) {
|
2013-08-26 15:17:52 +02:00
|
|
|
ParserPtr parser(new Parser());
|
2014-06-11 15:08:58 +02:00
|
|
|
ParserKeywordConstPtr parserKeyword = ParserKeyword::createDynamicSized("FJAS");
|
2014-06-27 16:42:54 +02:00
|
|
|
parser->addParserKeyword(parserKeyword);
|
|
|
|
|
BOOST_CHECK_EQUAL(parserKeyword, parser->getParserKeyword("FJAS"));
|
2013-08-26 15:17:52 +02:00
|
|
|
}
|
|
|
|
|
|
2014-01-08 15:03:16 +01:00
|
|
|
BOOST_AUTO_TEST_CASE(getKeyword_hasnotkeyword_getKeywordThrowsException) {
|
2013-08-27 10:10:12 +02:00
|
|
|
ParserPtr parser(new Parser());
|
2014-06-11 15:08:58 +02:00
|
|
|
ParserKeywordConstPtr parserKeyword = ParserKeyword::createDynamicSized("FJAS");
|
2014-06-27 16:42:54 +02:00
|
|
|
parser->addParserKeyword(parserKeyword);
|
|
|
|
|
BOOST_CHECK_THROW(parser->getParserKeyword("FJASS"), std::invalid_argument);
|
2013-08-27 10:10:12 +02:00
|
|
|
}
|
|
|
|
|
|
2014-06-27 16:42:54 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(getAllParserKeywordNames_hasTwoKeywords_returnsCompleteList) {
|
2014-01-08 15:03:16 +01:00
|
|
|
ParserPtr parser(new Parser(false));
|
2014-06-27 16:42:54 +02:00
|
|
|
std::cout << parser->getAllParserKeywordNames().size() << std::endl;
|
2014-06-11 15:08:58 +02:00
|
|
|
ParserKeywordConstPtr firstParserKeyword = ParserKeyword::createDynamicSized("FJAS");
|
2014-06-27 16:42:54 +02:00
|
|
|
parser->addParserKeyword(firstParserKeyword);
|
2014-06-11 15:08:58 +02:00
|
|
|
ParserKeywordConstPtr secondParserKeyword = ParserKeyword::createDynamicSized("SAJF");
|
2014-06-27 16:42:54 +02:00
|
|
|
parser->addParserKeyword(secondParserKeyword);
|
|
|
|
|
BOOST_CHECK_EQUAL(2U, parser->getAllParserKeywordNames().size());
|
2014-01-08 15:03:16 +01:00
|
|
|
}
|
|
|
|
|
|
2014-06-27 16:42:54 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(getAllParserKeywordNames_hasNoKeywords_returnsEmptyList) {
|
2014-01-08 15:03:16 +01:00
|
|
|
ParserPtr parser(new Parser(false));
|
2014-06-27 16:42:54 +02:00
|
|
|
BOOST_CHECK_EQUAL(0U, parser->getAllParserKeywordNames().size());
|
2014-01-08 15:03:16 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2013-08-26 15:17:52 +02:00
|
|
|
|
|
|
|
|
/************************ JSON config related tests **********************'*/
|
|
|
|
|
|
|
|
|
|
|
2014-06-27 16:42:54 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(addParserKeywordJSON_canParseKeyword_returnstrue) {
|
2013-07-30 14:10:07 +02:00
|
|
|
ParserPtr parser(new Parser());
|
2014-02-17 15:02:40 +01:00
|
|
|
Json::JsonObject jsonConfig("{\"name\": \"BPR\", \"size\" : 100 , \"items\" :[{\"name\":\"ItemX\" , \"size_type\":\"SINGLE\" , \"value_type\" : \"DOUBLE\"}]}");
|
2014-06-27 16:42:54 +02:00
|
|
|
parser->addParserKeyword(ParserKeyword::createFromJson( jsonConfig ));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK(parser->canParseKeyword("BPR"));
|
2013-07-30 14:10:07 +02:00
|
|
|
}
|
|
|
|
|
|
2013-08-06 16:28:12 +02:00
|
|
|
|
2014-06-27 16:42:54 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(addParserKeywordJSON_size_isObject_allGood) {
|
2013-08-06 16:28:12 +02:00
|
|
|
ParserPtr parser(new Parser());
|
2014-02-17 15:02:40 +01:00
|
|
|
Json::JsonObject jsonConfig("{\"name\": \"EQUIXL\", \"size\" : {\"keyword\":\"EQLDIMS\" , \"item\" : \"NTEQUL\"}, \"items\" :[{\"name\":\"ItemX\" , \"size_type\":\"SINGLE\" , \"value_type\" : \"DOUBLE\"}]}");
|
2014-06-27 16:42:54 +02:00
|
|
|
parser->addParserKeyword(ParserKeyword::createFromJson( jsonConfig ));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK(parser->canParseKeyword("EQUIXL"));
|
2013-08-06 16:28:12 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-07-30 14:10:07 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(loadKeywordsJSON_notArray_throw) {
|
|
|
|
|
ParserPtr parser(new Parser());
|
2013-07-31 11:30:21 +02:00
|
|
|
Json::JsonObject jsonConfig( "{\"name\" : \"BPR\" , \"size\" : 100}");
|
2013-07-30 14:10:07 +02:00
|
|
|
|
|
|
|
|
BOOST_CHECK_THROW(parser->loadKeywords( jsonConfig ) , std::invalid_argument);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_AUTO_TEST_CASE(loadKeywordsJSON_canParseKeyword_returnstrue) {
|
2013-07-30 14:10:07 +02:00
|
|
|
ParserPtr parser(new Parser());
|
2014-02-17 15:02:40 +01:00
|
|
|
Json::JsonObject jsonConfig( "[{\"name\" : \"BPR\" , \"size\" : 100, \"items\" :[{\"name\":\"ItemX\" , \"size_type\":\"SINGLE\" , \"value_type\" : \"DOUBLE\"}]}]");
|
2013-07-31 11:30:21 +02:00
|
|
|
|
|
|
|
|
parser->loadKeywords( jsonConfig );
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK(parser->canParseKeyword("BPR"));
|
2013-07-31 11:30:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2013-09-17 17:45:42 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(empty_sizeReturns0) {
|
|
|
|
|
ParserPtr parser(new Parser( false ));
|
|
|
|
|
BOOST_CHECK_EQUAL( 0U , parser->size());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-07-31 11:30:21 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(loadKeywordsJSON_manyKeywords_returnstrue) {
|
2013-09-17 17:45:42 +02:00
|
|
|
ParserPtr parser(new Parser( false ));
|
2014-02-17 15:02:40 +01:00
|
|
|
Json::JsonObject jsonConfig( "[{\"name\" : \"BPR\" , \"size\" : 100 , \"items\" :[{\"name\":\"ItemX\" , \"size_type\":\"SINGLE\" , \"value_type\" : \"DOUBLE\"}]}, {\"name\" : \"WWCT\", \"size\" : 0} , {\"name\" : \"EQUIL\" , \"size\" : 0}]");
|
2013-07-30 14:10:07 +02:00
|
|
|
|
|
|
|
|
parser->loadKeywords( jsonConfig );
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK(parser->canParseKeyword("BPR"));
|
|
|
|
|
BOOST_CHECK(parser->canParseKeyword("WWCT"));
|
|
|
|
|
BOOST_CHECK(parser->canParseKeyword("EQUIL"));
|
2013-08-19 22:37:48 +02:00
|
|
|
BOOST_CHECK_EQUAL( 3U , parser->size() );
|
2013-07-31 11:30:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-19 22:37:48 +02:00
|
|
|
/*****************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(loadKeywordFromFile_fileDoesNotExist_returnsFalse) {
|
|
|
|
|
ParserPtr parser(new Parser());
|
|
|
|
|
boost::filesystem::path configFile("File/does/not/exist");
|
|
|
|
|
BOOST_CHECK_EQUAL( false , parser->loadKeywordFromFile( configFile ));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(loadKeywordFromFile_invalidJson_returnsFalse) {
|
|
|
|
|
ParserPtr parser(new Parser());
|
|
|
|
|
boost::filesystem::path configFile("testdata/json/example_invalid_json");
|
|
|
|
|
BOOST_CHECK_EQUAL( false , parser->loadKeywordFromFile( configFile ));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(loadKeywordFromFile_invalidConfig_returnsFalse) {
|
|
|
|
|
ParserPtr parser(new Parser());
|
|
|
|
|
boost::filesystem::path configFile("testdata/json/example_missing_name.json");
|
|
|
|
|
BOOST_CHECK_EQUAL( false , parser->loadKeywordFromFile( configFile ));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(loadKeywordFromFile_validKeyword_returnsTrueHasKeyword) {
|
2013-09-17 17:45:42 +02:00
|
|
|
ParserPtr parser(new Parser( false ));
|
2013-08-19 22:37:48 +02:00
|
|
|
boost::filesystem::path configFile("testdata/json/BPR");
|
|
|
|
|
BOOST_CHECK_EQUAL( true , parser->loadKeywordFromFile( configFile ));
|
|
|
|
|
BOOST_CHECK_EQUAL( 1U , parser->size() );
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK_EQUAL( true , parser->canParseKeyword("BPR") );
|
2013-08-19 22:37:48 +02:00
|
|
|
}
|
2013-06-20 15:40:45 +02:00
|
|
|
|
|
|
|
|
|
2013-06-21 10:23:24 +02:00
|
|
|
|
2013-08-21 12:50:21 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(loadConfigFromDirectory_directoryDoesNotexist_throws) {
|
2013-09-17 17:45:42 +02:00
|
|
|
ParserPtr parser(new Parser(false));
|
2013-08-23 00:20:07 +02:00
|
|
|
boost::filesystem::path configPath("path/does/not/exist");
|
|
|
|
|
BOOST_CHECK_THROW(parser->loadKeywordsFromDirectory( configPath), std::invalid_argument);
|
2013-08-21 12:50:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(loadConfigFromDirectory_notRecursive_allNames) {
|
2013-09-17 17:45:42 +02:00
|
|
|
ParserPtr parser(new Parser(false));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK_EQUAL(false , parser->canParseKeyword("BPR"));
|
2013-08-23 00:20:07 +02:00
|
|
|
boost::filesystem::path configPath("testdata/config/directory1");
|
2014-06-11 16:28:48 +02:00
|
|
|
BOOST_CHECK_NO_THROW(parser->loadKeywordsFromDirectory( configPath, false));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK(parser->canParseKeyword("WWCT"));
|
|
|
|
|
BOOST_CHECK_EQUAL(true , parser->canParseKeyword("BPR"));
|
|
|
|
|
BOOST_CHECK_EQUAL(false , parser->canParseKeyword("DIMENS"));
|
2013-08-21 12:50:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(loadConfigFromDirectory_notRecursive_strictNames) {
|
2013-09-17 17:45:42 +02:00
|
|
|
ParserPtr parser(new Parser(false));
|
2013-08-23 00:20:07 +02:00
|
|
|
boost::filesystem::path configPath("testdata/config/directory1");
|
2014-06-11 16:28:48 +02:00
|
|
|
BOOST_CHECK_NO_THROW(parser->loadKeywordsFromDirectory( configPath, false));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK(parser->canParseKeyword("WWCT"));
|
2014-06-11 16:28:48 +02:00
|
|
|
// the file name for the following keyword is "Bpr", but that
|
|
|
|
|
// does not matter
|
|
|
|
|
BOOST_CHECK_EQUAL(true , parser->canParseKeyword("BPR"));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK_EQUAL(false , parser->canParseKeyword("DIMENS"));
|
2013-08-21 12:50:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(loadConfigFromDirectory_Recursive_allNames) {
|
2013-09-17 17:45:42 +02:00
|
|
|
ParserPtr parser(new Parser(false));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK_EQUAL(false , parser->canParseKeyword("BPR"));
|
2013-08-23 00:20:07 +02:00
|
|
|
boost::filesystem::path configPath("testdata/config/directory1");
|
2014-06-11 16:28:48 +02:00
|
|
|
BOOST_CHECK_NO_THROW(parser->loadKeywordsFromDirectory( configPath, true));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK(parser->canParseKeyword("WWCT"));
|
|
|
|
|
BOOST_CHECK_EQUAL(true , parser->canParseKeyword("BPR"));
|
|
|
|
|
BOOST_CHECK_EQUAL(true , parser->canParseKeyword("DIMENS"));
|
2013-08-21 12:50:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_CASE(loadConfigFromDirectory_default) {
|
2013-09-17 17:45:42 +02:00
|
|
|
ParserPtr parser(new Parser(false));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK_EQUAL(false , parser->canParseKeyword("BPR"));
|
2013-08-23 00:20:07 +02:00
|
|
|
boost::filesystem::path configPath("testdata/config/directory1");
|
|
|
|
|
BOOST_CHECK_NO_THROW(parser->loadKeywordsFromDirectory( configPath ));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK(parser->canParseKeyword("WWCT"));
|
2014-06-11 16:28:48 +02:00
|
|
|
// the file name for the following keyword is "Bpr", but that
|
|
|
|
|
// does not matter
|
|
|
|
|
BOOST_CHECK_EQUAL(true , parser->canParseKeyword("BPR"));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK_EQUAL(true , parser->canParseKeyword("DIMENS"));
|
2013-08-21 12:50:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2013-10-09 08:22:43 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(DropKeyword) {
|
|
|
|
|
ParserPtr parser(new Parser());
|
2014-06-27 16:42:54 +02:00
|
|
|
BOOST_CHECK_EQUAL(false , parser->dropParserKeyword("DoesNotHaveThis"));
|
2014-06-26 16:56:54 +02:00
|
|
|
BOOST_CHECK_EQUAL(true , parser->canParseKeyword("BPR"));
|
2014-06-27 16:42:54 +02:00
|
|
|
BOOST_CHECK_EQUAL(true , parser->dropParserKeyword("BLOCK_PROBE"));
|
|
|
|
|
BOOST_CHECK_EQUAL(false , parser->dropParserKeyword("BLOCK_PROBE"));
|
2014-06-26 16:56:54 +02:00
|
|
|
BOOST_CHECK_EQUAL(false , parser->canParseKeyword("BPR"));
|
2013-12-01 09:28:14 +01:00
|
|
|
|
|
|
|
|
BOOST_CHECK_EQUAL(true , parser->canParseKeyword("TVDPX"));
|
2014-06-27 16:42:54 +02:00
|
|
|
BOOST_CHECK_EQUAL(true , parser->dropParserKeyword("TVDP"));
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_CHECK_EQUAL(false , parser->canParseKeyword("TVDPX"));
|
2013-10-09 08:22:43 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2013-10-18 10:17:48 +02:00
|
|
|
BOOST_AUTO_TEST_CASE(ReplaceKeyword) {
|
|
|
|
|
ParserPtr parser(new Parser());
|
2014-06-27 16:42:54 +02:00
|
|
|
ParserKeywordConstPtr eqldims = parser->getParserKeyword("EQLDIMS");
|
2013-10-18 10:17:48 +02:00
|
|
|
|
2013-10-25 17:31:48 +02:00
|
|
|
BOOST_CHECK_EQUAL( 5U , eqldims->numItems());
|
|
|
|
|
BOOST_CHECK( parser->loadKeywordFromFile( "testdata/parser/EQLDIMS2" ) );
|
2013-10-18 10:17:48 +02:00
|
|
|
|
|
|
|
|
|
2014-06-27 16:42:54 +02:00
|
|
|
eqldims = parser->getParserKeyword("EQLDIMS");
|
2013-10-25 17:31:48 +02:00
|
|
|
BOOST_CHECK_EQUAL( 1U , eqldims->numItems());
|
2013-10-18 10:17:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2013-12-01 09:28:14 +01:00
|
|
|
BOOST_AUTO_TEST_CASE(WildCardTest) {
|
|
|
|
|
ParserPtr parser(new Parser());
|
2014-06-26 16:06:18 +02:00
|
|
|
BOOST_CHECK(!parser->canParseKeyword("TVDP*"));
|
|
|
|
|
BOOST_CHECK(!parser->canParseKeyword("TVDP"));
|
|
|
|
|
BOOST_CHECK(parser->canParseKeyword("TVDPXXX"));
|
|
|
|
|
BOOST_CHECK(!parser->canParseKeyword("TVDPIAMTOOLONG"));
|
|
|
|
|
BOOST_CHECK(!parser->canParseKeyword("TVD"));
|
2013-12-01 09:28:14 +01:00
|
|
|
|
2014-06-26 16:06:18 +02:00
|
|
|
BOOST_CHECK(!parser->canParseKeyword("TVDP"));
|
2013-12-01 09:28:14 +01:00
|
|
|
|
2014-06-27 16:42:54 +02:00
|
|
|
ParserKeywordConstPtr keyword1 = parser->getParserKeyword("TVDPA");
|
|
|
|
|
ParserKeywordConstPtr keyword2 = parser->getParserKeyword("TVDPBC");
|
|
|
|
|
ParserKeywordConstPtr keyword3 = parser->getParserKeyword("TVDPXXX");
|
2013-12-01 09:28:14 +01:00
|
|
|
|
|
|
|
|
BOOST_CHECK_EQUAL( keyword1 , keyword2 );
|
|
|
|
|
BOOST_CHECK_EQUAL( keyword1 , keyword3 );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-20 13:56:11 +02:00
|
|
|
/***************** Simple Int parsing ********************************/
|
|
|
|
|
|
2014-05-08 16:26:14 +02:00
|
|
|
static ParserKeywordPtr __attribute__((unused)) setupParserKeywordInt(std::string name, int numberOfItems) {
|
2014-06-11 15:08:58 +02:00
|
|
|
ParserKeywordPtr parserKeyword = ParserKeyword::createDynamicSized(name);
|
2013-07-31 15:02:00 +02:00
|
|
|
ParserRecordPtr parserRecord = parserKeyword->getRecord();
|
|
|
|
|
|
2013-06-18 14:12:00 +02:00
|
|
|
for (int i = 0; i < numberOfItems; i++) {
|
2014-04-15 09:49:04 +02:00
|
|
|
std::string another_name = "ITEM_" + boost::lexical_cast<std::string>(i);
|
|
|
|
|
ParserItemPtr intItem(new ParserIntItem(another_name, SINGLE));
|
2013-06-18 14:12:00 +02:00
|
|
|
parserRecord->addItem(intItem);
|
|
|
|
|
}
|
|
|
|
|
|
2013-06-20 15:30:37 +02:00
|
|
|
return parserKeyword;
|
2013-06-18 14:12:00 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2013-06-20 13:56:11 +02:00
|
|
|
|
2013-06-18 14:12:00 +02:00
|
|
|
|
2013-06-18 13:47:07 +02:00
|
|
|
|
|
|
|
|
|
2013-06-04 14:32:30 +02:00
|
|
|
|
|
|
|
|
|
2013-04-03 11:38:06 +02:00
|
|
|
|
|
|
|
|
|