Skip to content
Snippets Groups Projects
Commit e620e5a7 authored by Martin Hanzik's avatar Martin Hanzik Committed by Jan Trávníček
Browse files

Move random automaton generation to Utils

parent d97f3aca
No related branches found
No related tags found
No related merge requests found
...@@ -8,13 +8,10 @@ ...@@ -8,13 +8,10 @@
   
#include <gvc.h> #include <gvc.h>
   
#include <abstraction/ImmediateValueAbstraction.hpp>
#include <common/AlgorithmHelper.h>
#include <exception/CommonException.h>
#include <Converter.hpp> #include <Converter.hpp>
#include <GraphvizIntegrator.hpp> #include <GraphvizIntegrator.hpp>
#include <utility> #include <utility>
#include <Utils.hpp>
   
// TODO don't move cursor on parse // TODO don't move cursor on parse
// TODO don't clear text box on invalid automaton // TODO don't clear text box on invalid automaton
...@@ -68,20 +65,7 @@ void InputDialog::setAutomaton(std::shared_ptr<abstraction::OperationAbstraction ...@@ -68,20 +65,7 @@ void InputDialog::setAutomaton(std::shared_ptr<abstraction::OperationAbstraction
} }
   
void InputDialog::on_generateRandomAutomatonButton_clicked() { void InputDialog::on_generateRandomAutomatonButton_clicked() {
ext::vector<std::shared_ptr<abstraction::OperationAbstraction>> params; this->setAutomaton(std::move(Utils::generateRandomAutomaton()));
params.push_back(std::make_shared<abstraction::ImmediateValueAbstraction<size_t>>(5));
params.push_back(std::make_shared<abstraction::ImmediateValueAbstraction<size_t>>(3));
params.push_back(std::make_shared<abstraction::ImmediateValueAbstraction<bool>>(true));
params.push_back(std::make_shared<abstraction::ImmediateValueAbstraction<double>>(10.0));
std::vector<bool> moves(params.size(), true);
auto automaton = abstraction::AlgorithmHelper::eval("automaton::generate::RandomAutomatonFactory",
{},
params,
moves,
abstraction::AlgorithmCategories::AlgorithmCategory::DEFAULT);
this->setAutomaton(std::move(automaton));
} }
   
void InputDialog::on_okCancelButtonBox_accepted() { void InputDialog::on_okCancelButtonBox_accepted() {
......
#include <Utils.hpp> #include <Utils.hpp>
#include <abstraction/ImmediateValueAbstraction.hpp>
#include <common/AlgorithmHelper.h>
   
namespace Utils namespace Utils
{ {
...@@ -9,4 +11,20 @@ namespace Utils ...@@ -9,4 +11,20 @@ namespace Utils
qreal maxy = std::max(a.y(), b.y()); qreal maxy = std::max(a.y(), b.y());
return {{minx, miny}, QPointF {maxx, maxy}}; return {{minx, miny}, QPointF {maxx, maxy}};
} }
std::shared_ptr<abstraction::OperationAbstraction> generateRandomAutomaton() {
ext::vector<std::shared_ptr<abstraction::OperationAbstraction>> params;
params.push_back(std::make_shared<abstraction::ImmediateValueAbstraction<size_t>>(5));
params.push_back(std::make_shared<abstraction::ImmediateValueAbstraction<size_t>>(3));
params.push_back(std::make_shared<abstraction::ImmediateValueAbstraction<bool>>(true));
params.push_back(std::make_shared<abstraction::ImmediateValueAbstraction<double>>(10.0));
std::vector<bool> moves(params.size(), true);
return abstraction::AlgorithmHelper::eval("automaton::generate::RandomAutomatonFactory",
{},
params,
moves,
abstraction::AlgorithmCategories::AlgorithmCategory::DEFAULT);
}
} }
\ No newline at end of file
#pragma once #pragma once
#include <memory>
   
#include <QtCore/QRectF> #include <QtCore/QRectF>
   
#include <abstraction/OperationAbstraction.hpp>
namespace Utils namespace Utils
{ {
QRectF pointsToRect(QPointF a, QPointF b); QRectF pointsToRect(QPointF a, QPointF b);
std::shared_ptr<abstraction::OperationAbstraction> generateRandomAutomaton();
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment