From 4f3d0099aabe08270ef6e9ea40e7838dff4ef2a8 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Fri, 5 Aug 2016 11:24:54 +0200 Subject: [PATCH] strip printing from astat --- astat2/src/AutomataSettings.h | 21 --- astat2/src/AutomataStat.cpp | 82 ----------- astat2/src/AutomataStat.h | 32 ----- astat2/src/GrammarSettings.h | 20 --- astat2/src/GrammarStat.cpp | 34 ----- astat2/src/GrammarStat.h | 27 ---- astat2/src/RegExpSettings.h | 18 --- astat2/src/RegExpStat.cpp | 76 ---------- astat2/src/RegExpStat.h | 31 ---- astat2/src/SetSettings.h | 17 --- astat2/src/SetStat.cpp | 21 --- astat2/src/SetStat.h | 27 ---- astat2/src/SizeStat.cpp | 26 ++++ astat2/src/SizeStat.h | 30 ++++ astat2/src/StringSettings.h | 18 --- astat2/src/StringStat.cpp | 30 ---- astat2/src/StringStat.h | 27 ---- astat2/src/TreeSettings.h | 18 --- astat2/src/TreeStat.cpp | 82 ----------- astat2/src/TreeStat.h | 31 ---- astat2/src/astat.cpp | 216 ++-------------------------- astat2/src/common/Printer.hpp | 111 -------------- astat2/src/common/PrintingOptions.h | 15 -- tests.aarbology.sh | 54 +++---- tests.astringology.sh | 12 +- 25 files changed, 104 insertions(+), 972 deletions(-) delete mode 100644 astat2/src/AutomataSettings.h delete mode 100644 astat2/src/AutomataStat.cpp delete mode 100644 astat2/src/AutomataStat.h delete mode 100644 astat2/src/GrammarSettings.h delete mode 100644 astat2/src/GrammarStat.cpp delete mode 100644 astat2/src/GrammarStat.h delete mode 100644 astat2/src/RegExpSettings.h delete mode 100644 astat2/src/RegExpStat.cpp delete mode 100644 astat2/src/RegExpStat.h delete mode 100644 astat2/src/SetSettings.h delete mode 100644 astat2/src/SetStat.cpp delete mode 100644 astat2/src/SetStat.h create mode 100644 astat2/src/SizeStat.cpp create mode 100644 astat2/src/SizeStat.h delete mode 100644 astat2/src/StringSettings.h delete mode 100644 astat2/src/StringStat.cpp delete mode 100644 astat2/src/StringStat.h delete mode 100644 astat2/src/TreeSettings.h delete mode 100644 astat2/src/TreeStat.cpp delete mode 100644 astat2/src/TreeStat.h delete mode 100644 astat2/src/common/Printer.hpp delete mode 100644 astat2/src/common/PrintingOptions.h diff --git a/astat2/src/AutomataSettings.h b/astat2/src/AutomataSettings.h deleted file mode 100644 index 36f93ea200..0000000000 --- a/astat2/src/AutomataSettings.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * AutomataSettings.h - * - * Created on: 26. 3. 2014 - * Author: Jan Travnicek - */ - -#ifndef __AUTOMATA_SETTINGS_H__ -#define __AUTOMATA_SETTINGS_H__ - -#include "common/PrintingOptions.h" - -struct AutomataSettings { - PrintingOptions states; - PrintingOptions finalStates; - PrintingOptions initialStates; - PrintingOptions inputAlphabet; - PrintingOptions transitions; -}; - -#endif /* __AUTOMATA_SETTINGS_H__ */ diff --git a/astat2/src/AutomataStat.cpp b/astat2/src/AutomataStat.cpp deleted file mode 100644 index fa27ad71db..0000000000 --- a/astat2/src/AutomataStat.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - * AutomataStat.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "AutomataStat.h" -#include "common/Printer.hpp" - -#include <automaton/FSM/NFA.h> -#include <automaton/FSM/DFA.h> - -#include <automaton/PDA/InputDrivenNPDA.h> -#include <automaton/PDA/InputDrivenDPDA.h> - -#include <automaton/PDA/DPDA.h> -#include <automaton/PDA/NPDA.h> - -void AutomataStat::stat ( const automaton::Automaton & automaton, const AutomataSettings & settings ) { - dispatch ( automaton.getData ( ), settings ); -} - -void AutomataStat::stat ( const automaton::NFA & automaton, const AutomataSettings & settings ) { - Printer::PrintSet ( settings.states, automaton.getStates ( ) ); - Printer::PrintSet ( settings.finalStates, automaton.getFinalStates ( ) ); - Printer::PrintValue ( settings.initialStates, automaton.getInitialState ( ) ); - Printer::PrintSet ( settings.inputAlphabet, automaton.getInputAlphabet ( ) ); - Printer::PrintMap ( settings.transitions, automaton.getTransitions ( ) ); -} - -auto AutomataStatNFA = AutomataStat::RegistratorWrapper < void, automaton::NFA > ( AutomataStat::stat ); - -void AutomataStat::stat ( const automaton::DFA & automaton, const AutomataSettings & settings ) { - Printer::PrintSet ( settings.states, automaton.getStates ( ) ); - Printer::PrintSet ( settings.finalStates, automaton.getFinalStates ( ) ); - Printer::PrintValue ( settings.initialStates, automaton.getInitialState ( ) ); - Printer::PrintSet ( settings.inputAlphabet, automaton.getInputAlphabet ( ) ); - Printer::PrintMap ( settings.transitions, automaton.getTransitions ( ) ); -} - -auto AutomataStatDFA = AutomataStat::RegistratorWrapper < void, automaton::DFA > ( AutomataStat::stat ); - -void AutomataStat::stat ( const automaton::InputDrivenNPDA & automaton, const AutomataSettings & settings ) { - Printer::PrintSet ( settings.states, automaton.getStates ( ) ); - Printer::PrintSet ( settings.finalStates, automaton.getFinalStates ( ) ); - Printer::PrintValue ( settings.initialStates, automaton.getInitialState ( ) ); - Printer::PrintSet ( settings.inputAlphabet, automaton.getInputAlphabet ( ) ); - Printer::PrintMap ( settings.transitions, automaton.getTransitions ( ) ); -} - -auto AutomataStatInputDrivenNPDA = AutomataStat::RegistratorWrapper < void, automaton::InputDrivenNPDA > ( AutomataStat::stat ); - -void AutomataStat::stat ( const automaton::InputDrivenDPDA & automaton, const AutomataSettings & settings ) { - Printer::PrintSet ( settings.states, automaton.getStates ( ) ); - Printer::PrintSet ( settings.finalStates, automaton.getFinalStates ( ) ); - Printer::PrintValue ( settings.initialStates, automaton.getInitialState ( ) ); - Printer::PrintSet ( settings.inputAlphabet, automaton.getInputAlphabet ( ) ); - Printer::PrintMap ( settings.transitions, automaton.getTransitions ( ) ); -} - -auto AutomataStatInputDrivenDPDA = AutomataStat::RegistratorWrapper < void, automaton::InputDrivenDPDA > ( AutomataStat::stat ); - -void AutomataStat::stat ( const automaton::NPDA & automaton, const AutomataSettings & settings ) { - Printer::PrintSet ( settings.states, automaton.getStates ( ) ); - Printer::PrintSet ( settings.finalStates, automaton.getFinalStates ( ) ); - Printer::PrintValue ( settings.initialStates, automaton.getInitialState ( ) ); - Printer::PrintSet ( settings.inputAlphabet, automaton.getInputAlphabet ( ) ); - Printer::PrintMap ( settings.transitions, automaton.getTransitions ( ) ); -} - -auto AutomataStatNPDA = AutomataStat::RegistratorWrapper < void, automaton::NPDA > ( AutomataStat::stat ); - -void AutomataStat::stat ( const automaton::DPDA & automaton, const AutomataSettings & settings ) { - Printer::PrintSet ( settings.states, automaton.getStates ( ) ); - Printer::PrintSet ( settings.finalStates, automaton.getFinalStates ( ) ); - Printer::PrintValue ( settings.initialStates, automaton.getInitialState ( ) ); - Printer::PrintSet ( settings.inputAlphabet, automaton.getInputAlphabet ( ) ); - Printer::PrintMap ( settings.transitions, automaton.getTransitions ( ) ); -} - -auto AutomataStatDPDA = AutomataStat::RegistratorWrapper < void, automaton::DPDA > ( AutomataStat::stat ); diff --git a/astat2/src/AutomataStat.h b/astat2/src/AutomataStat.h deleted file mode 100644 index a3c764fd92..0000000000 --- a/astat2/src/AutomataStat.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * AutomataStat.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef AUTOMATA_STAT_H_ -#define AUTOMATA_STAT_H_ - -#include <core/multipleDispatch.hpp> - -#include "automaton/Automaton.h" -#include "automaton/AutomatonFeatures.h" - -#include "AutomataSettings.h" - -class AutomataStat : public std::SingleDispatchLastStaticParam < AutomataStat, void, automaton::AutomatonBase, const AutomataSettings & > { -public: - static void stat ( const automaton::Automaton & automaton, const AutomataSettings & settings ); - - static void stat ( const automaton::NFA & automaton, const AutomataSettings & settings ); - static void stat ( const automaton::DFA & automaton, const AutomataSettings & settings ); - - static void stat ( const automaton::InputDrivenNPDA & automaton, const AutomataSettings & settings ); - static void stat ( const automaton::InputDrivenDPDA & automaton, const AutomataSettings & settings ); - - static void stat ( const automaton::DPDA & automaton, const AutomataSettings & settings ); - static void stat ( const automaton::NPDA & automaton, const AutomataSettings & settings ); -}; - -#endif /* AUTOMATA_STAT_H_ */ diff --git a/astat2/src/GrammarSettings.h b/astat2/src/GrammarSettings.h deleted file mode 100644 index 0c155b8071..0000000000 --- a/astat2/src/GrammarSettings.h +++ /dev/null @@ -1,20 +0,0 @@ -/* - * GrammarSettings.h - * - * Created on: 26. 3. 2014 - * Author: Jan Travnicek - */ - -#ifndef __GRAMMAR_SETTINGS_H__ -#define __GRAMMAR_SETTINGS_H__ - -#include "common/PrintingOptions.h" - -struct GrammarSettings { - PrintingOptions nonterminals; - PrintingOptions terminals; - PrintingOptions initialSymbols; - PrintingOptions rules; -}; - -#endif /* __GRAMMAR_SETTINGS_H__ */ diff --git a/astat2/src/GrammarStat.cpp b/astat2/src/GrammarStat.cpp deleted file mode 100644 index a0b9a91e2b..0000000000 --- a/astat2/src/GrammarStat.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/* - * GrammarStat.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "GrammarStat.h" -#include "common/Printer.hpp" - -#include <grammar/Regular/RightRG.h> -#include <grammar/Regular/RightLG.h> - -void GrammarStat::stat ( const grammar::Grammar & grammar, const GrammarSettings & settings ) { - dispatch ( grammar.getData ( ), settings ); -} - -void GrammarStat::stat ( const grammar::RightRG & grammar, const GrammarSettings & settings ) { - Printer::PrintSet ( settings.nonterminals, grammar.getNonterminalAlphabet ( ) ); - Printer::PrintSet ( settings.terminals, grammar.getTerminalAlphabet ( ) ); - Printer::PrintValue ( settings.initialSymbols, grammar.getInitialSymbol ( ) ); - Printer::PrintMap ( settings.rules, grammar.getRules ( ) ); -} - -auto GrammarStatRightRG = GrammarStat::RegistratorWrapper < void, grammar::RightRG > ( GrammarStat::stat ); - -void GrammarStat::stat ( const grammar::RightLG & grammar, const GrammarSettings & settings ) { - Printer::PrintSet ( settings.nonterminals, grammar.getNonterminalAlphabet ( ) ); - Printer::PrintSet ( settings.terminals, grammar.getTerminalAlphabet ( ) ); - Printer::PrintValue ( settings.initialSymbols, grammar.getInitialSymbol ( ) ); - Printer::PrintMap ( settings.rules, grammar.getRules ( ) ); -} - -auto GrammarStatRightLG = GrammarStat::RegistratorWrapper < void, grammar::RightLG > ( GrammarStat::stat ); diff --git a/astat2/src/GrammarStat.h b/astat2/src/GrammarStat.h deleted file mode 100644 index 6e8ed43e31..0000000000 --- a/astat2/src/GrammarStat.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * GrammarStat.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef GRAMMAR_STAT_H_ -#define GRAMMAR_STAT_H_ - -#include <core/multipleDispatch.hpp> - -#include "grammar/Grammar.h" -#include "grammar/GrammarFeatures.h" - -#include "GrammarSettings.h" - -class GrammarStat : public std::SingleDispatchLastStaticParam < GrammarStat, void, grammar::GrammarBase, const GrammarSettings & > { -public: - static void stat ( const grammar::Grammar & grammar, const GrammarSettings & settings ); - - static void stat ( const grammar::RightRG & grammar, const GrammarSettings & settings ); - static void stat ( const grammar::RightLG & grammar, const GrammarSettings & settings ); - -}; - -#endif /* GRAMMAR_STAT_H_ */ diff --git a/astat2/src/RegExpSettings.h b/astat2/src/RegExpSettings.h deleted file mode 100644 index 99345709da..0000000000 --- a/astat2/src/RegExpSettings.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * RegExpSettings.h - * - * Created on: 26. 3. 2014 - * Author: Jan Travnicek - */ - -#ifndef __REG_EXP_SETTINGS_H__ -#define __REG_EXP_SETTINGS_H__ - -#include "common/PrintingOptions.h" - -struct RegExpSettings { - PrintingOptions nodes; - PrintingOptions alphabet; -}; - -#endif /* __REG_EXP_SETTINGS_H__ */ diff --git a/astat2/src/RegExpStat.cpp b/astat2/src/RegExpStat.cpp deleted file mode 100644 index f33b235855..0000000000 --- a/astat2/src/RegExpStat.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* - * RegExpStat.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "RegExpStat.h" -#include "common/Printer.hpp" - -#include <exception/CommonException.h> - -#include <regexp/formal/FormalRegExp.h> -#include <regexp/formal/FormalRegExpElement.h> -#include <regexp/unbounded/UnboundedRegExp.h> -#include <regexp/unbounded/UnboundedRegExpElement.h> - -void RegExpStat::stat ( const regexp::RegExp & regexp, const RegExpSettings & settings ) { - dispatch ( regexp.getData ( ), settings ); -} - -unsigned RegExpStat::countNodes ( const regexp::FormalRegExpElement & ) { - throw exception::CommonException ( "unimplemented" ); -} - -void RegExpStat::stat ( const regexp::FormalRegExp & regexp, const RegExpSettings & settings ) { - Printer::PrintSet ( settings.alphabet, regexp.getAlphabet ( ) ); - - switch ( settings.nodes ) { - case PrintingOptions::PRINT: - alib::XmlDataFactory::toStdout ( regexp.getRegExp ( ) ); - break; - - case PrintingOptions::SIZE: - std::cout << countNodes ( regexp.getRegExp ( ) ) << std::endl; - break; - - case PrintingOptions::BOTH: - alib::XmlDataFactory::toStdout ( regexp.getRegExp ( ) ); - std::cout << countNodes ( regexp.getRegExp ( ) ) << std::endl; - break; - - case PrintingOptions::NOOP: - break; - } -} - -auto RegExpStatFormalRegExp = RegExpStat::RegistratorWrapper < void, regexp::FormalRegExp > ( RegExpStat::stat ); - -unsigned RegExpStat::countNodes ( const regexp::UnboundedRegExpElement & ) { - throw exception::CommonException ( "unimplemented" ); -} - -void RegExpStat::stat ( const regexp::UnboundedRegExp & regexp, const RegExpSettings & settings ) { - Printer::PrintSet ( settings.alphabet, regexp.getAlphabet ( ) ); - - switch ( settings.nodes ) { - case PrintingOptions::PRINT: - alib::XmlDataFactory::toStdout ( regexp.getRegExp ( ) ); - break; - - case PrintingOptions::SIZE: - std::cout << countNodes ( regexp.getRegExp ( ) ) << std::endl; - break; - - case PrintingOptions::BOTH: - alib::XmlDataFactory::toStdout ( regexp.getRegExp ( ) ); - std::cout << countNodes ( regexp.getRegExp ( ) ) << std::endl; - break; - - case PrintingOptions::NOOP: - break; - } -} - -auto RegExpStatUnboundedRegExp = RegExpStat::RegistratorWrapper < void, regexp::UnboundedRegExp > ( RegExpStat::stat ); diff --git a/astat2/src/RegExpStat.h b/astat2/src/RegExpStat.h deleted file mode 100644 index 875a58dee2..0000000000 --- a/astat2/src/RegExpStat.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * RegExpStat.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef REG_EXP_STAT_H_ -#define REG_EXP_STAT_H_ - -#include <core/multipleDispatch.hpp> - -#include "regexp/RegExp.h" -#include "regexp/RegExpFeatures.h" - -#include "RegExpSettings.h" - -class RegExpStat : public std::SingleDispatchLastStaticParam < RegExpStat, void, regexp::RegExpBase, const RegExpSettings & > { - static unsigned countNodes ( const regexp::FormalRegExpElement & node ); - - static unsigned countNodes ( const regexp::UnboundedRegExpElement & node ); - -public: - static void stat ( const regexp::RegExp & regexp, const RegExpSettings & settings ); - - static void stat ( const regexp::UnboundedRegExp & regexp, const RegExpSettings & settings ); - static void stat ( const regexp::FormalRegExp & regexp, const RegExpSettings & settings ); - -}; - -#endif /* REG_EXP_STAT_H_ */ diff --git a/astat2/src/SetSettings.h b/astat2/src/SetSettings.h deleted file mode 100644 index 78c4cedd31..0000000000 --- a/astat2/src/SetSettings.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * SetSettings.h - * - * Created on: 26. 3. 2014 - * Author: Jan Travnicek - */ - -#ifndef __SET_SETTINGS_H__ -#define __SET_SETTINGS_H__ - -#include "common/PrintingOptions.h" - -struct SetSettings { - PrintingOptions general; -}; - -#endif /* __SET_SETTINGS_H_ */ diff --git a/astat2/src/SetStat.cpp b/astat2/src/SetStat.cpp deleted file mode 100644 index 4e972b93ba..0000000000 --- a/astat2/src/SetStat.cpp +++ /dev/null @@ -1,21 +0,0 @@ -/* - * SetStat.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "SetStat.h" -#include "common/Printer.hpp" - -void SetStat::stat ( const container::ObjectsSet & data, const SetSettings & settings ) { - Printer::PrintSet ( settings.general, data ); -} - -void SetStat::stat ( const label::LabelSetLabel & data, const SetSettings & settings ) { - Printer::PrintSet ( settings.general, data.getData ( ) ); -} - -void SetStat::stat ( const alphabet::SymbolSetSymbol & data, const SetSettings & settings ) { - Printer::PrintSet ( settings.general, data.getData ( ) ); -} diff --git a/astat2/src/SetStat.h b/astat2/src/SetStat.h deleted file mode 100644 index 4d93250400..0000000000 --- a/astat2/src/SetStat.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * AutomataStat.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef SET_STAT_H_ -#define SET_STAT_H_ - -#include <algorithm> -#include <deque> -#include <set> - -#include "container/ObjectsSet.h" -#include "label/LabelSetLabel.h" -#include "alphabet/SymbolSetSymbol.h" -#include "SetSettings.h" - -class SetStat { -public: - static void stat ( const container::ObjectsSet & set, const SetSettings & settings ); - static void stat ( const label::LabelSetLabel & set, const SetSettings & settings ); - static void stat ( const alphabet::SymbolSetSymbol & set, const SetSettings & settings ); -}; - -#endif /* SET_STAT_H_ */ diff --git a/astat2/src/SizeStat.cpp b/astat2/src/SizeStat.cpp new file mode 100644 index 0000000000..fd80532c69 --- /dev/null +++ b/astat2/src/SizeStat.cpp @@ -0,0 +1,26 @@ +/* + * SizeStat.cpp + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#include "SizeStat.h" + +void SizeStat::stat ( const container::Container & container ) { + dispatch ( container.getData ( ) ); +} + +void SizeStat::stat ( const container::ObjectsSet & set ) { + std::cout << set.size ( ) << std::endl; +} + +auto SizeStatObjectsSet = SizeStat::RegistratorWrapper < void, container::ObjectsSet > ( SizeStat::stat ); + +void SizeStat::stat ( const label::LabelSetLabel & set ) { + std::cout << set.getData ( ).size ( ) << std::endl; +} + +void SizeStat::stat ( const alphabet::SymbolSetSymbol & set ) { + std::cout << set.getData ( ).size ( ) << std::endl; +} diff --git a/astat2/src/SizeStat.h b/astat2/src/SizeStat.h new file mode 100644 index 0000000000..5b15a928c1 --- /dev/null +++ b/astat2/src/SizeStat.h @@ -0,0 +1,30 @@ +/* + * SizeStat.h + * + * Created on: 20. 9. 2014 + * Author: Jan Travnicek + */ + +#ifndef SIZE_STAT_H_ +#define SIZE_STAT_H_ + +#include <algorithm> +#include <deque> +#include <set> + +#include <core/multipleDispatch.hpp> + +#include "container/Container.h" +#include "container/ObjectsSet.h" +#include "label/LabelSetLabel.h" +#include "alphabet/SymbolSetSymbol.h" + +class SizeStat : public std::SingleDispatch < SizeStat, void, container::ContainerBase > { +public: + static void stat ( const container::Container & container ); + static void stat ( const container::ObjectsSet & set ); + static void stat ( const label::LabelSetLabel & set ); + static void stat ( const alphabet::SymbolSetSymbol & set ); +}; + +#endif /* SIZE_STAT_H_ */ diff --git a/astat2/src/StringSettings.h b/astat2/src/StringSettings.h deleted file mode 100644 index 9125e1cdb3..0000000000 --- a/astat2/src/StringSettings.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * StringSettings.h - * - * Created on: 26. 3. 2014 - * Author: Jan Travnicek - */ - -#ifndef __STRING_SETTINGS_H__ -#define __STRING_SETTINGS_H__ - -#include "common/PrintingOptions.h" - -struct StringSettings { - PrintingOptions content; - PrintingOptions alphabet; -}; - -#endif /* __STRING_SETTINGS_H__ */ diff --git a/astat2/src/StringStat.cpp b/astat2/src/StringStat.cpp deleted file mode 100644 index 938ca7681e..0000000000 --- a/astat2/src/StringStat.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - * StringStat.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "StringStat.h" -#include "common/Printer.hpp" - -#include <string/LinearString.h> -#include <string/CyclicString.h> - -void StringStat::stat ( const string::String & string, const StringSettings & settings ) { - dispatch ( string.getData ( ), settings ); -} - -void StringStat::stat ( const string::LinearString & string, const StringSettings & settings ) { - Printer::PrintSet ( settings.alphabet, string.getAlphabet ( ) ); - Printer::PrintVector ( settings.content, string.getContent ( ) ); -} - -auto StringStatFormalString = StringStat::RegistratorWrapper < void, string::LinearString > ( StringStat::stat ); - -void StringStat::stat ( const string::CyclicString & string, const StringSettings & settings ) { - Printer::PrintSet ( settings.alphabet, string.getAlphabet ( ) ); - Printer::PrintVector ( settings.content, string.getContent ( ) ); -} - -auto StringStatUnboundedString = StringStat::RegistratorWrapper < void, string::CyclicString > ( StringStat::stat ); diff --git a/astat2/src/StringStat.h b/astat2/src/StringStat.h deleted file mode 100644 index 33a6e40d1b..0000000000 --- a/astat2/src/StringStat.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * StringStat.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef STRING_STAT_H_ -#define STRING_STAT_H_ - -#include <core/multipleDispatch.hpp> - -#include "string/String.h" -#include "string/StringFeatures.h" - -#include "StringSettings.h" - -class StringStat : public std::SingleDispatchLastStaticParam < StringStat, void, string::StringBase, const StringSettings & > { -public: - static void stat ( const string::String & string, const StringSettings & settings ); - - static void stat ( const string::LinearString & string, const StringSettings & settings ); - static void stat ( const string::CyclicString & string, const StringSettings & settings ); - -}; - -#endif /* STRING_STAT_H_ */ diff --git a/astat2/src/TreeSettings.h b/astat2/src/TreeSettings.h deleted file mode 100644 index 3b6142ec46..0000000000 --- a/astat2/src/TreeSettings.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * TreeSettings.h - * - * Created on: 26. 3. 2014 - * Author: Jan Travnicek - */ - -#ifndef __TREE_SETTINGS_H__ -#define __TREE_SETTINGS_H__ - -#include "common/PrintingOptions.h" - -struct TreeSettings { - PrintingOptions nodes; - PrintingOptions alphabet; -}; - -#endif /* __TREE_SETTINGS_H__ */ diff --git a/astat2/src/TreeStat.cpp b/astat2/src/TreeStat.cpp deleted file mode 100644 index ca35d0f4c5..0000000000 --- a/astat2/src/TreeStat.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - * TreeStat.cpp - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#include "TreeStat.h" -#include "common/Printer.hpp" - -#include <tree/ranked/RankedTree.h> -#include <tree/unranked/UnrankedTree.h> - -void TreeStat::stat ( const tree::Tree & tree, const TreeSettings & settings ) { - dispatch ( tree.getData ( ), settings ); -} - -unsigned TreeStat::countNodes ( const tree::RankedNode & node ) { - unsigned res = 1; - - for ( const std::smart_ptr < const tree::RankedNode > & child : node.getChildren ( ) ) - res += countNodes ( * child ); - - return res; -} - -void TreeStat::stat ( const tree::RankedTree & tree, const TreeSettings & settings ) { - Printer::PrintSet ( settings.alphabet, tree.getAlphabet ( ) ); - - switch ( settings.nodes ) { - case PrintingOptions::PRINT: - alib::XmlDataFactory::toStdout ( tree.getRoot ( ) ); - break; - - case PrintingOptions::SIZE: - std::cout << countNodes ( tree.getRoot ( ) ) << std::endl; - break; - - case PrintingOptions::BOTH: - alib::XmlDataFactory::toStdout ( tree.getRoot ( ) ); - std::cout << countNodes ( tree.getRoot ( ) ) << std::endl; - break; - - case PrintingOptions::NOOP: - break; - } -} - -auto TreeStatFormalTree = TreeStat::RegistratorWrapper < void, tree::RankedTree > ( TreeStat::stat ); - -unsigned TreeStat::countNodes ( const tree::UnrankedNode & node ) { - unsigned res = 1; - - for ( const std::smart_ptr < const tree::UnrankedNode > & child : node.getChildren ( ) ) - res += countNodes ( * child ); - - return res; -} - -void TreeStat::stat ( const tree::UnrankedTree & tree, const TreeSettings & settings ) { - Printer::PrintSet ( settings.alphabet, tree.getAlphabet ( ) ); - - switch ( settings.nodes ) { - case PrintingOptions::PRINT: - alib::XmlDataFactory::toStdout ( tree.getRoot ( ) ); - break; - - case PrintingOptions::SIZE: - std::cout << countNodes ( tree.getRoot ( ) ) << std::endl; - break; - - case PrintingOptions::BOTH: - alib::XmlDataFactory::toStdout ( tree.getRoot ( ) ); - std::cout << countNodes ( tree.getRoot ( ) ) << std::endl; - break; - - case PrintingOptions::NOOP: - break; - } -} - -auto TreeStatUnboundedTree = TreeStat::RegistratorWrapper < void, tree::UnrankedTree > ( TreeStat::stat ); diff --git a/astat2/src/TreeStat.h b/astat2/src/TreeStat.h deleted file mode 100644 index d8a81d8127..0000000000 --- a/astat2/src/TreeStat.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * TreeStat.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef TREE_STAT_H_ -#define TREE_STAT_H_ - -#include <core/multipleDispatch.hpp> - -#include "tree/Tree.h" -#include "tree/TreeFeatures.h" - -#include "TreeSettings.h" - -class TreeStat : public std::SingleDispatchLastStaticParam < TreeStat, void, tree::TreeBase, const TreeSettings & > { - static unsigned countNodes ( const tree::RankedNode & node ); - - static unsigned countNodes ( const tree::UnrankedNode & node ); - -public: - static void stat ( const tree::Tree & tree, const TreeSettings & settings ); - - static void stat ( const tree::RankedTree & tree, const TreeSettings & settings ); - static void stat ( const tree::UnrankedTree & tree, const TreeSettings & settings ); - -}; - -#endif /* TREE_STAT_H_ */ diff --git a/astat2/src/astat.cpp b/astat2/src/astat.cpp index d3caba8449..6f725b1c66 100644 --- a/astat2/src/astat.cpp +++ b/astat2/src/astat.cpp @@ -14,24 +14,12 @@ #include <factory/XmlDataFactory.hpp> #include <exception/CommonException.h> -#include "AutomataStat.h" -#include "GrammarStat.h" -#include "RegExpStat.h" -#include "StringStat.h" -#include "TreeStat.h" -#include "SetStat.h" +#include "SizeStat.h" -PrintingOptions translatePrintingOptions ( std::string value ) { - if ( value == "noop" ) - return PrintingOptions::NOOP; - else if ( value == "print" ) - return PrintingOptions::PRINT; - else if ( value == "size" ) - return PrintingOptions::SIZE; - else if ( value == "both" ) - return PrintingOptions::BOTH; - else - throw exception::CommonException ( "Invalid Argument in translate printing options (" + value + ")" ); +template < class T > +void printStat ( const T & data, TCLAP::ValueArg < std::string > & presentation ) { + if ( presentation.getValue ( ) == "size" ) + SizeStat::stat ( data ); } int main ( int argc, char * argv[] ) { @@ -39,12 +27,12 @@ int main ( int argc, char * argv[] ) { common::GlobalData::argc = argc; common::GlobalData::argv = argv; - TCLAP::CmdLine cmd ( "Prints usefull information about automata, grammars, regexps, ...", ' ', "0.01" ); + TCLAP::CmdLine cmd ( "Prints useful information about raw data structures", ' ', "0.01" ); // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- std::vector < std::string > allowedPrintingOptions { - "noop", "print", "size", "both" + "size", "unique_size" }; TCLAP::ValuesConstraint < std::string > allowedPrintingOptionsVals ( allowedPrintingOptions ); @@ -53,64 +41,6 @@ int main ( int argc, char * argv[] ) { // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - std::vector < std::string > automatonPrintingOptions { - "states", "finalStates", "initialStates", "inputAlphabet", "transitions" - }; - TCLAP::ValuesConstraint < std::string > automatonPrintingOptionsVals ( automatonPrintingOptions ); - - TCLAP::MultiArg < std::string > automaton ( "", "automaton", "Display stats of automata", false, & automatonPrintingOptionsVals ); - - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - std::vector < std::string > grammarPrintingOptions { - "nonterminals", "terminals", "initialSymbols", "rules" - }; - TCLAP::ValuesConstraint < std::string > grammarPrintingOptionsVals ( grammarPrintingOptions ); - - TCLAP::MultiArg < std::string > grammar ( "", "grammar", "Display stats of grammars", false, & grammarPrintingOptionsVals ); - - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - std::vector < std::string > regexpPrintingOptions { - "alphabet", "nodes" - }; - TCLAP::ValuesConstraint < std::string > regexpPrintingOptionsVals ( regexpPrintingOptions ); - - TCLAP::MultiArg < std::string > regexp ( "", "regexp", "Display stats of regexps", false, & regexpPrintingOptionsVals ); - - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - std::vector < std::string > stringPrintingOptions { - "alphabet", "content" - }; - TCLAP::ValuesConstraint < std::string > stringPrintingOptionsVals ( stringPrintingOptions ); - - TCLAP::MultiArg < std::string > string ( "", "string", "Display stats of strings", false, & stringPrintingOptionsVals ); - - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - std::vector < std::string > treePrintingOptions { - "alphabet", "nodes" - }; - TCLAP::ValuesConstraint < std::string > treePrintingOptionsVals ( treePrintingOptions ); - - TCLAP::MultiArg < std::string > tree ( "", "tree", "Display stats of trees", false, & treePrintingOptionsVals ); - - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - TCLAP::SwitchArg set ( "", "set", "Display stats of sets", false ); - - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - std::vector < TCLAP::Arg * > xorlist; - xorlist.push_back ( & automaton ); - xorlist.push_back ( & grammar ); - xorlist.push_back ( & regexp ); - xorlist.push_back ( & string ); - xorlist.push_back ( & tree ); - xorlist.push_back ( & set ); - cmd.xorAdd ( xorlist ); - TCLAP::ValueArg < std::string > file ( "i", "input", "Read from file", false, "-", "file" ); cmd.add ( file ); @@ -131,145 +61,29 @@ int main ( int argc, char * argv[] ) { measurements::start ( "Overal", measurements::Type::OVERALL ); measurements::start ( "Input read", measurements::Type::AUXILIARY ); - PrintingOptions printingOption = translatePrintingOptions ( presentation.getValue ( ) ); - - std::deque < sax::Token > tokens = sax::FromXMLParserHelper::parseInput(file); - - if ( alib::XmlDataFactory::first < automaton::Automaton > ( tokens ) && automaton.isSet ( ) ) { - AutomataSettings settings = { PrintingOptions::NOOP, PrintingOptions::NOOP, PrintingOptions::NOOP, PrintingOptions::NOOP, PrintingOptions::NOOP }; - std::set < std::string > values { - automaton.getValue ( ).begin ( ), automaton.getValue ( ).end ( ) - }; - - if ( values.count ( "states" ) ) - settings.states = printingOption; - - if ( values.count ( "finalStates" ) ) - settings.finalStates = printingOption; + std::deque < sax::Token > tokens = sax::FromXMLParserHelper::parseInput ( file ); - if ( values.count ( "initialStates" ) ) - settings.initialStates = printingOption; - - if ( values.count ( "inputAlphabet" ) ) - settings.inputAlphabet = printingOption; - - if ( values.count ( "transitions" ) ) - settings.transitions = printingOption; - - automaton::Automaton automaton = alib::XmlDataFactory::fromTokens < automaton::Automaton > ( std::move ( tokens ) ); + if ( alib::XmlDataFactory::first < container::Container > ( tokens ) ) { + container::Container data = alib::XmlDataFactory::fromTokens < container::Container > ( std::move ( tokens ) ); measurements::end ( ); measurements::start ( "Stats print", measurements::Type::MAIN ); - AutomataStat::stat ( automaton, settings ); - } else if ( alib::XmlDataFactory::first < grammar::Grammar > ( tokens ) && grammar.isSet ( ) ) { - GrammarSettings settings = { PrintingOptions::NOOP, PrintingOptions::NOOP, PrintingOptions::NOOP, PrintingOptions::NOOP }; - std::set < std::string > values { - grammar.getValue ( ).begin ( ), grammar.getValue ( ).end ( ) - }; - - if ( values.count ( "nonterminals" ) ) - settings.nonterminals = printingOption; - - if ( values.count ( "terminals" ) ) - settings.terminals = printingOption; - - if ( values.count ( "initialSymbols" ) ) - settings.initialSymbols = printingOption; - - if ( values.count ( "rules" ) ) - settings.rules = printingOption; - - grammar::Grammar grammar = alib::XmlDataFactory::fromTokens < grammar::Grammar > ( std::move ( tokens ) ); - - measurements::end ( ); - measurements::start ( "Stats print", measurements::Type::MAIN ); - - GrammarStat::stat ( grammar, settings ); - } else if ( alib::XmlDataFactory::first < regexp::RegExp > ( tokens ) && regexp.isSet ( ) ) { - RegExpSettings settings = { PrintingOptions::NOOP, PrintingOptions::NOOP }; - std::set < std::string > values { - regexp.getValue ( ).begin ( ), regexp.getValue ( ).end ( ) - }; - - if ( values.count ( "alphabet" ) ) - settings.alphabet = printingOption; - - if ( values.count ( "nodes" ) ) - settings.nodes = printingOption; - - regexp::RegExp regexp = alib::XmlDataFactory::fromTokens < regexp::RegExp > ( std::move ( tokens ) ); - - measurements::end ( ); - measurements::start ( "Stats print", measurements::Type::MAIN ); - - RegExpStat::stat ( regexp, settings ); - } else if ( alib::XmlDataFactory::first < string::String > ( tokens ) && string.isSet ( ) ) { - StringSettings settings = { PrintingOptions::NOOP, PrintingOptions::NOOP }; - std::set < std::string > values { - string.getValue ( ).begin ( ), string.getValue ( ).end ( ) - }; - - if ( values.count ( "alphabet" ) ) - settings.alphabet = printingOption; - - if ( values.count ( "content" ) ) - settings.content = printingOption; - - string::String string = alib::XmlDataFactory::fromTokens < string::String > ( std::move ( tokens ) ); - - measurements::end ( ); - measurements::start ( "Stats print", measurements::Type::MAIN ); - - StringStat::stat ( string, settings ); - } else if ( alib::XmlDataFactory::first < tree::Tree > ( tokens ) && tree.isSet ( ) ) { - TreeSettings settings = { PrintingOptions::NOOP, PrintingOptions::NOOP }; - std::set < std::string > values { - tree.getValue ( ).begin ( ), tree.getValue ( ).end ( ) - }; - - if ( values.count ( "alphabet" ) ) - settings.alphabet = printingOption; - - if ( values.count ( "nodes" ) ) - settings.nodes = printingOption; - - tree::Tree tree = alib::XmlDataFactory::fromTokens < tree::Tree > ( std::move ( tokens ) ); - - measurements::end ( ); - measurements::start ( "Stats print", measurements::Type::MAIN ); - - TreeStat::stat ( tree, settings ); - } else if ( alib::XmlDataFactory::first < container::ObjectsSet > ( tokens ) && set.isSet ( ) ) { - SetSettings settings = { PrintingOptions::NOOP }; - settings.general = printingOption; - - container::ObjectsSet data = alib::XmlDataFactory::fromTokens < container::ObjectsSet > ( std::move ( tokens ) ); - - measurements::end ( ); - measurements::start ( "Stats print", measurements::Type::MAIN ); - - SetStat::stat ( data, settings ); - } else if ( alib::XmlDataFactory::first < label::LabelSetLabel > ( tokens ) && set.isSet ( ) ) { - SetSettings settings = { PrintingOptions::NOOP }; - settings.general = printingOption; - + printStat ( data, presentation ); + } else if ( alib::XmlDataFactory::first < label::LabelSetLabel > ( tokens ) ) { label::LabelSetLabel data = alib::XmlDataFactory::fromTokens < label::LabelSetLabel > ( std::move ( tokens ) ); measurements::end ( ); measurements::start ( "Stats print", measurements::Type::MAIN ); - SetStat::stat ( data, settings ); - } else if ( alib::XmlDataFactory::first < alphabet::SymbolSetSymbol > ( tokens ) && set.isSet ( ) ) { - SetSettings settings = { PrintingOptions::NOOP }; - settings.general = printingOption; - + printStat ( data, presentation ); + } else if ( alib::XmlDataFactory::first < alphabet::SymbolSetSymbol > ( tokens ) ) { alphabet::SymbolSetSymbol data = alib::XmlDataFactory::fromTokens < alphabet::SymbolSetSymbol > ( std::move ( tokens ) ); measurements::end ( ); measurements::start ( "Stats print", measurements::Type::MAIN ); - SetStat::stat ( data, settings ); + printStat ( data, presentation ); } else { throw exception::CommonException ( "Input not recognized." ); } diff --git a/astat2/src/common/Printer.hpp b/astat2/src/common/Printer.hpp deleted file mode 100644 index 328cb0883b..0000000000 --- a/astat2/src/common/Printer.hpp +++ /dev/null @@ -1,111 +0,0 @@ -/* - * AutomataStat.h - * - * Created on: 20. 9. 2014 - * Author: Jan Travnicek - */ - -#ifndef PRINTER_H_ -#define PRINTER_H_ - -#include "PrintingOptions.h" - -#include <factory/XmlDataFactory.hpp> -#include <container/ObjectsSet.h> -#include <container/ObjectsMap.h> -#include <container/ObjectsTuple.h> -#include <container/ObjectsVector.h> -#include <container/ObjectsVariant.h> -#include <container/ObjectsPair.h> - -#include <iostream> - -class Printer { -public: - template < class ... T > - static void PrintSet ( PrintingOptions printingOptions, const std::set < T ... > & data ) { - switch ( printingOptions ) { - case PrintingOptions::PRINT: - alib::XmlDataFactory::toStdout ( data ); - break; - - case PrintingOptions::SIZE: - std::cout << data.size ( ) << std::endl; - break; - - case PrintingOptions::BOTH: - std::cout << data.size ( ) << std::endl; - alib::XmlDataFactory::toStdout ( data ); - break; - - case PrintingOptions::NOOP: - break; - } - } - - template < class ... T > - static void PrintVector ( PrintingOptions printingOptions, const std::vector < T ... > & data ) { - switch ( printingOptions ) { - case PrintingOptions::PRINT: - alib::XmlDataFactory::toStdout ( data ); - break; - - case PrintingOptions::SIZE: - std::cout << data.size ( ) << std::endl; - break; - - case PrintingOptions::BOTH: - std::cout << data.size ( ) << std::endl; - alib::XmlDataFactory::toStdout ( data ); - break; - - case PrintingOptions::NOOP: - break; - } - } - - template < class ... T > - static void PrintMap ( PrintingOptions printingOptions, const std::map < T ... > & data ) { - switch ( printingOptions ) { - case PrintingOptions::PRINT: - alib::XmlDataFactory::toStdout ( data ); - break; - - case PrintingOptions::SIZE: - std::cout << data.size ( ) << std::endl; - break; - - case PrintingOptions::BOTH: - std::cout << data.size ( ) << std::endl; - alib::XmlDataFactory::toStdout ( data ); - break; - - case PrintingOptions::NOOP: - break; - } - } - - template < class T > - static void PrintValue ( PrintingOptions printingOptions, const T & data ) { - switch ( printingOptions ) { - case PrintingOptions::PRINT: - alib::XmlDataFactory::toStdout ( data ); - break; - - case PrintingOptions::SIZE: - std::cout << 1 << std::endl; - break; - - case PrintingOptions::BOTH: - std::cout << 1 << std::endl; - alib::XmlDataFactory::toStdout ( data ); - break; - - case PrintingOptions::NOOP: - break; - } - } - -}; - -#endif // PRINTER_H_ diff --git a/astat2/src/common/PrintingOptions.h b/astat2/src/common/PrintingOptions.h deleted file mode 100644 index 9d66a6e02c..0000000000 --- a/astat2/src/common/PrintingOptions.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * PrintingOptions.h - * - * Created on: 26. 3. 2014 - * Author: Jan Travnicek - */ - -#ifndef __PRINTING_OPTIONS_H__ -#define __PRINTING_OPTIONS_H__ - -enum class PrintingOptions { - PRINT, SIZE, BOTH, NOOP -}; - -#endif /* __PRINTING_OPTIONS_H_ */ diff --git a/tests.aarbology.sh b/tests.aarbology.sh index fee36759d7..f2434b5a62 100755 --- a/tests.aarbology.sh +++ b/tests.aarbology.sh @@ -190,7 +190,7 @@ function runTestSubtree { cat $SUBJECT_FILE > $SUBJECT_FILE_COPY cat $PATTERN_FILE > $PATTERN_FILE_COPY - Occs=`./aarbology2 -a exactSubtreeMatch -s "$SUBJECT_FILE_COPY" -p "$PATTERN_FILE_COPY" | ./astat2 -p size --set` + Occs=`./aarbology2 -a exactSubtreeMatch -s "$SUBJECT_FILE_COPY" -p "$PATTERN_FILE_COPY" | ./astat2 -p size` runTest2 "$Occs" "$2" "$SUBJECT_FILE_COPY" "$PATTERN_FILE_COPY" fi @@ -207,7 +207,7 @@ function runTestSubtree { cat <(generateSubject) > $SUBJECT_FILE cat <(generateSubtree) > $PATTERN_FILE - Occs=`./aarbology2 -a exactSubtreeMatch -s "$SUBJECT_FILE" -p "$PATTERN_FILE" | ./astat2 -p size --set` + Occs=`./aarbology2 -a exactSubtreeMatch -s "$SUBJECT_FILE" -p "$PATTERN_FILE" | ./astat2 -p size` runTest2 "$Occs" "$2" "$SUBJECT_FILE" "$PATTERN_FILE" & (( i%JOBS==0 )) && wait done @@ -235,7 +235,7 @@ function runTestPattern { cat $SUBJECT_FILE > $SUBJECT_FILE_COPY cat $PATTERN_FILE > $PATTERN_FILE_COPY - Occs=`./aarbology2 -a exactPatternMatch -s "$SUBJECT_FILE_COPY" -p "$PATTERN_FILE_COPY" | ./astat2 -p size --set` + Occs=`./aarbology2 -a exactPatternMatch -s "$SUBJECT_FILE_COPY" -p "$PATTERN_FILE_COPY" | ./astat2 -p size` runTest2 "$Occs" "$2" "$SUBJECT_FILE_COPY" "$PATTERN_FILE_COPY" fi @@ -252,7 +252,7 @@ function runTestPattern { cat <(generateSubject) > $SUBJECT_FILE cat <(generatePattern) > $PATTERN_FILE - Occs=`./aarbology2 -a exactPatternMatch -s "$SUBJECT_FILE" -p "$PATTERN_FILE" | ./astat2 -p size --set` + Occs=`./aarbology2 -a exactPatternMatch -s "$SUBJECT_FILE" -p "$PATTERN_FILE" | ./astat2 -p size` runTest2 "$Occs" "$2" "$SUBJECT_FILE" "$PATTERN_FILE" & (( i%JOBS==0 )) && wait done @@ -280,7 +280,7 @@ function runTestNonlinearPattern { cat $SUBJECT_FILE > $SUBJECT_FILE_COPY cat $PATTERN_FILE > $PATTERN_FILE_COPY - Occs=`./aarbology2 -a exactPatternMatch -s "$SUBJECT_FILE_COPY" -p "$PATTERN_FILE_COPY" | ./astat2 -p size --set` + Occs=`./aarbology2 -a exactPatternMatch -s "$SUBJECT_FILE_COPY" -p "$PATTERN_FILE_COPY" | ./astat2 -p size` runTest2 "$Occs" "$2" "$SUBJECT_FILE_COPY" "$PATTERN_FILE_COPY" fi @@ -297,7 +297,7 @@ function runTestNonlinearPattern { cat <(generateSubject) > $SUBJECT_FILE cat <(generateNonlinearPattern) > $PATTERN_FILE - Occs=`./aarbology2 -a exactPatternMatch -s "$SUBJECT_FILE" -p "$PATTERN_FILE" | ./astat2 -p size --set` + Occs=`./aarbology2 -a exactPatternMatch -s "$SUBJECT_FILE" -p "$PATTERN_FILE" | ./astat2 -p size` runTest2 "$Occs" "$2" "$SUBJECT_FILE" "$PATTERN_FILE" & (( i%JOBS==0 )) && wait done @@ -325,7 +325,7 @@ function runTestPatternEnds { cat $SUBJECT_FILE > $SUBJECT_FILE_COPY cat $PATTERN_FILE > $PATTERN_FILE_COPY - Occs=`./aarbology2 -e -a exactPatternMatch -s <(./acast2 -t PrefixRankedTree -i "$SUBJECT_FILE_COPY" ) -p <(./acast2 -t PrefixRankedPattern -i "$PATTERN_FILE_COPY" ) | ./astat2 -p size --set` + Occs=`./aarbology2 -e -a exactPatternMatch -s <(./acast2 -t PrefixRankedTree -i "$SUBJECT_FILE_COPY" ) -p <(./acast2 -t PrefixRankedPattern -i "$PATTERN_FILE_COPY" ) | ./astat2 -p size` runTest2 "$Occs" "$2" "$SUBJECT_FILE_COPY" "$PATTERN_FILE_COPY" fi @@ -342,7 +342,7 @@ function runTestPatternEnds { cat <(generateSubject) > $SUBJECT_FILE cat <(generatePattern) > $PATTERN_FILE - Occs=`./aarbology2 -e -a exactPatternMatch -s <(./acast2 -t PrefixRankedTree -i "$SUBJECT_FILE" ) -p <(./acast2 -t PrefixRankedPattern -i "$PATTERN_FILE" ) | ./astat2 -p size --set` + Occs=`./aarbology2 -e -a exactPatternMatch -s <(./acast2 -t PrefixRankedTree -i "$SUBJECT_FILE" ) -p <(./acast2 -t PrefixRankedPattern -i "$PATTERN_FILE" ) | ./astat2 -p size` runTest2 "$Occs" "$2" "$SUBJECT_FILE" "$PATTERN_FILE" & (( i%JOBS==0 )) && wait done @@ -353,26 +353,26 @@ function runTestPatternEnds { clearResults } -runTestPatternEnds "Exact Pattern Matching Automaton (PrefixRanked)" "./aarbology2 -a exactPatternMatchingAutomaton -p <(./acast2 -t PrefixRankedPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <( ./alphabetManip2 -o get -i \"\$SUBJECT_FILE\" ) ) ) | ./adeterminize2 | ./arun2 -t occurrences -a - -i <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" | ./acast2 -t LinearString ) | ./astat2 -p size --set" +runTestPatternEnds "Exact Pattern Matching Automaton (PrefixRanked)" "./aarbology2 -a exactPatternMatchingAutomaton -p <(./acast2 -t PrefixRankedPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <( ./alphabetManip2 -o get -i \"\$SUBJECT_FILE\" ) ) ) | ./adeterminize2 | ./arun2 -t occurrences -a - -i <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" | ./acast2 -t LinearString ) | ./astat2 -p size" RAND_SIZE_SUBJECT=100 -runTestPatternEnds "Exact Tree Pattern Automaton (PrefixRanked)" "./aarbology2 -a exactTreePatternAutomaton -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) | ./adeterminize2 | ./arun2 -t result -i <(./acast2 -t PrefixRankedPattern -i \"\$PATTERN_FILE\" | ./acast2 -t LinearString ) | ./astat2 -p size --set" +runTestPatternEnds "Exact Tree Pattern Automaton (PrefixRanked)" "./aarbology2 -a exactTreePatternAutomaton -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) | ./adeterminize2 | ./arun2 -t result -i <(./acast2 -t PrefixRankedPattern -i \"\$PATTERN_FILE\" | ./acast2 -t LinearString ) | ./astat2 -p size" RAND_SIZE_SUBJECT=1000 -runTestSubtree "Exact Boyer Moore Horspool (Subtree PrefixRankedBar)" "./aarbology2 -a boyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarTree -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size --set" -runTestSubtree "Exact Subtree Automaton (Tree)" "./arun2 -t occurrences -a <(./aarbology2 -a exactSubtreeMatchingAutomaton -p \"\$PATTERN_FILE\" | ./adeterminize2) -i \"\$SUBJECT_FILE\" | ./astat2 -p size --set" - -runTestPattern "Exact Boyer Moore Horspool (Pattern PrefixRankedBar)" "./aarbology2 -a boyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size --set" -runTestNonlinearPattern "Exact Pattern Match (NonlinearPattern PrefixRankedBar)" "./aarbology2 -a exactPatternMatch -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarNonlinearPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size --set" -runTestNonlinearPattern "Exact Boyer Moore Horspool (NonlinearPattern PrefixRankedBar)" "./aarbology2 -a boyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarNonlinearPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size --set" -runTestPattern "Exact Reversed Boyer Moore Horspool (Pattern PrefixRankedBar)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size --set" -runTestPattern "Exact Reversed Boyer Moore Horspool (Pattern PrefixRanked)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size --set" -runTestNonlinearPattern "Exact Reversed Boyer Moore Horspool (NonlinearPattern PrefixRankedBar)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarNonlinearPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size --set" -runTestNonlinearPattern "Exact Reversed Boyer Moore Horspool (NonlinearPattern PrefixRanked)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedNonlinearPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size --set" -runTestPattern "Exact Knuth Morris Pratt (Pattern PrefixRankedBar)" "./aarbology2 -a knuthMorrisPratt -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i \"\$PATTERN_FILE\" ) | ./astat2 -p size --set" -runTestPattern "Exact Knuth Morris Pratt (Pattern PrefixRanked)" "./aarbology2 -a knuthMorrisPratt -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedPattern -i \"\$PATTERN_FILE\" ) | ./astat2 -p size --set" -runTestPattern "Exact Dead Zone Using Bad Character Shift And Border Array (Pattern PrefixRanked)" "./aarbology2 -a deadZoneUsingBadCharacterShiftAndBorderArray -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size --set" -runTestPattern "Exact Dead Zone Using Bad Character Shift And Border Array (Pattern PrefixRankedBar)" "./aarbology2 -a deadZoneUsingBadCharacterShiftAndBorderArray -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size --set" - -runTestPattern "Exact Pattern Matching Automaton (Pattern Tree)" "./arun2 -t occurrences -a <(./aarbology2 -a exactPatternMatchingAutomaton -p <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\")) | ./adeterminize2) -i \"\$SUBJECT_FILE\" | ./astat2 -p size --set" -runTestPattern "Exact Pattern Matching Automaton (PrefixRankedBar)" "./aarbology2 -a exactPatternMatchingAutomaton -p <(./acast2 -t PrefixRankedBarPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <( ./alphabetManip2 -o get -i \"\$SUBJECT_FILE\" ) ) ) | ./adeterminize2 | ./arun2 -t occurrences -a - -i <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" | ./acast2 -t LinearString ) | ./astat2 -p size --set" +runTestSubtree "Exact Boyer Moore Horspool (Subtree PrefixRankedBar)" "./aarbology2 -a boyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarTree -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestSubtree "Exact Subtree Automaton (Tree)" "./arun2 -t occurrences -a <(./aarbology2 -a exactSubtreeMatchingAutomaton -p \"\$PATTERN_FILE\" | ./adeterminize2) -i \"\$SUBJECT_FILE\" | ./astat2 -p size" + +runTestPattern "Exact Boyer Moore Horspool (Pattern PrefixRankedBar)" "./aarbology2 -a boyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestNonlinearPattern "Exact Pattern Match (NonlinearPattern PrefixRankedBar)" "./aarbology2 -a exactPatternMatch -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarNonlinearPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestNonlinearPattern "Exact Boyer Moore Horspool (NonlinearPattern PrefixRankedBar)" "./aarbology2 -a boyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarNonlinearPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestPattern "Exact Reversed Boyer Moore Horspool (Pattern PrefixRankedBar)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestPattern "Exact Reversed Boyer Moore Horspool (Pattern PrefixRanked)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestNonlinearPattern "Exact Reversed Boyer Moore Horspool (NonlinearPattern PrefixRankedBar)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarNonlinearPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestNonlinearPattern "Exact Reversed Boyer Moore Horspool (NonlinearPattern PrefixRanked)" "./aarbology2 -a reversedBoyerMooreHorspool -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedNonlinearPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestPattern "Exact Knuth Morris Pratt (Pattern PrefixRankedBar)" "./aarbology2 -a knuthMorrisPratt -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i \"\$PATTERN_FILE\" ) | ./astat2 -p size" +runTestPattern "Exact Knuth Morris Pratt (Pattern PrefixRanked)" "./aarbology2 -a knuthMorrisPratt -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedPattern -i \"\$PATTERN_FILE\" ) | ./astat2 -p size" +runTestPattern "Exact Dead Zone Using Bad Character Shift And Border Array (Pattern PrefixRanked)" "./aarbology2 -a deadZoneUsingBadCharacterShiftAndBorderArray -s <( ./acast2 -t PrefixRankedTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" +runTestPattern "Exact Dead Zone Using Bad Character Shift And Border Array (Pattern PrefixRankedBar)" "./aarbology2 -a deadZoneUsingBadCharacterShiftAndBorderArray -s <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" ) -p <( ./acast2 -t PrefixRankedBarPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\"))) | ./astat2 -p size" + +runTestPattern "Exact Pattern Matching Automaton (Pattern Tree)" "./arun2 -t occurrences -a <(./aarbology2 -a exactPatternMatchingAutomaton -p <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\")) | ./adeterminize2) -i \"\$SUBJECT_FILE\" | ./astat2 -p size" +runTestPattern "Exact Pattern Matching Automaton (PrefixRankedBar)" "./aarbology2 -a exactPatternMatchingAutomaton -p <(./acast2 -t PrefixRankedBarPattern -i <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <( ./alphabetManip2 -o get -i \"\$SUBJECT_FILE\" ) ) ) | ./adeterminize2 | ./arun2 -t occurrences -a - -i <( ./acast2 -t PrefixRankedBarTree -i \"\$SUBJECT_FILE\" | ./acast2 -t LinearString ) | ./astat2 -p size" diff --git a/tests.astringology.sh b/tests.astringology.sh index e77dc921a8..8e4efe5310 100755 --- a/tests.astringology.sh +++ b/tests.astringology.sh @@ -180,7 +180,7 @@ function runTest { cat $SUBJECT_FILE > $SUBJECT_FILE_COPY cat $PATTERN_FILE > $PATTERN_FILE_COPY - Occs=`./astringology2 -a exactFactorMatch -s "$SUBJECT_FILE_COPY" -p "$PATTERN_FILE_COPY" | ./astat2 -p size --set` + Occs=`./astringology2 -a exactFactorMatch -s "$SUBJECT_FILE_COPY" -p "$PATTERN_FILE_COPY" | ./astat2 -p size` runTest2 "$Occs" "$2" "$SUBJECT_FILE_COPY" "$PATTERN_FILE_COPY" fi @@ -197,7 +197,7 @@ function runTest { cat <(generateSubject) > $SUBJECT_FILE cat <(generatePattern) > $PATTERN_FILE - Occs=`./astringology2 -a exactFactorMatch -s "$SUBJECT_FILE" -p "$PATTERN_FILE" | ./astat2 -p size --set` + Occs=`./astringology2 -a exactFactorMatch -s "$SUBJECT_FILE" -p "$PATTERN_FILE" | ./astat2 -p size` runTest2 "$Occs" "$2" "$SUBJECT_FILE" "$PATTERN_FILE" & (( i%JOBS==0 )) && wait done @@ -208,8 +208,8 @@ function runTest { clearResults } -runTest "Exact Boyer Moore Horspool" "./astringology2 -a boyerMooreHorspool -s \"\$SUBJECT_FILE\" -p <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size --set" -runTest "Exact Reversed Boyer Moore Horspool" "./astringology2 -a reversedBoyerMooreHorspool -s \"\$SUBJECT_FILE\" -p <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size --set" -runTest "Exact Matching Automaton" "./arun2 -t occurrences -a <(./astringology2 -a exactMatchingAutomaton -p <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\")) | ./adeterminize2) -i \"\$SUBJECT_FILE\" | ./astat2 -p size --set" -runTest "Exact Dead Zone Using Bad Character Shift" "./astringology2 -a deadZoneUsingBadCharacterShift -s \"\$SUBJECT_FILE\" -p <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size --set" +runTest "Exact Boyer Moore Horspool" "./astringology2 -a boyerMooreHorspool -s \"\$SUBJECT_FILE\" -p <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size" +runTest "Exact Reversed Boyer Moore Horspool" "./astringology2 -a reversedBoyerMooreHorspool -s \"\$SUBJECT_FILE\" -p <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size" +runTest "Exact Matching Automaton" "./arun2 -t occurrences -a <(./astringology2 -a exactMatchingAutomaton -p <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\")) | ./adeterminize2) -i \"\$SUBJECT_FILE\" | ./astat2 -p size" +runTest "Exact Dead Zone Using Bad Character Shift" "./astringology2 -a deadZoneUsingBadCharacterShift -s \"\$SUBJECT_FILE\" -p <(./alphabetManip2 -o add -i \"\$PATTERN_FILE\" -a <(./alphabetManip2 -o get -i \"\$SUBJECT_FILE\")) | ./astat2 -p size" -- GitLab