From 244a5433d542dd77b860047196e41c1da6f0ca86 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Tue, 27 Oct 2015 21:12:53 +0100 Subject: [PATCH] allow LabelSetLabel & SymbolSetSymbol in set stats --- astat2/src/SetStat.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ astat2/src/SetStat.h | 6 +++++- astat2/src/astat.cpp | 20 ++++++++++++++++++++ 3 files changed, 65 insertions(+), 1 deletion(-) diff --git a/astat2/src/SetStat.cpp b/astat2/src/SetStat.cpp index d23fd0346d..8f72462ca7 100644 --- a/astat2/src/SetStat.cpp +++ b/astat2/src/SetStat.cpp @@ -31,3 +31,43 @@ void SetStat::stat ( const container::ObjectsSet & data, const SetSettings & set break; } } + +void SetStat::stat ( const label::LabelSetLabel & data, const SetSettings & settings ) { + switch ( settings.general ) { + case PrintingOptions::PRINT: + alib::XmlDataFactory::toStdout ( data ); + break; + + case PrintingOptions::SIZE: + std::cout << data.getData().size ( ) << std::endl; + break; + + case PrintingOptions::BOTH: + std::cout << data.getData().size ( ) << std::endl; + alib::XmlDataFactory::toStdout ( data ); + break; + + case PrintingOptions::NOOP: + break; + } +} + +void SetStat::stat ( const alphabet::SymbolSetSymbol & data, const SetSettings & settings ) { + switch ( settings.general ) { + case PrintingOptions::PRINT: + alib::XmlDataFactory::toStdout ( data ); + break; + + case PrintingOptions::SIZE: + std::cout << data.getData().size ( ) << std::endl; + break; + + case PrintingOptions::BOTH: + std::cout << data.getData().size ( ) << std::endl; + alib::XmlDataFactory::toStdout ( data ); + break; + + case PrintingOptions::NOOP: + break; + } +} diff --git a/astat2/src/SetStat.h b/astat2/src/SetStat.h index a00ac38f51..a3c2af8e6e 100644 --- a/astat2/src/SetStat.h +++ b/astat2/src/SetStat.h @@ -13,11 +13,15 @@ #include <set> #include "container/ObjectsSet.h" +#include "label/LabelSetLabel.h" +#include "alphabet/SymbolSetSymbol.h" #include "SetSettings.h" class SetStat { public: - static void stat(const container::ObjectsSet& automaton, const SetSettings& settings); + static void stat(const container::ObjectsSet& set, const SetSettings& settings); + static void stat(const label::LabelSetLabel& set, const SetSettings& settings); + static void stat(const alphabet::SymbolSetSymbol& set, const SetSettings& settings); }; diff --git a/astat2/src/astat.cpp b/astat2/src/astat.cpp index a626482d08..2e7645e7b5 100644 --- a/astat2/src/astat.cpp +++ b/astat2/src/astat.cpp @@ -252,6 +252,26 @@ int main ( int argc, char * argv[] ) { std::chrono::measurements::end ( ); std::chrono::measurements::start ( "Stats print", std::chrono::measurements::Type::MAIN ); + SetStat::stat ( data, settings ); + } else if ( alib::XmlDataFactory::first < label::LabelSetLabel > ( tokens ) && set.isSet ( ) ) { + SetSettings settings = { PrintingOptions::NOOP }; + settings.general = printingOption; + + label::LabelSetLabel data = alib::XmlDataFactory::fromTokens < label::LabelSetLabel > ( tokens ); + + std::chrono::measurements::end ( ); + std::chrono::measurements::start ( "Stats print", std::chrono::measurements::Type::MAIN ); + + SetStat::stat ( data, settings ); + } else if ( alib::XmlDataFactory::first < alphabet::SymbolSetSymbol > ( tokens ) && set.isSet ( ) ) { + SetSettings settings = { PrintingOptions::NOOP }; + settings.general = printingOption; + + alphabet::SymbolSetSymbol data = alib::XmlDataFactory::fromTokens < alphabet::SymbolSetSymbol > ( tokens ); + + std::chrono::measurements::end ( ); + std::chrono::measurements::start ( "Stats print", std::chrono::measurements::Type::MAIN ); + SetStat::stat ( data, settings ); } else { throw exception::AlibException ( "Input not recognized." ); -- GitLab