diff --git a/alib2algo_experimental/src/automaton/MinimizeGenerator.cpp b/alib2algo_experimental/src/automaton/MinimizeGenerator.cpp index ba482c6fe0c519b98ebc6b191331ac494fb95869..99ee9029fb387986adcb683bb458fec603977592 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; }