From 5a81745819a5bb44595a3083c7b3e6e9a2c9d4ee Mon Sep 17 00:00:00 2001
From: Tomas Pecka <peckato1@fit.cvut.cz>
Date: Mon, 18 Feb 2019 14:42:05 +0100
Subject: [PATCH] aux: compare functions for trees, tries, sets and primitives

---
 alib2aux/src/compare/PrimitiveCompare.cpp | 17 +++++++++++++++
 alib2aux/src/compare/PrimitiveCompare.h   | 25 ++++++++++++++++++++++
 alib2aux/src/compare/SetCompare.cpp       | 18 ++++++++++++++++
 alib2aux/src/compare/SetCompare.h         | 25 ++++++++++++++++++++++
 alib2aux/src/compare/TreeCompare.cpp      | 17 +++++++++++++++
 alib2aux/src/compare/TreeCompare.h        | 25 ++++++++++++++++++++++
 alib2aux/src/compare/TrieCompare.cpp      | 15 +++++++++++++
 alib2aux/src/compare/TrieCompare.h        | 26 +++++++++++++++++++++++
 8 files changed, 168 insertions(+)
 create mode 100644 alib2aux/src/compare/PrimitiveCompare.cpp
 create mode 100644 alib2aux/src/compare/PrimitiveCompare.h
 create mode 100644 alib2aux/src/compare/SetCompare.cpp
 create mode 100644 alib2aux/src/compare/SetCompare.h
 create mode 100644 alib2aux/src/compare/TreeCompare.cpp
 create mode 100644 alib2aux/src/compare/TreeCompare.h
 create mode 100644 alib2aux/src/compare/TrieCompare.cpp
 create mode 100644 alib2aux/src/compare/TrieCompare.h

diff --git a/alib2aux/src/compare/PrimitiveCompare.cpp b/alib2aux/src/compare/PrimitiveCompare.cpp
new file mode 100644
index 0000000000..f5048063d5
--- /dev/null
+++ b/alib2aux/src/compare/PrimitiveCompare.cpp
@@ -0,0 +1,17 @@
+/*
+ * PrimitiveCompare.cpp
+ *
+ *  Created on: Feb 4, 2019
+ *      Author: Tomas Pecka
+ */
+
+#include "PrimitiveCompare.h"
+#include <registration/AlgoRegistration.hpp>
+
+#include <string/LinearString.h>
+
+namespace compare {
+
+auto PrimitiveCompareUnsignedInt  = registration::AbstractRegister < PrimitiveCompare, bool, const unsigned int &, const unsigned int & > ( PrimitiveCompare::compare );
+
+} /* namespace compare */
diff --git a/alib2aux/src/compare/PrimitiveCompare.h b/alib2aux/src/compare/PrimitiveCompare.h
new file mode 100644
index 0000000000..eeeb92b818
--- /dev/null
+++ b/alib2aux/src/compare/PrimitiveCompare.h
@@ -0,0 +1,25 @@
+/*
+ * PrimitiveCompare.h
+ *
+ *  Created on: Feb 4, 2019
+ *      Author: Tomas Pecka
+ */
+
+#ifndef PRIMITIVE_COMPARE_H_
+#define PRIMITIVE_COMPARE_H_
+
+#include <alib/set>
+
+namespace compare {
+
+class PrimitiveCompare {
+public:
+	template < class T >
+	static bool compare ( const T & a, const T & b ) {
+		return a == b;
+	}
+};
+
+} /* namespace compare */
+
+#endif /* PRIMITIVE_COMPARE_H_ */
diff --git a/alib2aux/src/compare/SetCompare.cpp b/alib2aux/src/compare/SetCompare.cpp
new file mode 100644
index 0000000000..05a58405a2
--- /dev/null
+++ b/alib2aux/src/compare/SetCompare.cpp
@@ -0,0 +1,18 @@
+/*
+ * SetCompare.cpp
+ *
+ *  Created on: Jna 14, 2019
+ *      Author: Tomas Pecka
+ */
+
+#include "SetCompare.h"
+#include <registration/AlgoRegistration.hpp>
+
+#include <string/LinearString.h>
+
+namespace compare {
+
+auto SetCompareLinearString = registration::AbstractRegister < SetCompare, bool, const ext::set < string::LinearString < > > &, const ext::set < string::LinearString < > > & > ( SetCompare::compare );
+auto SetCompareUnsignedInt  = registration::AbstractRegister < SetCompare, bool, const ext::set < unsigned > &, const ext::set < unsigned > & > ( SetCompare::compare );
+
+} /* namespace compare */
diff --git a/alib2aux/src/compare/SetCompare.h b/alib2aux/src/compare/SetCompare.h
new file mode 100644
index 0000000000..176285965d
--- /dev/null
+++ b/alib2aux/src/compare/SetCompare.h
@@ -0,0 +1,25 @@
+/*
+ * SetCompare.h
+ *
+ *  Created on: Jan 14, 2019
+ *      Author: Tomas Pecka
+ */
+
+#ifndef SET_COMPARE_H_
+#define SET_COMPARE_H_
+
+#include <alib/set>
+
+namespace compare {
+
+class SetCompare {
+public:
+	template < class T >
+	static bool compare ( const ext::set < T > & a, const ext::set < T > & b ) {
+		return a == b;
+	}
+};
+
+} /* namespace compare */
+
+#endif /* SET_COMPARE_H_ */
diff --git a/alib2aux/src/compare/TreeCompare.cpp b/alib2aux/src/compare/TreeCompare.cpp
new file mode 100644
index 0000000000..0cfc5e5549
--- /dev/null
+++ b/alib2aux/src/compare/TreeCompare.cpp
@@ -0,0 +1,17 @@
+/*
+ * TreeCompare.cpp
+ *
+ *  Created on: Feb 9, 2019
+ *      Author: Tomas Pecka
+ */
+
+#include "TreeCompare.h"
+#include <registration/AlgoRegistration.hpp>
+#include <common/DefaultSymbolType.h>
+#include <common/DefaultRankType.h>
+
+namespace compare {
+
+auto TreeCompareRankedTree = registration::AbstractRegister < TreeCompare, bool, const tree::RankedTree < DefaultSymbolType, DefaultRankType> &, const tree::RankedTree < DefaultSymbolType, DefaultRankType > & > ( TreeCompare::compare );
+
+} /* namespace compare */
diff --git a/alib2aux/src/compare/TreeCompare.h b/alib2aux/src/compare/TreeCompare.h
new file mode 100644
index 0000000000..bc8e0bf671
--- /dev/null
+++ b/alib2aux/src/compare/TreeCompare.h
@@ -0,0 +1,25 @@
+/*
+ * TreeCompare.h
+ *
+ *  Created on: Feb 9, 2019
+ *      Author: Tomas Pecka
+ */
+
+#ifndef TREE_COMPARE_H_
+#define TREE_COMPARE_H_
+
+#include <tree/ranked/RankedTree.h>
+
+namespace compare {
+
+class TreeCompare {
+public:
+	template < class SymbolType, class RankType >
+	static bool compare ( const tree::RankedTree < SymbolType, RankType > & a, const tree::RankedTree < SymbolType, RankType > & b ) {
+		return a == b;
+	}
+};
+
+} /* namespace compare */
+
+#endif /* TREE_COMPARE_H_ */
diff --git a/alib2aux/src/compare/TrieCompare.cpp b/alib2aux/src/compare/TrieCompare.cpp
new file mode 100644
index 0000000000..5d3ede9f11
--- /dev/null
+++ b/alib2aux/src/compare/TrieCompare.cpp
@@ -0,0 +1,15 @@
+/*
+ * TrieCompare.cpp
+ *
+ *  Created on: Jan 15, 2019
+ *      Author: Tomas Pecka
+ */
+
+#include "TrieCompare.h"
+#include <registration/AlgoRegistration.hpp>
+
+namespace compare {
+
+auto TrieCompareLinearString = registration::AbstractRegister < TrieCompare, bool, const ext::trie < DefaultSymbolType, bool > &, const ext::trie < DefaultSymbolType, bool > & > ( TrieCompare::compare );
+
+} /* namespace compare */
diff --git a/alib2aux/src/compare/TrieCompare.h b/alib2aux/src/compare/TrieCompare.h
new file mode 100644
index 0000000000..15514256e3
--- /dev/null
+++ b/alib2aux/src/compare/TrieCompare.h
@@ -0,0 +1,26 @@
+/*
+ * TrieCompare.h
+ *
+ *  Created on: Jan 15, 2019
+ *      Author: Tomas Pecka
+ */
+
+#ifndef TRIE_COMPARE_H_
+#define TRIE_COMPARE_H_
+
+#include <alib/trie>
+#include <common/DefaultSymbolType.h>
+
+namespace compare {
+
+class TrieCompare {
+public:
+	template < class R, class T >
+	static bool compare ( const ext::trie < R, T > & a, const ext::trie < R, T > & b ) {
+		return a == b;
+	}
+};
+
+} /* namespace compare */
+
+#endif /* TRIE_COMPARE_H_ */
-- 
GitLab