|
@@ -1,5 +1,6 @@
|
|
|
#include <gtest/gtest.h>
|
|
|
#include <json.hpp>
|
|
|
+#include <chrono>
|
|
|
#include <httplib.h>
|
|
|
#include "Registration.h"
|
|
|
#include "OptimizerEvolutionary.h"
|
|
@@ -8,8 +9,7 @@
|
|
|
#include <thread>
|
|
|
|
|
|
using namespace mdd;
|
|
|
-namespace TEST_ANSYS {
|
|
|
-
|
|
|
+namespace TEST_ANSYS {
|
|
|
auto regi = Registration();
|
|
|
TEST(ModuleHTTP, test_ansys_sql_server) {
|
|
|
auto sql = regi.generateModule("ModuleSQL");
|
|
@@ -43,7 +43,7 @@ namespace TEST_ANSYS {
|
|
|
http->getInput(http->getNumInputs() - 1)->setLimits() = limit;
|
|
|
http->getInput(http->getNumInputs() - 1)->setValue() = { 90,90,0,90,0,90 };
|
|
|
|
|
|
- http->getOutput(3)->setOptimizability(true);
|
|
|
+ http->getOutput(0)->setOptimizability(true);
|
|
|
|
|
|
sql->update();
|
|
|
//test SQL
|
|
@@ -54,7 +54,7 @@ namespace TEST_ANSYS {
|
|
|
}
|
|
|
|
|
|
http->update();
|
|
|
- EXPECT_FLOAT_EQ(http->getOutput(3)->getValue()[0], 0.31204228291286723);
|
|
|
+ EXPECT_FLOAT_EQ(http->getOutput(3)->getValue()[0], 31.204228291286723);
|
|
|
}
|
|
|
|
|
|
TEST(ModuleHTTP, test_configurations) {
|
|
@@ -88,7 +88,7 @@ namespace TEST_ANSYS {
|
|
|
limit.rule = "val[0] != val[5] || val[1] != val[4] || val[2] != val[3]";
|
|
|
http->getInput(http->getNumInputs() - 1)->setLimits() = limit;
|
|
|
|
|
|
- http->getOutput(3)->setOptimizability(true);
|
|
|
+ http->getOutput(0)->setOptimizability(true);
|
|
|
|
|
|
std::shared_ptr<ProcessorStandard> processor = std::make_shared<ProcessorStandard>();;
|
|
|
processor->addModule(sql);
|
|
@@ -106,20 +106,75 @@ namespace TEST_ANSYS {
|
|
|
|
|
|
//auto res = optimizer.update();
|
|
|
OptimizerEvolutionary::Individual ind;
|
|
|
- ind.dna = { { 0,90,90,90,90,90 } };
|
|
|
- std::cout << "{ 0,90,90,90,90,90 }: " << optimizer.evaluateFitness(ind) << std::endl;
|
|
|
- ind.dna = { { 90,90,90,90,90,0 } };
|
|
|
- std::cout << "{ 90,90,90,90,90,0 }: " << optimizer.evaluateFitness(ind) << std::endl;
|
|
|
- ind.dna = { { 90,0,0,0,0,0 } };
|
|
|
- std::cout << "{ 90,0,0,0,0,0 }: " << optimizer.evaluateFitness(ind) << std::endl;
|
|
|
- ind.dna = { { 0,0,0,0,0,90 } };
|
|
|
- std::cout << "{ 0,0,0,0,0,90 }: " << optimizer.evaluateFitness(ind) << std::endl;
|
|
|
+ auto start = std::chrono::steady_clock::now();
|
|
|
+ auto end = std::chrono::steady_clock::now();
|
|
|
+
|
|
|
+ /*
|
|
|
ind.dna = { { 0,0,0,0,0,0 } };
|
|
|
- std::cout << "{ 0,0,0,0,0,0 }: " << optimizer.evaluateFitness(ind) << std::endl;
|
|
|
+ start = std::chrono::steady_clock::now();
|
|
|
+ std::cout << "{ 0,0,0,0,0,0 }: " << optimizer.evaluateFitness(ind);
|
|
|
+ end = std::chrono::steady_clock::now();
|
|
|
+ std::cout << " | " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
|
|
|
+
|
|
|
ind.dna = { { 90,90,90,90,90,90 } };
|
|
|
- std::cout << "{ 90,90,90,90,90,90 }: " << optimizer.evaluateFitness(ind) << std::endl;
|
|
|
+ start = std::chrono::steady_clock::now();
|
|
|
+ std::cout << "{ 90,90,90,90,90,90 }: " << optimizer.evaluateFitness(ind);
|
|
|
+ end = std::chrono::steady_clock::now();
|
|
|
+ std::cout << " | " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
|
|
|
+ //*/
|
|
|
+ ind.dna = { { 90,0,0,0,0,0 } };
|
|
|
+ start = std::chrono::steady_clock::now();
|
|
|
+ std::cout << "{ 90,0,0,0,0,0 }: " << optimizer.evaluateFitness(ind);
|
|
|
+ end = std::chrono::steady_clock::now();
|
|
|
+ std::cout << " | " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
|
|
|
+
|
|
|
+ ind.dna = { { 0,0,0,0,0,90 } };
|
|
|
+ start = std::chrono::steady_clock::now();
|
|
|
+ std::cout << "{ 0,0,0,0,0,90 }: " << optimizer.evaluateFitness(ind);
|
|
|
+ end = std::chrono::steady_clock::now();
|
|
|
+ std::cout << " | " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
|
|
|
+
|
|
|
+ ind.dna = { { 0,90,90,90,90,90 } };
|
|
|
+ start = std::chrono::steady_clock::now();
|
|
|
+ std::cout << "{ 0,90,90,90,90,90 }: " << optimizer.evaluateFitness(ind);
|
|
|
+ end = std::chrono::steady_clock::now();
|
|
|
+ std::cout << " | " << std::chrono::duration_cast<std::chrono::milliseconds>(end-start).count() << "ms" << std::endl;
|
|
|
+
|
|
|
+ ind.dna = { { 90,90,90,90,90,0 } };
|
|
|
+ start = std::chrono::steady_clock::now();
|
|
|
+ std::cout << "{ 90,90,90,90,90,0 }: " << optimizer.evaluateFitness(ind);
|
|
|
+ end = std::chrono::steady_clock::now();
|
|
|
+ std::cout << " | " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
|
|
|
+
|
|
|
+ ind.dna = { { 90,0,0,0,90,0 } };
|
|
|
+ start = std::chrono::steady_clock::now();
|
|
|
+ std::cout << "{ 90,0,0,0,90,0 }: " << optimizer.evaluateFitness(ind);
|
|
|
+ end = std::chrono::steady_clock::now();
|
|
|
+ std::cout << " | " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
|
|
|
+
|
|
|
+ ind.dna = { { 90,0,0,0,90,0 } };
|
|
|
+ start = std::chrono::steady_clock::now();
|
|
|
+ std::cout << "{ 90,0,0,0,90,0 }: " << optimizer.evaluateFitness(ind);
|
|
|
+ end = std::chrono::steady_clock::now();
|
|
|
+ std::cout << " | " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
|
|
|
+
|
|
|
+ ind.dna = { { 90,0,0,0,90,0 } };
|
|
|
+ start = std::chrono::steady_clock::now();
|
|
|
+ std::cout << "{ 90,0,0,0,90,0 }: " << optimizer.evaluateFitness(ind);
|
|
|
+ end = std::chrono::steady_clock::now();
|
|
|
+ std::cout << " | " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
|
|
|
+
|
|
|
ind.dna = { { 0,0,90,90,90,90 } };
|
|
|
- std::cout << "{ 0,0,90,90,90,90 }: " << optimizer.evaluateFitness(ind) << std::endl;
|
|
|
+ start = std::chrono::steady_clock::now();
|
|
|
+ std::cout << "{ 0,0,90,90,90,90 }: " << optimizer.evaluateFitness(ind);
|
|
|
+ end = std::chrono::steady_clock::now();
|
|
|
+ std::cout << " | " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
|
|
|
+
|
|
|
+ ind.dna = { { 0,0,90,90,90,90 } };
|
|
|
+ start = std::chrono::steady_clock::now();
|
|
|
+ std::cout << "{ 0,0,90,90,90,90 }: " << optimizer.evaluateFitness(ind);
|
|
|
+ end = std::chrono::steady_clock::now();
|
|
|
+ std::cout << " | " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
|
|
|
EXPECT_TRUE(ind.fitness <= 100.0);
|
|
|
}
|
|
|
|
|
@@ -154,7 +209,7 @@ namespace TEST_ANSYS {
|
|
|
limit.rule = "val[0] != val[5] || val[1] != val[4] || val[2] != val[3]";
|
|
|
http->getInput(http->getNumInputs() - 1)->setLimits() = limit;
|
|
|
|
|
|
- http->getOutput(3)->setOptimizability(true);
|
|
|
+ http->getOutput(0)->setOptimizability(true);
|
|
|
|
|
|
std::shared_ptr<ProcessorStandard> processor = std::make_shared<ProcessorStandard>();;
|
|
|
processor->addModule(sql);
|
|
@@ -164,16 +219,18 @@ namespace TEST_ANSYS {
|
|
|
config = json::parse(optimizer.getConfiguration());
|
|
|
config[0]["value"] = 3;
|
|
|
config[1]["value"] = 20;
|
|
|
- config[2]["value"] = 0.13;
|
|
|
+ config[2]["value"] = 13.4;
|
|
|
config[3]["value"] = 5;
|
|
|
optimizer.configure(config.dump());
|
|
|
optimizer.connect(processor);
|
|
|
optimizer.setEvaluation("out0");
|
|
|
-
|
|
|
+ auto start = std::chrono::steady_clock::now();
|
|
|
auto res = optimizer.update();
|
|
|
- std::cout << optimizer.getBest().fitness << std::endl;
|
|
|
- std::cout << optimizer.evaluateFitness(optimizer.getBest()) << std::endl;
|
|
|
- EXPECT_TRUE(optimizer.getBest().fitness <= 100.0);
|
|
|
+ auto end = std::chrono::steady_clock::now();
|
|
|
+ std::cout << optimizer.getBests()[0].fitness;
|
|
|
+ std::cout << " | " << std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count() << "ms" << std::endl;
|
|
|
+ std::cout << optimizer.evaluateFitness(optimizer.getBests()[0]) << std::endl;
|
|
|
+ EXPECT_TRUE(optimizer.getBests()[0].fitness <= 100.0);
|
|
|
}
|
|
|
//*/
|
|
|
}
|