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