feat(Evaluator): add some binary operators
This commit is contained in:
parent
11fa2b1e6f
commit
14717958c6
5 changed files with 174 additions and 59 deletions
|
|
@ -81,4 +81,44 @@ void test_evaluation()
|
|||
evaluate(state, "abs(abs(-2))", &resVal, &resType);
|
||||
assert(resType == TYPE_INT);
|
||||
assert(2 == resVal);
|
||||
|
||||
evaluate(state, "2 = 2", &resVal, &resType);
|
||||
assert(resType == TYPE_INT);
|
||||
assert(1 == resVal);
|
||||
|
||||
evaluate(state, "2 = 3", &resVal, &resType);
|
||||
assert(resType == TYPE_INT);
|
||||
assert(0 == resVal);
|
||||
|
||||
evaluate(state, "2 = 3.2", &resVal, &resType);
|
||||
assert(resType == TYPE_INT);
|
||||
assert(0 == resVal);
|
||||
|
||||
evaluate(state, "!(2 = 3)", &resVal, &resType);
|
||||
assert(resType == TYPE_INT);
|
||||
assert(1 == resVal);
|
||||
|
||||
evaluate(state, "!! 0", &resVal, &resType);
|
||||
assert(resType == TYPE_INT);
|
||||
assert(0 == resVal);
|
||||
|
||||
evaluate(state, "(! (! 1)) + 0", &resVal, &resType);
|
||||
assert(resType == TYPE_INT);
|
||||
assert(1 == resVal);
|
||||
|
||||
evaluate(state, "!!2", &resVal, &resType);
|
||||
assert(resType == TYPE_INT);
|
||||
assert(1 == resVal);
|
||||
|
||||
evaluate(state, "1 & 1", &resVal, &resType);
|
||||
assert(resType == TYPE_INT);
|
||||
assert(1 == resVal);
|
||||
|
||||
evaluate(state, "1 & ((1+0)-1)", &resVal, &resType);
|
||||
assert(resType == TYPE_INT);
|
||||
assert(0 == resVal);
|
||||
|
||||
evaluate(state, "1 & (1 | 0)", &resVal, &resType);
|
||||
assert(resType == TYPE_INT);
|
||||
assert(1 == resVal);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,5 +28,7 @@ void test_line_processing()
|
|||
|
||||
assert(process_line(state, "set VAR_D to VAR_A+VAR_B"));
|
||||
assert(float_almost_equal(10, var_store_get_float(state->varStore, "VAR_D")));
|
||||
|
||||
|
||||
assert(process_line(state, "set VAR_D to VAR_A+VAR_B"));
|
||||
assert(float_almost_equal(10, var_store_get_float(state->varStore, "VAR_D")));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue