From e2b703385d9065cf7bc3ca89c06f2646138c1191 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Wed, 14 Dec 2016 19:19:21 +0100 Subject: [PATCH] Use default data types in stringology --- .../exact/ExactFactorAutomaton.cpp | 14 ++++++------- .../exact/ExactMatchingAutomaton.cpp | 14 ++++++------- ...tiNondeterministicSubsequenceAutomaton.cpp | 20 +++++++++---------- ...ctNondeterministicSubsequenceAutomaton.cpp | 14 ++++++------- .../exact/ExactSubsequenceAutomaton.cpp | 16 +++++++-------- .../stringology/exact/stringMatchTest.cpp | 4 ++-- 6 files changed, 41 insertions(+), 41 deletions(-) diff --git a/alib2algo/src/stringology/exact/ExactFactorAutomaton.cpp b/alib2algo/src/stringology/exact/ExactFactorAutomaton.cpp index 9b3c0d22a8..5effd4eb84 100644 --- a/alib2algo/src/stringology/exact/ExactFactorAutomaton.cpp +++ b/alib2algo/src/stringology/exact/ExactFactorAutomaton.cpp @@ -20,15 +20,15 @@ automaton::Automaton ExactFactorAutomaton::construct(const string::String& text) } automaton::EpsilonNFA < > ExactFactorAutomaton::construct(const string::LinearString < >& text) { - automaton::EpsilonNFA < > res(label::Label(0)); - res.addFinalState(label::Label(0)); + automaton::EpsilonNFA < > res(DefaultStateType(0)); + res.addFinalState(DefaultStateType(0)); res.setInputAlphabet(text.getAlphabet()); int i = 1; - for(const alphabet::Symbol& symbol : text.getContent()) { - res.addState(label::Label(i)); - res.addFinalState(label::Label(i)); - res.addTransition(label::Label(i-1), symbol, label::Label(i)); - res.addTransition(label::Label(0), label::Label(i)); + for(const DefaultSymbolType& symbol : text.getContent()) { + res.addState(DefaultStateType(i)); + res.addFinalState(DefaultStateType(i)); + res.addTransition(DefaultStateType(i-1), symbol, DefaultStateType(i)); + res.addTransition(DefaultStateType(0), DefaultStateType(i)); i++; } return res; diff --git a/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp b/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp index fdcede9252..e25c880757 100644 --- a/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp +++ b/alib2algo/src/stringology/exact/ExactMatchingAutomaton.cpp @@ -20,18 +20,18 @@ automaton::Automaton ExactMatchingAutomaton::construct(const string::String& pat } automaton::NFA < > ExactMatchingAutomaton::construct(const string::LinearString < >& pattern) { - automaton::NFA < > res(label::Label(0)); + automaton::NFA < > res(DefaultStateType(0)); res.setInputAlphabet(pattern.getAlphabet()); - for(const alphabet::Symbol& symbol : pattern.getAlphabet()) { - res.addTransition(label::Label(0), symbol, label::Label(0)); + for(const DefaultSymbolType& symbol : pattern.getAlphabet()) { + res.addTransition(DefaultStateType(0), symbol, DefaultStateType(0)); } int i = 1; - for(const alphabet::Symbol& symbol : pattern.getContent()) { - res.addState(label::Label(i)); - res.addTransition(label::Label(i-1), symbol, label::Label(i)); + for(const DefaultSymbolType& symbol : pattern.getContent()) { + res.addState(DefaultStateType(i)); + res.addTransition(DefaultStateType(i-1), symbol, DefaultStateType(i)); i++; } - res.addFinalState(label::Label(i-1)); + res.addFinalState(DefaultStateType(i-1)); return res; } diff --git a/alib2algo/src/stringology/exact/ExactMultiNondeterministicSubsequenceAutomaton.cpp b/alib2algo/src/stringology/exact/ExactMultiNondeterministicSubsequenceAutomaton.cpp index 11e031ebea..e1eeca008c 100644 --- a/alib2algo/src/stringology/exact/ExactMultiNondeterministicSubsequenceAutomaton.cpp +++ b/alib2algo/src/stringology/exact/ExactMultiNondeterministicSubsequenceAutomaton.cpp @@ -19,24 +19,24 @@ automaton::Automaton ExactMultiNondeterministicSubsequenceAutomaton::construct(c } automaton::EpsilonNFA < > ExactMultiNondeterministicSubsequenceAutomaton::construct(const std::set<string::LinearString < >>& texts) { - automaton::EpsilonNFA < > res(label::Label(0)); - res.addFinalState(label::Label(0)); + automaton::EpsilonNFA < > res(DefaultStateType(0)); + res.addFinalState(DefaultStateType(0)); int j = 0; for(const string::LinearString < >& text : texts) { res.addInputSymbols(text.getAlphabet()); - res.addState(label::Label(0, j)); - res.addFinalState(label::Label(0, j)); - res.addTransition(label::Label(0), label::Label(0, j)); + res.addState(DefaultStateType(0, j)); + res.addFinalState(DefaultStateType(0, j)); + res.addTransition(DefaultStateType(0), DefaultStateType(0, j)); int i = 1; - for(const alphabet::Symbol& symbol : text.getContent()) { - res.addState(label::Label(i, j)); - res.addFinalState(label::Label(i, j)); + for(const DefaultSymbolType& symbol : text.getContent()) { + res.addState(DefaultStateType(i, j)); + res.addFinalState(DefaultStateType(i, j)); - res.addTransition(label::Label(i-1, j), symbol, label::Label(i, j)); - res.addTransition(label::Label(i-1, j), label::Label(i, j)); + res.addTransition(DefaultStateType(i-1, j), symbol, DefaultStateType(i, j)); + res.addTransition(DefaultStateType(i-1, j), DefaultStateType(i, j)); i++; } j++; diff --git a/alib2algo/src/stringology/exact/ExactNondeterministicSubsequenceAutomaton.cpp b/alib2algo/src/stringology/exact/ExactNondeterministicSubsequenceAutomaton.cpp index 8e12a8bfd1..255b022a57 100644 --- a/alib2algo/src/stringology/exact/ExactNondeterministicSubsequenceAutomaton.cpp +++ b/alib2algo/src/stringology/exact/ExactNondeterministicSubsequenceAutomaton.cpp @@ -20,17 +20,17 @@ automaton::Automaton ExactNondeterministicSubsequenceAutomaton::construct(const } automaton::EpsilonNFA < > ExactNondeterministicSubsequenceAutomaton::construct(const string::LinearString < >& text) { - automaton::EpsilonNFA < > res(label::Label(0)); - res.addFinalState(label::Label(0)); + automaton::EpsilonNFA < > res(DefaultStateType(0)); + res.addFinalState(DefaultStateType(0)); res.setInputAlphabet(text.getAlphabet()); int i = 1; - for(const alphabet::Symbol& symbol : text.getContent()) { - res.addState(label::Label(i)); - res.addFinalState(label::Label(i)); + for(const DefaultSymbolType& symbol : text.getContent()) { + res.addState(DefaultStateType(i)); + res.addFinalState(DefaultStateType(i)); - res.addTransition(label::Label(i-1), symbol, label::Label(i)); - res.addTransition(label::Label(i-1), label::Label(i)); + res.addTransition(DefaultStateType(i-1), symbol, DefaultStateType(i)); + res.addTransition(DefaultStateType(i-1), DefaultStateType(i)); i++; } return res; diff --git a/alib2algo/src/stringology/exact/ExactSubsequenceAutomaton.cpp b/alib2algo/src/stringology/exact/ExactSubsequenceAutomaton.cpp index 5438524cb5..bb92c67a80 100644 --- a/alib2algo/src/stringology/exact/ExactSubsequenceAutomaton.cpp +++ b/alib2algo/src/stringology/exact/ExactSubsequenceAutomaton.cpp @@ -20,22 +20,22 @@ automaton::Automaton ExactSubsequenceAutomaton::construct(const string::String& } automaton::DFA<> ExactSubsequenceAutomaton::construct(const string::LinearString < >& text) { - std::map<alphabet::Symbol, int> f; - for(const alphabet::Symbol& symbol : text.getAlphabet()) { + std::map<DefaultSymbolType, int> f; + for(const DefaultSymbolType& symbol : text.getAlphabet()) { f[symbol] = 0; } - automaton::DFA<> res(label::Label(0)); - res.addFinalState(label::Label(0)); + automaton::DFA<> res(DefaultStateType(0)); + res.addFinalState(DefaultStateType(0)); res.setInputAlphabet(text.getAlphabet()); int i = 1; - for(const alphabet::Symbol& symbol : text.getContent()) { - res.addState(label::Label(i)); - res.addFinalState(label::Label(i)); + for(const DefaultSymbolType& symbol : text.getContent()) { + res.addState(DefaultStateType(i)); + res.addFinalState(DefaultStateType(i)); for(int j = f[symbol]; j < i; j++) { - res.addTransition(label::Label(j), symbol, label::Label(i)); + res.addTransition(DefaultStateType(j), symbol, DefaultStateType(i)); } f[symbol] = i; i++; diff --git a/alib2algo/test-src/stringology/exact/stringMatchTest.cpp b/alib2algo/test-src/stringology/exact/stringMatchTest.cpp index 92be072287..06fd7d387c 100644 --- a/alib2algo/test-src/stringology/exact/stringMatchTest.cpp +++ b/alib2algo/test-src/stringology/exact/stringMatchTest.cpp @@ -16,8 +16,8 @@ void stringMatchTest::tearDown() { } void stringMatchTest::testStringMatch() { - string::LinearString < > linear1({alphabet::Symbol(0), alphabet::Symbol(1), alphabet::Symbol(2), alphabet::Symbol(3)}); - string::LinearString < > linear2({alphabet::Symbol(1), alphabet::Symbol(2), alphabet::Symbol(3)}); + string::LinearString < > linear1({DefaultSymbolType(0), DefaultSymbolType(1), DefaultSymbolType(2), DefaultSymbolType(3)}); + string::LinearString < > linear2({DefaultSymbolType(1), DefaultSymbolType(2), DefaultSymbolType(3)}); CPPUNIT_ASSERT ( stringology::exact::ExactFactorMatch::match ( linear1, linear2 ).count ( 1 ) ); } -- GitLab