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

Function run_test06

exprtk_test.cpp:3396–3443  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3394
3395template <typename T>
3396bool run_test06()
3397{
3398 typedef exprtk::expression<T> expression_t;
3399
3400 const std::string expression_string = "sqrt(1 - (x^2))";
3401
3402 T x = T(0);
3403
3404 exprtk::symbol_table<T> symbol_table;
3405 symbol_table.add_variable("x",x);
3406
3407 expression_t expression;
3408 expression.register_symbol_table(symbol_table);
3409
3410 {
3411 exprtk::parser<T> parser;
3412
3413 if (!parser.compile(expression_string,expression))
3414 {
3415 printf("run_test06() - Error: %s Expression: %s\n",
3416 parser.error().c_str(),
3417 expression_string.c_str());
3418
3419 return false;
3420 }
3421 }
3422
3423 T total_area1 = exprtk::integrate(expression,x,T(-1),T(1));
3424 T total_area2 = exprtk::integrate(expression,"x",T(-1),T(1));
3425 const T pi = T(3.141592653589793238462643383279502);
3426
3427 if (not_equal(total_area1,total_area2,T(0.000001)))
3428 {
3429 printf("run_test06() - Integration Error: area1 != area2\n");
3430 return false;
3431 }
3432
3433 if (not_equal(total_area1,T(pi) / T(2),T(0.000001)))
3434 {
3435 printf("run_test06() - Integration Error: Expected: %19.15f\tResult: %19.15f\n",
3436 static_cast<double>(pi / T(2)),
3437 static_cast<double>(total_area1));
3438
3439 return false;
3440 }
3441
3442 return true;
3443}
3444
3445template <typename T>
3446bool run_test07()

Callers

nothing calls this directly

Calls 1

not_equalFunction · 0.85

Tested by

no test coverage detected