123456789101112131415161718192021222324252627 |
- #include <gtest/gtest.h>
- #include <json.hpp>
- //#define private public
- #include "OptimizerEvolutionary.h"
- #include <ModuleMath.h>
- #include <ModuleSwitch.h>
- using namespace mdd;
- TEST(OptimizerEvolutionary, OptimizeSimpleFormula) {
- //optimize f(x)=x^2
- std::vector<std::string> inputs;
- std::shared_ptr<ModuleMath> f1 = std::make_shared<ModuleMath>(MathOperation::MULTIPLY);
- OptimizerEvolutionary optimizer(f1, 3);
- inputs = f1->getInputIDs();
- json limit;
- limit["min"] = { -10 };
- limit["max"] = { 10 };
- limit["step"] = { 1 };
- optimizer.addModifier(inputs[0], limit);
- optimizer.addModifier(inputs[1], limit);
- optimizer.addReader(f1->getOutputIDs()[0]);
- optimizer.setEvaluation("out0");
- json res = optimizer.update();
- //std::cout << res.dump() << std::endl;
- EXPECT_EQ(res[0]["value"][0].get<int>()* res[1]["value"][0].get<int>(),-100);
- }
|