test_Connector.cpp 2.1 KB

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