MCPcopy Create free account
hub / github.com/ArashPartow/exprtk / test_expression

Function test_expression

exprtk_test.cpp:1156–1224  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1154
1155template <typename T>
1156inline bool test_expression(const std::string& expression_string, const T& expected_result)
1157{
1158 exprtk::symbol_table<T> symbol_table;
1159 symbol_table.add_constants();
1160
1161 exprtk::polynomial<T, 1> poly01;
1162 exprtk::polynomial<T, 2> poly02;
1163 exprtk::polynomial<T, 3> poly03;
1164 exprtk::polynomial<T, 4> poly04;
1165 exprtk::polynomial<T, 5> poly05;
1166 exprtk::polynomial<T, 6> poly06;
1167 exprtk::polynomial<T, 7> poly07;
1168 exprtk::polynomial<T, 8> poly08;
1169 exprtk::polynomial<T, 9> poly09;
1170 exprtk::polynomial<T,10> poly10;
1171 exprtk::polynomial<T,11> poly11;
1172 exprtk::polynomial<T,12> poly12;
1173
1174 symbol_table.add_function("poly01", poly01);
1175 symbol_table.add_function("poly02", poly02);
1176 symbol_table.add_function("poly03", poly03);
1177 symbol_table.add_function("poly04", poly04);
1178 symbol_table.add_function("poly05", poly05);
1179 symbol_table.add_function("poly06", poly06);
1180 symbol_table.add_function("poly07", poly07);
1181 symbol_table.add_function("poly08", poly08);
1182 symbol_table.add_function("poly09", poly09);
1183 symbol_table.add_function("poly10", poly10);
1184 symbol_table.add_function("poly11", poly11);
1185 symbol_table.add_function("poly12", poly12);
1186
1187 exprtk::expression<T> expression;
1188 expression.register_symbol_table(symbol_table);
1189
1190 {
1191 exprtk::parser<T> parser;
1192
1193 if (!parser.compile(expression_string,expression))
1194 {
1195 printf("test_expression() - Error: %s Expression: %s\n",
1196 parser.error().c_str(),
1197 expression_string.c_str());
1198
1199 return false;
1200 }
1201 }
1202
1203 if (!exprtk::expression_helper<T>::is_literal(expression))
1204 {
1205 printf("test_expression() - Error: Expression did not compile to a constant! Expression: %s\n",
1206 expression_string.c_str());
1207
1208 return false;
1209 }
1210
1211 const T result = expression.value();
1212
1213 if (not_equal(result,expected_result))

Callers

nothing calls this directly

Calls 2

not_equalFunction · 0.85
valueMethod · 0.45

Tested by

no test coverage detected