From 20eaab0d0b1ea0e8bdff4c721be49d52a311e89e Mon Sep 17 00:00:00 2001 From: Tomas Capek <tomas@capek.io> Date: Thu, 3 May 2018 16:06:05 +0200 Subject: [PATCH] Change return value in simulations to ext::set<unsigned int>. --- .../src/stringology/simulations/ExactBitParalelism.h | 8 ++++---- .../simulations/GeneralizedLevenshteinBitParalelism.h | 8 ++++---- .../src/stringology/simulations/HammingBitParalelism.h | 8 ++++---- .../stringology/simulations/LevenshteinBitParalelism.h | 8 ++++---- .../stringology/simulations/ExactBitParalelismTest.cpp | 2 +- .../GeneralizedLevenshteinBitParalelismTest.cpp | 2 +- .../stringology/simulations/HammingBitParalelismTest.cpp | 2 +- .../simulations/HammingDynamicProgrammingTest.cpp | 2 +- .../simulations/LevenshteinBitParalelismTest.cpp | 2 +- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/alib2algo/src/stringology/simulations/ExactBitParalelism.h b/alib2algo/src/stringology/simulations/ExactBitParalelism.h index f57c4def54..e68064799f 100644 --- a/alib2algo/src/stringology/simulations/ExactBitParalelism.h +++ b/alib2algo/src/stringology/simulations/ExactBitParalelism.h @@ -20,12 +20,12 @@ namespace simulations { class ExactBitParalelism { public: template <class SymbolType> - static ext::vector<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern); + static ext::set<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern); }; template <class SymbolType> -ext::vector<unsigned int> ExactBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern) { +ext::set<unsigned int> ExactBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern) { // preparation stage ext::set<SymbolType> common_alphabet = text.getAlphabet(); @@ -34,7 +34,7 @@ ext::vector<unsigned int> ExactBitParalelism::search(const string::LinearString< ext::map<SymbolType, ext::vector<bool> > D_vectors = BitParalelism::constructDVectors(common_alphabet, pattern); // computation part - ext::vector<unsigned int> result; + ext::set<unsigned int> result; auto B_vector = ext::vector<bool>(pattern.getContent().size(), 1); @@ -42,7 +42,7 @@ ext::vector<unsigned int> ExactBitParalelism::search(const string::LinearString< B_vector = (B_vector << 1) | D_vectors[text.getContent()[i]]; if (B_vector[pattern.getContent().size() - 1] == false) { - result.push_back(i - pattern.getContent().size() + 1); + result.insert(i - pattern.getContent().size() + 1); } } diff --git a/alib2algo/src/stringology/simulations/GeneralizedLevenshteinBitParalelism.h b/alib2algo/src/stringology/simulations/GeneralizedLevenshteinBitParalelism.h index 1de3435012..cefdc68111 100644 --- a/alib2algo/src/stringology/simulations/GeneralizedLevenshteinBitParalelism.h +++ b/alib2algo/src/stringology/simulations/GeneralizedLevenshteinBitParalelism.h @@ -20,11 +20,11 @@ namespace simulations { class GeneralizedLevenshteinBitParalelism { public: template <class SymbolType> - static ext::vector<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors); + static ext::set<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors); }; template <class SymbolType> -ext::vector<unsigned int> GeneralizedLevenshteinBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors) { +ext::set<unsigned int> GeneralizedLevenshteinBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors) { // preparation stage ext::set<SymbolType> common_alphabet = text.getAlphabet(); common_alphabet.insert(pattern.getAlphabet().begin(), pattern.getAlphabet().end()); @@ -35,7 +35,7 @@ ext::vector<unsigned int> GeneralizedLevenshteinBitParalelism::search(const stri V_vector[pattern.getContent().size() - 1] = 1; // computation part - ext::vector<unsigned int> result; + ext::set<unsigned int> result; ext::vector<ext::vector<bool> > B_vectors; for(unsigned int i=0; i<=errors; i++) { @@ -72,7 +72,7 @@ ext::vector<unsigned int> GeneralizedLevenshteinBitParalelism::search(const stri for (const auto & data : B_vectors) { if(data[pattern.getContent().size()-1] == false) { - result.push_back(i); + result.insert(i); break; } } diff --git a/alib2algo/src/stringology/simulations/HammingBitParalelism.h b/alib2algo/src/stringology/simulations/HammingBitParalelism.h index b6716bc878..4cc35489d1 100644 --- a/alib2algo/src/stringology/simulations/HammingBitParalelism.h +++ b/alib2algo/src/stringology/simulations/HammingBitParalelism.h @@ -20,12 +20,12 @@ namespace simulations { class HammingBitParalelism { public: template <class SymbolType> - static ext::vector<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors); + static ext::set<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors); }; template <class SymbolType> -ext::vector<unsigned int> HammingBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors) { +ext::set<unsigned int> HammingBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors) { // preparation stage ext::set<SymbolType> common_alphabet = text.getAlphabet(); common_alphabet.insert(pattern.getAlphabet().begin(), pattern.getAlphabet().end()); @@ -33,7 +33,7 @@ ext::vector<unsigned int> HammingBitParalelism::search(const string::LinearStrin ext::map<SymbolType, ext::vector<bool> > D_vectors = BitParalelism::constructDVectors(common_alphabet, pattern); // computation part - ext::vector<unsigned int> result; + ext::set<unsigned int> result; ext::vector<ext::vector<bool> > B_vectors; for(unsigned int i=0; i<=errors; i++) { @@ -51,7 +51,7 @@ ext::vector<unsigned int> HammingBitParalelism::search(const string::LinearStrin for(const auto & B_vector : B_vectors) { if (B_vector[pattern.getContent().size()-1] == false) { - result.push_back(i - pattern.getContent().size() + 1); + result.insert(i - pattern.getContent().size() + 1); break; } } diff --git a/alib2algo/src/stringology/simulations/LevenshteinBitParalelism.h b/alib2algo/src/stringology/simulations/LevenshteinBitParalelism.h index e42990ee99..e4bb906af0 100644 --- a/alib2algo/src/stringology/simulations/LevenshteinBitParalelism.h +++ b/alib2algo/src/stringology/simulations/LevenshteinBitParalelism.h @@ -20,12 +20,12 @@ namespace simulations { class LevenshteinBitParalelism { public: template <class SymbolType> - static ext::vector<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors); + static ext::set<unsigned int> search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors); }; template <class SymbolType> -ext::vector<unsigned int> LevenshteinBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors) { +ext::set<unsigned int> LevenshteinBitParalelism::search(const string::LinearString<SymbolType> & text, const string::LinearString<SymbolType> & pattern, unsigned int errors) { // preparation stage ext::set<SymbolType> common_alphabet = text.getAlphabet(); common_alphabet.insert(pattern.getAlphabet().begin(), pattern.getAlphabet().end()); @@ -36,7 +36,7 @@ ext::vector<unsigned int> LevenshteinBitParalelism::search(const string::LinearS V_vector[pattern.getContent().size() - 1] = 1; // computation part - ext::vector<unsigned int> result; + ext::set<unsigned int> result; ext::vector<ext::vector<bool> > B_vectors; for(unsigned int i=0; i<=errors; i++) { @@ -62,7 +62,7 @@ ext::vector<unsigned int> LevenshteinBitParalelism::search(const string::LinearS for (const auto & data : B_vectors) { if(data[pattern.getContent().size()-1] == false) { - result.push_back(i); + result.insert(i); break; } } diff --git a/alib2algo/test-src/stringology/simulations/ExactBitParalelismTest.cpp b/alib2algo/test-src/stringology/simulations/ExactBitParalelismTest.cpp index d0268f8de5..4955dc08de 100644 --- a/alib2algo/test-src/stringology/simulations/ExactBitParalelismTest.cpp +++ b/alib2algo/test-src/stringology/simulations/ExactBitParalelismTest.cpp @@ -10,7 +10,7 @@ void ExactBitParalelismTest::testSimple() { auto text = string::LinearString<>("adcabcaabadbbca"); auto pattern = string::LinearString<>("adbbca"); - ext::vector<unsigned int> expected_result = {9}; + ext::set<unsigned int> expected_result = {9}; CPPUNIT_ASSERT(expected_result == stringology::simulations::ExactBitParalelism::search(text, pattern)); } diff --git a/alib2algo/test-src/stringology/simulations/GeneralizedLevenshteinBitParalelismTest.cpp b/alib2algo/test-src/stringology/simulations/GeneralizedLevenshteinBitParalelismTest.cpp index dde416d9eb..025426902b 100644 --- a/alib2algo/test-src/stringology/simulations/GeneralizedLevenshteinBitParalelismTest.cpp +++ b/alib2algo/test-src/stringology/simulations/GeneralizedLevenshteinBitParalelismTest.cpp @@ -10,7 +10,7 @@ void GeneralizedLevenshteinBitParalelismTest::testSimple() { auto text = string::LinearString<>("adbcbaabadbbca"); auto pattern = string::LinearString<>("adbbca"); - ext::vector<unsigned int> expected_result = {2, 3, 4, 5, 6, 8, 10, 11, 12, 13}; + ext::set<unsigned int> expected_result = {2, 3, 4, 5, 6, 8, 10, 11, 12, 13}; auto result = stringology::simulations::GeneralizedLevenshteinBitParalelism::search(text, pattern, 3); CPPUNIT_ASSERT(expected_result == result); } diff --git a/alib2algo/test-src/stringology/simulations/HammingBitParalelismTest.cpp b/alib2algo/test-src/stringology/simulations/HammingBitParalelismTest.cpp index 139b9fdebf..cc4e02fe03 100644 --- a/alib2algo/test-src/stringology/simulations/HammingBitParalelismTest.cpp +++ b/alib2algo/test-src/stringology/simulations/HammingBitParalelismTest.cpp @@ -10,7 +10,7 @@ void HammingBitParalelismTest::testSimple() { auto text = string::LinearString<>("adcabcaabadbbca"); auto pattern = string::LinearString<>("adbbca"); - ext::vector<unsigned int> expected_result = {1,9}; + ext::set<unsigned int> expected_result = {1,9}; auto result = stringology::simulations::HammingBitParalelism::search(text, pattern, 3); CPPUNIT_ASSERT(expected_result == result); } diff --git a/alib2algo/test-src/stringology/simulations/HammingDynamicProgrammingTest.cpp b/alib2algo/test-src/stringology/simulations/HammingDynamicProgrammingTest.cpp index 2039f8ec2f..8f3a7d9783 100644 --- a/alib2algo/test-src/stringology/simulations/HammingDynamicProgrammingTest.cpp +++ b/alib2algo/test-src/stringology/simulations/HammingDynamicProgrammingTest.cpp @@ -36,7 +36,7 @@ void HammingDynamicProgrammingTest::testSearching() { auto text = string::LinearString<>("patternpettannbalastpettern"); auto pattern = string::LinearString<>("pattern"); - auto expected_result = ext::vector<unsigned int>({0, 7, 20}); + auto expected_result = ext::set<unsigned int>({0, 7, 20}); auto result = stringology::simulations::HammingDynamicProgramming::search(text, pattern, 3); CPPUNIT_ASSERT(expected_result == result); diff --git a/alib2algo/test-src/stringology/simulations/LevenshteinBitParalelismTest.cpp b/alib2algo/test-src/stringology/simulations/LevenshteinBitParalelismTest.cpp index 1284848c8f..829693252f 100644 --- a/alib2algo/test-src/stringology/simulations/LevenshteinBitParalelismTest.cpp +++ b/alib2algo/test-src/stringology/simulations/LevenshteinBitParalelismTest.cpp @@ -10,7 +10,7 @@ void LevenshteinBitParalelismTest::testSimple() { auto text = string::LinearString<>("adcabcaabadbbca"); auto pattern = string::LinearString<>("adbbca"); - ext::vector<unsigned int> expected_result = {2, 3, 5, 6, 7, 9, 11, 12, 13, 14}; + ext::set<unsigned int> expected_result = {2, 3, 5, 6, 7, 9, 11, 12, 13, 14}; auto result = stringology::simulations::LevenshteinBitParalelism::search(text, pattern, 3); CPPUNIT_ASSERT(expected_result == result); } -- GitLab