Skip to content
Snippets Groups Projects
Commit 26898dda authored by Jan Trávníček's avatar Jan Trávníček
Browse files

tests: exact nonlinear tree pattern automaton should be tested with single nonlinear variable

The implementation so far is able to handle only single nonlinear variable.
parent 545534d7
No related branches found
No related tags found
1 merge request!205Merge jt
...@@ -154,9 +154,6 @@ TEST_CASE ( "Arbology tests | nonlinear pattern", "[integration]" ) { ...@@ -154,9 +154,6 @@ TEST_CASE ( "Arbology tests | nonlinear pattern", "[integration]" ) {
"arbology::indexing::NonlinearFullAndLinearIndexConstruction (PrefixRankedTree)$subject | arbology::query::NonlinearFullAndLinearIndexPatterns - (PrefixRankedNonlinearPattern) $pattern", 1000 ), "arbology::indexing::NonlinearFullAndLinearIndexConstruction (PrefixRankedTree)$subject | arbology::query::NonlinearFullAndLinearIndexPatterns - (PrefixRankedNonlinearPattern) $pattern", 1000 ),
std::make_tuple ( "Exact Nonlinear Pattern Matching Using Full And Linear Index (PrefixRankedBar)", std::make_tuple ( "Exact Nonlinear Pattern Matching Using Full And Linear Index (PrefixRankedBar)",
"arbology::indexing::NonlinearFullAndLinearIndexConstruction (PrefixRankedBarTree)$subject | arbology::query::NonlinearFullAndLinearIndexPatterns - (PrefixRankedBarNonlinearPattern) $pattern", 1000 ), "arbology::indexing::NonlinearFullAndLinearIndexConstruction (PrefixRankedBarTree)$subject | arbology::query::NonlinearFullAndLinearIndexPatterns - (PrefixRankedBarNonlinearPattern) $pattern", 1000 ),
std::make_tuple ( "Exact Nonlinear Tree Pattern Automaton (PrefixRankedBar)",
"arbology::exact::ExactNonlinearTreePatternAutomaton (PrefixRankedBarTree)$subject <(tree::SubtreeWildcard::get $pattern) <(tree::NonlinearAlphabet::get $pattern) <(tree::VariablesBarSymbol::get (PrefixRankedBarNonlinearPattern)$pattern) | "
"automaton::determinize::Determinize - | (SetOfObjects)automaton::run::Result - (LinearString)(PrefixRankedBarNonlinearPattern)$pattern (DefaultStateType){ :Object }", 80 ),
std::make_tuple ( "Exact Pattern Match (NonlinearPattern PrefixRankedBar)", std::make_tuple ( "Exact Pattern Match (NonlinearPattern PrefixRankedBar)",
"arbology::exact::ExactPatternMatch (PrefixRankedBarTree)$subject (PrefixRankedBarNonlinearPattern) <(tree::GeneralAlphabet::add $pattern <(tree::GeneralAlphabet::get $subject))", 1000 ), "arbology::exact::ExactPatternMatch (PrefixRankedBarTree)$subject (PrefixRankedBarNonlinearPattern) <(tree::GeneralAlphabet::add $pattern <(tree::GeneralAlphabet::get $subject))", 1000 ),
std::make_tuple ( "Exact Boyer Moore Horspool (NonlinearPattern PrefixRankedBar)", std::make_tuple ( "Exact Boyer Moore Horspool (NonlinearPattern PrefixRankedBar)",
...@@ -187,7 +184,7 @@ TEST_CASE ( "Arbology tests | nonlinear pattern", "[integration]" ) { ...@@ -187,7 +184,7 @@ TEST_CASE ( "Arbology tests | nonlinear pattern", "[integration]" ) {
   
// -------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------
   
TEST_CASE ( "Arbology tests | nonlinear pattern ends", "[integration]" ) { TEST_CASE ( "Arbology tests | ranked nonlinear pattern ends", "[integration]" ) {
auto definition = GENERATE ( as < std::tuple < std::string, std::string, size_t > > ( ), auto definition = GENERATE ( as < std::tuple < std::string, std::string, size_t > > ( ),
std::make_tuple ( "Exact Nonlinear Tree Pattern Automaton (PrefixRanked)", std::make_tuple ( "Exact Nonlinear Tree Pattern Automaton (PrefixRanked)",
"arbology::exact::ExactNonlinearTreePatternAutomaton (PrefixRankedTree)$subject <(tree::SubtreeWildcard::get $pattern) <(tree::NonlinearAlphabet::get $pattern) | automaton::determinize::Determinize - |" "arbology::exact::ExactNonlinearTreePatternAutomaton (PrefixRankedTree)$subject <(tree::SubtreeWildcard::get $pattern) <(tree::NonlinearAlphabet::get $pattern) | automaton::determinize::Determinize - |"
...@@ -213,6 +210,32 @@ TEST_CASE ( "Arbology tests | nonlinear pattern ends", "[integration]" ) { ...@@ -213,6 +210,32 @@ TEST_CASE ( "Arbology tests | nonlinear pattern ends", "[integration]" ) {
   
// -------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------
   
TEST_CASE ( "Arbology tests | nonlinear pattern ends", "[integration]" ) {
auto definition = GENERATE ( as < std::tuple < std::string, std::string, size_t > > ( ),
std::make_tuple ( "Exact Nonlinear Tree Pattern Automaton (PrefixRankedBar)",
"arbology::exact::ExactNonlinearTreePatternAutomaton (PrefixRankedBarTree)$subject <(tree::SubtreeWildcard::get $pattern) <(tree::NonlinearAlphabet::get $pattern) <(tree::VariablesBarSymbol::get (PrefixRankedBarNonlinearPattern)$pattern) | "
"automaton::determinize::Determinize - | (SetOfObjects)automaton::run::Result - (LinearString)(PrefixRankedBarNonlinearPattern)$pattern (DefaultStateType){ :Object }", 80 ) );
const char * exact = "arbology::exact::ExactPatternMatch $subject $pattern";
auto pattern = EGenerateType::NONLINEAR_PATTERN_SINGLE_VAR;
SECTION ( "Test files" ) {
for ( const std::pair < std::string, std::string > & files : pair_pattern_subject ( TestFiles::Get ( "/tree/aarbology.test[0-9]+.nonlinear.pattern.xml$" ), ".nonlinear.pattern.xml", ".subject.xml" ) ) {
CAPTURE ( std::get < 0 > ( definition ), std::get < 1 > ( definition ), files.first, files.second );
runTest ( exact, std::get < 1 > ( definition ), files.first, files.second );
}
}
SECTION ( "Random tests" ) {
for ( size_t i = 0; i < RANDOM_ITERATIONS; i++ ) {
CAPTURE ( std::get < 0 > ( definition ), std::get < 1 > ( definition ), pattern, std::get < 2 > ( definition ) );
runRandom ( exact, std::get < 1 > ( definition ), EGenerateType::SUBJECT, pattern, std::get < 2 > ( definition ) );
}
}
}
// --------------------------------------------------------------------------------------------------------------------
TEST_CASE ( "Arbology tests | pattern", "[integration]" ) { TEST_CASE ( "Arbology tests | pattern", "[integration]" ) {
auto definition = GENERATE ( as < std::tuple < std::string, std::string, size_t > > ( ), auto definition = GENERATE ( as < std::tuple < std::string, std::string, size_t > > ( ),
std::make_tuple ( "Exact Pattern Matching Using Full And Linear Index (PrefixRankedBar)", std::make_tuple ( "Exact Pattern Matching Using Full And Linear Index (PrefixRankedBar)",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment