From 3d941dbae2520a4b0f0aad590f3d55afb76d1e0a Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Sat, 15 Apr 2017 21:12:33 +0200
Subject: [PATCH] normalise Automaton types after normalisation algo

---
 alib2algo/src/automaton/simplify/Normalize.cpp                | 4 +++-
 .../automaton/transform/AutomataConcatenationTest.cpp         | 2 ++
 alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp  | 2 ++
 .../test-src/automaton/transform/AutomatonIterationTest.cpp   | 2 ++
 4 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/alib2algo/src/automaton/simplify/Normalize.cpp b/alib2algo/src/automaton/simplify/Normalize.cpp
index 8224a3daf0..3701f1a3ae 100644
--- a/alib2algo/src/automaton/simplify/Normalize.cpp
+++ b/alib2algo/src/automaton/simplify/Normalize.cpp
@@ -12,7 +12,9 @@ namespace automaton {
 namespace simplify {
 
 automaton::Automaton Normalize::normalize(const automaton::Automaton& automaton) {
-	return dispatch(automaton.getData());
+	automaton::Automaton res = dispatch(automaton.getData());
+	res.normalize ( );
+	return res;
 }
 
 auto NormalizeDFA = Normalize::RegistratorWrapper<automaton::DFA < DefaultSymbolType, unsigned >, automaton::DFA < > >(Normalize::normalize);
diff --git a/alib2algo/test-src/automaton/transform/AutomataConcatenationTest.cpp b/alib2algo/test-src/automaton/transform/AutomataConcatenationTest.cpp
index a49ae21255..303b9ed685 100644
--- a/alib2algo/test-src/automaton/transform/AutomataConcatenationTest.cpp
+++ b/alib2algo/test-src/automaton/transform/AutomataConcatenationTest.cpp
@@ -81,6 +81,8 @@ void AutomataConcatenationTest::testAutomataConcatenation() {
 	automaton::Automaton umdfa21(automaton::simplify::Normalize::normalize(automaton::simplify::Trim::trim(automaton::simplify::MinimizeBrzozowski::minimize(automaton::simplify::EpsilonRemoverIncoming::remove(u21)))));
 	automaton::Automaton umdfa22(automaton::simplify::Normalize::normalize(automaton::simplify::Trim::trim(automaton::simplify::MinimizeBrzozowski::minimize(automaton::simplify::EpsilonRemoverIncoming::remove(u22)))));
 
+	umdfa.normalize ( );
+
 	CPPUNIT_ASSERT(umdfa11 == umdfa);
 	CPPUNIT_ASSERT(umdfa12 == umdfa);
 	CPPUNIT_ASSERT(umdfa21 == umdfa);
diff --git a/alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp b/alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp
index 7eb0e5af85..fde2c405be 100644
--- a/alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp
+++ b/alib2algo/test-src/automaton/transform/AutomataUnionTest.cpp
@@ -77,6 +77,8 @@ void AutomataUnionTest::testAutomataUnion() {
 	automaton::Automaton umdfa1(automaton::simplify::Normalize::normalize(automaton::simplify::Trim::trim(automaton::simplify::MinimizeBrzozowski::minimize(automaton::simplify::EpsilonRemoverIncoming::remove(u1)))));
 	automaton::Automaton umdfa2(automaton::simplify::Normalize::normalize(automaton::simplify::Trim::trim(automaton::simplify::MinimizeBrzozowski::minimize(automaton::simplify::EpsilonRemoverIncoming::remove(u2)))));
 
+	umdfa.normalize ( );
+
 	CPPUNIT_ASSERT(umdfa1 == umdfa);
 	CPPUNIT_ASSERT(umdfa2 == umdfa);
 
diff --git a/alib2algo/test-src/automaton/transform/AutomatonIterationTest.cpp b/alib2algo/test-src/automaton/transform/AutomatonIterationTest.cpp
index 27e2dfdaf4..bb795ce2d6 100644
--- a/alib2algo/test-src/automaton/transform/AutomatonIterationTest.cpp
+++ b/alib2algo/test-src/automaton/transform/AutomatonIterationTest.cpp
@@ -59,6 +59,8 @@ void AutomatonIterationTest::testAutomatonIteration() {
 	automaton::Automaton mdfa2 (automaton::simplify::Normalize::normalize(automaton::simplify::Trim::trim(automaton::simplify::MinimizeBrzozowski::minimize(automaton::simplify::EpsilonRemoverIncoming::remove(i2)))));
 	automaton::Automaton mdfa3 (automaton::simplify::Normalize::normalize(automaton::simplify::Trim::trim(automaton::simplify::MinimizeBrzozowski::minimize(automaton::simplify::EpsilonRemoverIncoming::remove(res)))));
 
+	mdfa3.normalize ( );
+
 	CPPUNIT_ASSERT(mdfa1 == mdfa2);
 	CPPUNIT_ASSERT(mdfa1 == mdfa3);
 }
-- 
GitLab