fix: 测试中 vars 赋值移到 ExpressionEngine 构造之后(避免被构造函数覆盖为 0.0)
This commit is contained in:
parent
8d17e6258e
commit
5f5e64a57f
@ -177,9 +177,9 @@ struct TestEnv {
|
||||
TEST(logic_alg_trigger_true_produces_alarm) {
|
||||
std::map<std::string, double> vars;
|
||||
std::vector<std::string> tags = {"tag1"};
|
||||
vars["tag1"] = 1.0;
|
||||
|
||||
ExpressionEngine engine(vars, tags);
|
||||
vars["tag1"] = 1.0; // 必须在构造后设置(构造函数会用共享内存 0.0 覆盖)
|
||||
engine.registerExpression("act", "tag1 > 0.5");
|
||||
|
||||
// trigger 为 true → 应产生报警
|
||||
@ -202,10 +202,10 @@ TEST(logic_alg_trigger_false_no_alarm) {
|
||||
TEST(logic_alg_complex_expression) {
|
||||
std::map<std::string, double> vars;
|
||||
std::vector<std::string> tags = {"tag1", "tag2"};
|
||||
vars["tag1"] = 3.0;
|
||||
vars["tag2"] = 7.0;
|
||||
|
||||
ExpressionEngine engine(vars, tags);
|
||||
vars["tag1"] = 3.0;
|
||||
vars["tag2"] = 7.0;
|
||||
engine.registerExpression("act", "tag1 > 2 && tag2 < 10");
|
||||
|
||||
CHECK_EQ(engine.evaluateBool("act"), true);
|
||||
@ -226,10 +226,10 @@ TEST(logic_alg_and_short_circuit_false) {
|
||||
TEST(logic_alg_or_expression) {
|
||||
std::map<std::string, double> vars;
|
||||
std::vector<std::string> tags = {"tag1", "tag2"};
|
||||
vars["tag1"] = 0.0;
|
||||
vars["tag2"] = 100.0;
|
||||
|
||||
ExpressionEngine engine(vars, tags);
|
||||
vars["tag1"] = 0.0;
|
||||
vars["tag2"] = 100.0;
|
||||
engine.registerExpression("act", "tag1 > 2 || tag2 > 50");
|
||||
|
||||
CHECK_EQ(engine.evaluateBool("act"), true);
|
||||
@ -378,9 +378,9 @@ TEST(bound_alg_filter_expression) {
|
||||
TEST(bound_alg_filter_boundary) {
|
||||
std::map<std::string, double> vars;
|
||||
std::vector<std::string> tags = {"tag1"};
|
||||
vars["tag1"] = 200.0;
|
||||
|
||||
ExpressionEngine engine(vars, tags);
|
||||
vars["tag1"] = 200.0;
|
||||
engine.registerExpression("feedback", "tag1 >= 200");
|
||||
|
||||
// exactly at boundary
|
||||
@ -454,13 +454,13 @@ TEST(bound_hold_long_delay) {
|
||||
TEST(feedback_full_flow_start_to_done) {
|
||||
std::map<std::string, double> vars;
|
||||
std::vector<std::string> tags = {"tag1"};
|
||||
vars["tag1"] = 1.0;
|
||||
|
||||
ExpressionEngine engine(vars, tags);
|
||||
vars["tag1"] = 1.0; // 必须在构造后设置(构造函数覆盖)
|
||||
vars["p1"] = 1.0;
|
||||
vars["now"] = 0;
|
||||
vars["stime"] = 0;
|
||||
vars["time"] = 0;
|
||||
|
||||
ExpressionEngine engine(vars, tags);
|
||||
engine.registerExpression("act", "tag1 > 0.5");
|
||||
engine.registerExpression("feedback", "tag1 < 0.1");
|
||||
engine.registerExpression("result", "1");
|
||||
@ -568,9 +568,9 @@ TEST(feedback_timeout_scenario) {
|
||||
TEST(exp_times_occurrence_counting_logic) {
|
||||
std::map<std::string, double> vars;
|
||||
std::vector<std::string> tags = {"tag1"};
|
||||
vars["tag1"] = 1.0;
|
||||
|
||||
ExpressionEngine engine(vars, tags);
|
||||
vars["tag1"] = 1.0; // 必须在构造后设置
|
||||
engine.registerExpression("act", "tag1");
|
||||
|
||||
int shear_times = 0;
|
||||
@ -590,9 +590,9 @@ TEST(exp_times_occurrence_counting_logic) {
|
||||
TEST(exp_times_occurrence_below_threshold) {
|
||||
std::map<std::string, double> vars;
|
||||
std::vector<std::string> tags = {"tag1"};
|
||||
vars["tag1"] = 1.0;
|
||||
|
||||
ExpressionEngine engine(vars, tags);
|
||||
vars["tag1"] = 1.0; // 必须在构造后设置
|
||||
engine.registerExpression("act", "tag1 > 0.5");
|
||||
|
||||
int shear_times = 0;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user