From d2a1ce3a5d7ef34b221dadb2fb05d7fc78e74580 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Wed, 8 Nov 2017 11:41:22 +0100 Subject: [PATCH] print minimize solution from generator --- .../src/automaton/MinimizeGenerator.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/alib2algo_experimental/src/automaton/MinimizeGenerator.cpp b/alib2algo_experimental/src/automaton/MinimizeGenerator.cpp index ba482c6fe0..99ee9029fb 100644 --- a/alib2algo_experimental/src/automaton/MinimizeGenerator.cpp +++ b/alib2algo_experimental/src/automaton/MinimizeGenerator.cpp @@ -14,13 +14,25 @@ #include <exception/CommonException.h> +#include <global/GlobalData.h> + namespace automaton { namespace generate { automaton::DFA < char, unsigned > MinimizeGenerator::generateMinimizeDFA ( size_t statesMinimal, size_t statesDuplicates, size_t statesUnreachable, size_t statesUseless, size_t alphabetSize, bool randomizedAlphabet, double density, size_t expectedSteps ) { size_t limit = 10000; + + std::stringstream ss; + auto backup = common::Streams::log; + common::Streams::log = ext::reference_wrapper < std::ostream > ( ss ); + + auto verbose = common::GlobalData::verbose; + common::GlobalData::verbose = true; + while ( limit -- ) { + ss.str ( "" ); + automaton::DFA < char, unsigned > automaton = RandomAutomatonFactory2::generateDFA ( statesMinimal, statesDuplicates, statesUnreachable, statesUseless, alphabetSize, randomizedAlphabet, density ); size_t states = automaton.getStates ( ).size ( ); @@ -43,6 +55,12 @@ automaton::DFA < char, unsigned > MinimizeGenerator::generateMinimizeDFA ( size_ if ( statesMinimal != states ) continue; + common::GlobalData::verbose = verbose; + common::Streams::log = backup; + + if ( common::GlobalData::verbose ) + common::Streams::log << ss.str ( ); + return automaton; } -- GitLab