test_flow.cpp 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. #include "test_flow.h"
  2. UnderTestPost* setUpClassFlowPostprocessing(t_CNNType digType, t_CNNType anaType)
  3. {
  4. ClassFlowCNNGeneral* _analog;
  5. ClassFlowCNNGeneral* _digit;
  6. std::vector<ClassFlow*> FlowControll;
  7. ClassFlowMakeImage* flowmakeimage;
  8. // wird im doFlow verwendet
  9. flowmakeimage = new ClassFlowMakeImage(&FlowControll);
  10. FlowControll.push_back(flowmakeimage);
  11. // Die Modeltypen werden gesetzt, da keine Modelle verwendet werden.
  12. _analog = new ClassFlowCNNGeneral(nullptr, anaType);
  13. _digit = new ClassFlowCNNGeneral(nullptr, digType);
  14. return new UnderTestPost(&FlowControll, _analog, _digit);
  15. }
  16. std::string process_doFlow(UnderTestPost* _underTestPost) {
  17. string time;
  18. // run test
  19. TEST_ASSERT_TRUE(_underTestPost->doFlow(time));
  20. return _underTestPost->getReadout(0);
  21. }
  22. std::string process_doFlow(std::vector<float> analog, std::vector<float> digits, t_CNNType digType,
  23. bool checkConsistency, bool extendedResolution, int decimal_shift) {
  24. // setup the classundertest
  25. UnderTestPost* _undertestPost = init_do_flow(analog, digits, digType, checkConsistency, extendedResolution, decimal_shift);
  26. printf("SetupClassFlowPostprocessing completed.\n");
  27. string time;
  28. // run test
  29. TEST_ASSERT_TRUE(_undertestPost->doFlow(time));
  30. return _undertestPost->getReadout(0);
  31. }
  32. UnderTestPost* init_do_flow(std::vector<float> analog, std::vector<float> digits, t_CNNType digType,
  33. bool checkConsistency, bool extendedResolution, int decimal_shift) {
  34. UnderTestPost* _undertestPost = setUpClassFlowPostprocessing(digType, Analogue100);
  35. // digits
  36. if (digits.size()>0) {
  37. general* gen_digit = _undertestPost->flowDigit->GetGENERAL("default", true);
  38. gen_digit->ROI.clear();
  39. for (int i = 0; i<digits.size(); i++) {
  40. roi* digitROI = new roi();
  41. string name = "digit_" + std::to_string(i);
  42. digitROI->name = name;
  43. digitROI->result_klasse = (int) digits[i];
  44. digitROI->result_float = digits[i];
  45. gen_digit->ROI.push_back(digitROI);
  46. }
  47. }
  48. // analog
  49. if (analog.size()>0) {
  50. general* gen_analog = _undertestPost->flowAnalog->GetGENERAL("default", true);
  51. gen_analog->ROI.clear();
  52. for (int i = 0; i<analog.size(); i++) {
  53. roi* anaROI = new roi();
  54. string name = "ana_" + std::to_string(i);
  55. anaROI->name = name;
  56. anaROI->result_float = analog[i];
  57. gen_analog->ROI.push_back(anaROI);
  58. }
  59. }
  60. printf("Setting up of ROIs completed.\n");
  61. _undertestPost->InitNUMBERS();
  62. setConsitencyCheck(_undertestPost, checkConsistency);
  63. setExtendedResolution(_undertestPost, extendedResolution);
  64. setDecimalShift(_undertestPost, decimal_shift);
  65. return _undertestPost;
  66. }
  67. void setPreValue(UnderTestPost* _underTestPost, double _preValue) {
  68. if (_preValue>0) {
  69. printf("preValue=%f", _preValue);
  70. std::vector<NumberPost*>* NUMBERS = _underTestPost->GetNumbers();
  71. for (int _n = 0; _n < (*NUMBERS).size(); ++_n) {
  72. (*NUMBERS)[_n]->PreValue = _preValue;
  73. }
  74. }
  75. }
  76. void setAllowNegatives(UnderTestPost* _underTestPost, bool _allowNegatives) {
  77. printf("checkConsistency=true\n");
  78. std::vector<NumberPost*>* NUMBERS = _underTestPost->GetNumbers();
  79. for (int _n = 0; _n < (*NUMBERS).size(); ++_n) {
  80. (*NUMBERS)[_n]->AllowNegativeRates = _allowNegatives;
  81. }
  82. }
  83. void setConsitencyCheck(UnderTestPost* _underTestPost, bool _checkConsistency) {
  84. if (_checkConsistency) {
  85. printf("checkConsistency=true\n");
  86. std::vector<NumberPost*>* NUMBERS = _underTestPost->GetNumbers();
  87. for (int _n = 0; _n < (*NUMBERS).size(); ++_n) {
  88. (*NUMBERS)[_n]->checkDigitIncreaseConsistency = true;
  89. }
  90. }
  91. }
  92. void setExtendedResolution(UnderTestPost* _underTestPost, bool _extendedResolution) {
  93. if (_extendedResolution ) {
  94. std::vector<NumberPost*>* NUMBERS = _underTestPost->GetNumbers();
  95. for (int _n = 0; _n < (*NUMBERS).size(); ++_n) {
  96. (*NUMBERS)[_n]->isExtendedResolution = true;
  97. }
  98. }
  99. }
  100. void setDecimalShift(UnderTestPost* _underTestPost, int _decimal_shift) {
  101. if (_decimal_shift!=0) {
  102. std::vector<NumberPost*>* NUMBERS = _underTestPost->GetNumbers();
  103. for (int _n = 0; _n < (*NUMBERS).size(); ++_n) {
  104. printf("Setting decimal shift on number: %d to %d\n", _n, _decimal_shift);
  105. (*NUMBERS)[_n]->DecimalShift = _decimal_shift;
  106. (*NUMBERS)[_n]->DecimalShiftInitial = _decimal_shift;
  107. }
  108. }
  109. }