MCPcopy Create free account
hub / github.com/GothenburgBitFactory/taskwarrior / TEST_NAME

Function TEST_NAME

test/eval_test.cpp:50–171  ·  view source on GitHub ↗

///////////////////////////////////////////////////////////////////////////

Source from the content-addressed store, hash-verified

48
49////////////////////////////////////////////////////////////////////////////////
50int TEST_NAME(int, char**) {
51 UnitTest t(52);
52 Context context;
53 Context::setContext(&context);
54
55 // Test the source independently.
56 Variant v;
57 t.notok(get("-", v), "true <-- get(-)");
58
59 t.ok(get("x", v), "true <-- get(x)");
60 t.is(v.type(), Variant::type_boolean, "get(x) --> boolean");
61 t.is(v.get_bool(), true, "get(x) --> true");
62
63 Eval e;
64 e.addSource(get);
65 Variant result;
66 e.evaluatePostfixExpression("x", result);
67 t.is(result.type(), Variant::type_boolean, "postfix 'x' --> boolean");
68 t.is(result.get_bool(), true, "postfix 'x' --> true");
69
70 e.evaluatePostfixExpression("pi", result);
71 t.is(result.type(), Variant::type_real, "postfix 'pi' --> real");
72 t.is(result.get_real(), 3.141592, 0.00001, "postfix 'pi' --> 3.14159265");
73
74 e.evaluatePostfixExpression("foo", result);
75 t.is(result.type(), Variant::type_string, "postfix 'foo' --> string");
76 t.is(result.get_string(), "foo", "postfix 'foo' --> 'foo'");
77
78 // Simple infix arithmetic.
79 e.evaluateInfixExpression("1+2", result);
80 t.is(result.type(), Variant::type_integer, "infix '1 + 2' --> integer");
81 t.is(result.get_integer(), 3, "infix '1 + 2' --> 3");
82
83 // Simple postfix arithmetic.
84 e.evaluatePostfixExpression("1 2 +", result);
85 t.is(result.type(), Variant::type_integer, "postfix '1 2 +' --> integer");
86 t.is(result.get_integer(), 3, "postfix '1 2 +' --> 3");
87
88 e.evaluatePostfixExpression("1 2 -", result);
89 t.is(result.type(), Variant::type_integer, "postfix '1 2 -' --> integer");
90 t.is(result.get_integer(), -1, "postfix '1 2 -' --> -1");
91
92 e.evaluatePostfixExpression("2 3 *", result);
93 t.is(result.type(), Variant::type_integer, "postfix '2 3 *' --> integer");
94 t.is(result.get_integer(), 6, "postfix '2 3 *' --> 6");
95
96 e.evaluatePostfixExpression("5 2 /", result);
97 t.is(result.type(), Variant::type_integer, "postfix '5 2 /' --> integer");
98 t.is(result.get_integer(), 2, "postfix '5 2 /' --> 2");
99
100 e.evaluatePostfixExpression("5 2 /", result);
101 t.is(result.type(), Variant::type_integer, "postfix '5 2 *' --> integer");
102 t.is(result.get_integer(), 2, "postfix '5 2 *' --> 2");
103
104 // Simple postfix unary operator.
105 e.evaluatePostfixExpression("0 !", result);
106 t.is(result.type(), Variant::type_boolean, "postfix '0 !' --> boolean");
107 t.is(result.get_bool(), true, "postfix '0 !' --> true");

Callers

nothing calls this directly

Calls 12

notokMethod · 0.80
okMethod · 0.80
isMethod · 0.80
typeMethod · 0.80
get_boolMethod · 0.80
get_realMethod · 0.80
get_integerMethod · 0.80
get_durationMethod · 0.80
getFunction · 0.70
addSourceMethod · 0.45

Tested by

no test coverage detected