test_Connector.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #include <gtest/gtest.h>
  2. #include <json.hpp>
  3. #include "Connector.h"
  4. using namespace mdd;
  5. /*
  6. TEST(Connector, encode) {
  7. //decode (3+4)*2
  8. std::vector<std::string> inputs;
  9. std::shared_ptr<IModule> f1 = GetGenerators()["mdd::ModuleMath"]->Generate();
  10. inputs = f1->getInputIDs();
  11. f1->getInput(inputs[0])->setValue() = { 3 };
  12. f1->getInput(inputs[1])->setValue() = { 4 };
  13. std::shared_ptr<IModule> f2 = GetGenerators()["mdd::ModuleMath"]->Generate();
  14. f2->GetSubProp("operation")->Set("multiply");
  15. //= std::make_shared<ModuleMath>(MathOperation::ADD);
  16. inputs = f2->getInputIDs();
  17. f2->getInput(inputs[0])->connect(f1->getOutput(f1->getOutputIDs()[0]));
  18. f2->getInput(inputs[1])->setValue() = { 2 };
  19. std::shared_ptr<ProcessorStandard> processor = std::make_shared<ProcessorStandard>();
  20. processor->addModule(f1);
  21. processor->addModule(f2);
  22. processor->addModuleOutput(f2, f2->getOutput(f2->getOutputIDs()[0]));
  23. processor->update();
  24. EXPECT_EQ((int)f1->getOutput(f1->getOutputIDs()[0])->getValue()[0], 7);
  25. EXPECT_EQ((int)f2->getOutput(f2->getOutputIDs()[0])->getValue()[0], 14);
  26. EXPECT_EQ((int)processor->getOutput(processor->getOutputIDs()[1])->getValue()[0], 14);
  27. json code = Connector::encode(processor);
  28. code = "test";
  29. std::cout << code.dump() << std::endl;
  30. json m1;
  31. m1["type"] = "Math";
  32. m1["params"] = { "param1", "param2","..." };
  33. json m2;
  34. m2["type"] = "Math";
  35. m2["params"] = { "param1", "param2","..." };
  36. json p;
  37. p["type"] = "StandardProcessor";
  38. p["subs"] = { m1, m2 };
  39. p["connections"] = { {"in1", "out1"}, {"in2", "out2"} };
  40. EXPECT_EQ(code.dump(), p.dump());
  41. }
  42. TEST(Connector, decode) {
  43. //parse (3+4)*2
  44. json m1;
  45. m1["type"] = "Math";
  46. m1["params"] = { "param1", "param2","..." };
  47. json m2;
  48. m2["type"] = "Math";
  49. m2["params"] = { "param1", "param2","..." };
  50. json p;
  51. p["type"] = "StandardProcessor";
  52. p["subs"] = {m1, m2};
  53. p["connections"] = { {"in1", "out1"}, {"in2", "out2"} };
  54. auto module = Connector::decode(p);
  55. //auto ids_out = module->getOutputIDs();
  56. //EXPECT_EQ((int)module->getOutput(ids_out[0])->getValue()[0], 14);
  57. }*/