diff --git a/alib2algo/src/stringology/exact/BackwardDAWGMatching.hpp b/alib2algo/src/stringology/exact/BackwardDAWGMatching.hpp index 382fa52c9fa2e6df5f56e9ce8fe5c261c8917e3a..b31431784a559e4365c01a522e08f54cf08dc386 100644 --- a/alib2algo/src/stringology/exact/BackwardDAWGMatching.hpp +++ b/alib2algo/src/stringology/exact/BackwardDAWGMatching.hpp @@ -2,8 +2,8 @@ * Author: Radovan Cerveny */ -#ifndef STRINGOLOGY_BACKWARD_ORACLE_MATCHING_HPP__ -#define STRINGOLOGY_BACKWARD_ORACLE_MATCHING_HPP__ +#ifndef STRINGOLOGY_BACKWARD_DAWG_MATCHING_HPP__ +#define STRINGOLOGY_BACKWARD_DAWG_MATCHING_HPP__ #include <string/String.h> #include <string/StringFeatures.h> @@ -40,4 +40,4 @@ public: } /* namespace stringology */ -#endif /* STRINGOLOGY_BACKWARD_ORACLE_MATCHING_HPP__ */ +#endif /* STRINGOLOGY_BACKWARD_DAWG_MATCHING_HPP__ */ diff --git a/astringology2/src/astringology.cpp b/astringology2/src/astringology.cpp index 05baa8f220f75eee0edb04b8bd1daaf55dceef60..1c6abe9209e547a876ada420bd07b3556b8a5f17 100644 --- a/astringology2/src/astringology.cpp +++ b/astringology2/src/astringology.cpp @@ -25,6 +25,7 @@ #include <stringology/exact/DeadZoneUsingBadCharacterShift.h> #include <stringology/exact/BackwardNondeterministicDAWGMatching.hpp> #include <stringology/exact/BackwardOracleMatching.hpp> +#include <stringology/exact/BackwardDAWGMatching.hpp> #include <stringology/exact/ExactMatchingAutomaton.h> #include <stringology/exact/ExactFactorAutomaton.h> #include <stringology/exact/ExactSubsequenceAutomaton.h> @@ -53,6 +54,7 @@ int main ( int argc, char * argv[] ) { allowed.push_back ( "deadZoneUsingBadCharacterShift" ); allowed.push_back ( "backwardNondeterministicDAWGMatching" ); allowed.push_back ( "backwardOracleMatching" ); + allowed.push_back ( "backwardDAWGMatching" ); allowed.push_back ( "borderArray" ); allowed.push_back ( "suffixTrie" ); TCLAP::ValuesConstraint < std::string > allowedVals ( allowed ); @@ -159,6 +161,19 @@ int main ( int argc, char * argv[] ) { measurements::end ( ); measurements::start ( "Output write", measurements::Type::AUXILIARY ); + alib::XmlDataFactory::toStdout ( res ); + } else if ( algorithm.getValue ( ) == "backwardDAWGMatching" ) { + string::String subject = alib::XmlDataFactory::fromTokens < string::String > ( std::move ( sax::FromXMLParserHelper::parseInput(true, subjectInput).front ( ) ) ); + string::String pattern = alib::XmlDataFactory::fromTokens < string::String > ( std::move ( sax::FromXMLParserHelper::parseInput(true, patternInput).front ( ) ) ); + + measurements::end ( ); + measurements::start ( "Algorithm", measurements::Type::MAIN ); + + std::set < unsigned > res = stringology::exact::BackwardDAWGMatching::match ( subject, pattern ); + + measurements::end ( ); + measurements::start ( "Output write", measurements::Type::AUXILIARY ); + alib::XmlDataFactory::toStdout ( res ); } else if ( algorithm.getValue ( ) == "exactMatchingAutomaton" ) { string::String pattern = alib::XmlDataFactory::fromTokens < string::String > ( std::move ( sax::FromXMLParserHelper::parseInput(true, patternInput).front ( ) ) ); diff --git a/examples2/measurements/ameasure.xml b/examples2/measurements/ameasure.xml index ce91fe20147b2d3e980357e684341c131f93c6e7..214512ab5d8df23e27383f61e63f46c61ad160d6 100644 --- a/examples2/measurements/ameasure.xml +++ b/examples2/measurements/ameasure.xml @@ -1,7 +1,7 @@ <?xml version="1.0"?> <MeasurementProvisioner> <Environment> - <PipelineIterations>3</PipelineIterations> + <PipelineIterations>10</PipelineIterations> </Environment> <InputData> <InputBatch> @@ -28,5 +28,14 @@ <Pipeline> <Command alias="deadzone" >./astringology2 -a deadZoneUsingBadCharacterShift -s $1 -p $2</Command> </Pipeline> + <Pipeline> + <Command alias="bndm" >./astringology2 -a backwardNondeterministicDAWGMatching -s $1 -p $2</Command> + </Pipeline> + <Pipeline> + <Command alias="bdm" >./astringology2 -a backwardDAWGMatching -s $1 -p $2</Command> + </Pipeline> + <Pipeline> + <Command alias="bom" >./astringology2 -a backwardOracleMatching -s $1 -p $2</Command> + </Pipeline> </Pipelines> </MeasurementProvisioner> \ No newline at end of file