From 38f78df9557b8085d9d72e4012d0cc103b58609d Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Thu, 21 Mar 2019 16:31:53 +0100
Subject: [PATCH] verbose backward string matching algorithms

---
 alib2algo/src/stringology/exact/BoyerMoore.h         | 7 +++++++
 alib2algo/src/stringology/exact/BoyerMooreHorspool.h | 5 +++++
 alib2algo/src/stringology/exact/QuickSearch.h        | 5 +++++
 3 files changed, 17 insertions(+)

diff --git a/alib2algo/src/stringology/exact/BoyerMoore.h b/alib2algo/src/stringology/exact/BoyerMoore.h
index 344dfce1b1..1fa39fbd56 100644
--- a/alib2algo/src/stringology/exact/BoyerMoore.h
+++ b/alib2algo/src/stringology/exact/BoyerMoore.h
@@ -17,6 +17,8 @@
 #include <string/properties/BadCharacterShiftTable.h>
 #include <string/properties/GoodSuffixShiftTable.h>
 
+#include <global/GlobalData.h>
+
 namespace stringology {
 
 namespace exact {
@@ -45,6 +47,11 @@ ext::set<unsigned> BoyerMoore::match(const string::LinearString < SymbolType >&
 	ext::vector<size_t> gss = string::properties::GoodSuffixShiftTable::gss(pattern);
 	measurements::end ( );
 
+	if(common::GlobalData::verbose) {
+		common::Streams::log << "bcs = " << bcs << std::endl;
+		common::Streams::log << "gss = " << gss << std::endl;
+	}
+
 	measurements::start ( "Algorithm", measurements::Type::ALGORITHM );
 	size_t haystack_offset = 0;
 	while(haystack_offset + pattern.getContent().size() <= string.getContent().size()) {
diff --git a/alib2algo/src/stringology/exact/BoyerMooreHorspool.h b/alib2algo/src/stringology/exact/BoyerMooreHorspool.h
index 972e66b918..18d6fbfbd5 100644
--- a/alib2algo/src/stringology/exact/BoyerMooreHorspool.h
+++ b/alib2algo/src/stringology/exact/BoyerMooreHorspool.h
@@ -16,6 +16,8 @@
 
 #include <string/properties/BadCharacterShiftTable.h>
 
+#include <global/GlobalData.h>
+
 namespace stringology {
 
 namespace exact {
@@ -43,6 +45,9 @@ ext::set<unsigned> BoyerMooreHorspool::match(const string::LinearString < Symbol
 	ext::map<SymbolType, size_t> bcs = string::properties::BadCharacterShiftTable::bcs(pattern); //NOTE: the subjects alphabet must be a subset or equal to the pattern
 	measurements::end ( );
 
+	if(common::GlobalData::verbose)
+		common::Streams::log << "bcs = " << bcs << std::endl;
+
 	measurements::start ( "Algorithm", measurements::Type::ALGORITHM );
 	size_t haystack_offset = 0;
 	while(haystack_offset + pattern.getContent().size() <= string.getContent().size()) {
diff --git a/alib2algo/src/stringology/exact/QuickSearch.h b/alib2algo/src/stringology/exact/QuickSearch.h
index 5661584958..58b984f266 100644
--- a/alib2algo/src/stringology/exact/QuickSearch.h
+++ b/alib2algo/src/stringology/exact/QuickSearch.h
@@ -16,6 +16,8 @@
 
 #include <string/properties/QuickSearchBadCharacterShiftTable.h>
 
+#include <global/GlobalData.h>
+
 namespace stringology {
 
 namespace exact {
@@ -42,6 +44,9 @@ ext::set<unsigned> QuickSearch::match(const string::LinearString < SymbolType >&
 	ext::map<SymbolType, size_t> bcs = string::properties::QuickSearchBadCharacterShiftTable::qsbcs(pattern); //NOTE: the subjects alphabet must be a subset or equal to the pattern
 	measurements::end ( );
 
+	if(common::GlobalData::verbose)
+		common::Streams::log << "bcs = " << bcs << std::endl;
+
 	measurements::start ( "Algorithm", measurements::Type::ALGORITHM );
 	size_t i = 0;
 	size_t j;
-- 
GitLab