Skip to content
Snippets Groups Projects
Commit 20eaab0d authored by Tomas Capek's avatar Tomas Capek
Browse files

Change return value in simulations to ext::set<unsigned int>.

parent b510fb2a
No related branches found
No related tags found
No related merge requests found
Showing with 21 additions and 21 deletions
......@@ -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);
}
}
 
......
......@@ -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;
}
}
......
......@@ -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;
}
}
......
......@@ -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;
}
}
......
......@@ -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));
}
......
......@@ -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);
}
......
......@@ -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);
}
......
......@@ -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);
......
......@@ -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);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment