#include #include //#define private public #include "OptimizerEvolutionary.h" #include #include using namespace mdd; TEST(OptimizerEvolutionary, OptimizeSimpleFormula) { //optimize f(x)=x^2 std::vector inputs; std::shared_ptr f1 = std::make_shared(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()* res[1]["value"][0].get(),-100); }