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

Function run_test03

exprtk_test.cpp:2962–3257  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2960
2961template <typename T>
2962bool run_test03()
2963{
2964 typedef exprtk::symbol_table<T> symbol_table_t;
2965 typedef exprtk::expression<T> expression_t;
2966 typedef exprtk::parser<T> parser_t;
2967
2968 const std::string expression_string =
2969 "A+A0+aA+Aa0+b+B1+Bb+bB1+A+A0+AA+AA0+B+B1+BB+BB1+a+a0+aa+aa0+b+b1+bb+bb1+"
2970 "c+C2+Cc+Cc2+D+D3+dD+dD3+C+C2+CC+CC2+D+D3+DD+DD3+c+c2+cc+cc2+d+d3+dd+dd3+"
2971 "E+E4+eE+Ee4+f+F5+Ff+fF5+E+E4+EE+EE4+F+F5+FF+FF5+e+e4+ee+ee4+f+f5+ff+ff5+"
2972 "g+G6+Gg+Gg6+H+H7+hH+hH7+G+G6+GG+GG6+H+H7+HH+HH7+g+g6+gg+gg6+h+h7+hh+hh7+"
2973 "I+I8+iI+Ii8+j+J9+Jj+jJ9+I+I8+II+II8+J+J9+JJ+JJ9+i+i8+ii+ii8+j+j9+jj+jj9+"
2974 "k+K0+Kk+Kk0+L+L1+lL+lL1+K+K0+KK+KK0+L+L1+LL+LL1+k+k0+kk+kk0+l+l1+ll+ll1+"
2975 "M+M2+mM+Mm2+n+N3+Nn+nN3+M+M2+MM+MM2+N+N3+NN+NN3+m+m2+mm+mm2+n+n3+nn+nn3+"
2976 "o+O4+Oo+Oo4+P+P5+pP+pP5+O+O4+OO+OO4+P+P5+PP+PP5+o+o4+oo+oo4+p+p5+pp+pp5+"
2977 "Q+Q6+qQ+Qq6+r+R7+Rr+rR7+Q+Q6+QQ+QQ6+R+R7+RR+RR7+q+q6+qq+qq6+r+r7+rr+rr7+"
2978 "s+S8+Ss+Ss8+T+T9+tT+tT9+S+S8+SS+SS8+T+T9+TT+TT9+s+s8+ss+ss8+t+t9+tt+tt9+"
2979 "U+U0+uU+Uu0+v+V1+Vv+vV1+U+U0+UU+UU0+V+V1+VV+VV1+u+u0+uu+uu0+v+v1+vv+vv1+"
2980 "w+W2+Ww+Ww2+X+X3+xX+xX3+W+W2+WW+WW2+X+X3+XX+XX3+w+w2+ww+ww2+x+x3+xx+xx3+"
2981 "Y+Y4+yY+Yy4+z+Z5+Zz+zZ5+Y+Y4+YY+YY4+Z+Z5+ZZ+ZZ5+y+y4+yy+yy4+z+z5+zz+zz5 ";
2982
2983 static const std::string variable_list[] =
2984 {
2985 "A", "A0", "aA", "Aa0", "b", "B1", "Bb", "bB1",
2986 "c", "C2", "Cc", "Cc2", "D", "D3", "dD", "dD3",
2987 "E", "E4", "eE", "Ee4", "f", "F5", "Ff", "fF5",
2988 "g", "G6", "Gg", "Gg6", "H", "H7", "hH", "hH7",
2989 "I", "I8", "iI", "Ii8", "j", "J9", "Jj", "jJ9",
2990 "k", "K0", "Kk", "Kk0", "L", "L1", "lL", "lL1",
2991 "M", "M2", "mM", "Mm2", "n", "N3", "Nn", "nN3",
2992 "o", "O4", "Oo", "Oo4", "P", "P5", "pP", "pP5",
2993 "Q", "Q6", "qQ", "Qq6", "r", "R7", "Rr", "rR7",
2994 "s", "S8", "Ss", "Ss8", "T", "T9", "tT", "tT9",
2995 "U", "U0", "uU", "Uu0", "v", "V1", "Vv", "vV1",
2996 "w", "W2", "Ww", "Ww2", "X", "X3", "xX", "xX3",
2997 "Y", "Y4", "yY", "Yy4", "z", "Z5", "Zz", "zZ5"
2998 };
2999
3000 static const std::size_t variable_list_size = sizeof(variable_list) / sizeof(std::string);
3001
3002 static const std::size_t rounds = 300;
3003
3004 for (std::size_t r = 0; r < rounds; ++r)
3005 {
3006 symbol_table_t symbol_table_0;
3007 symbol_table_t symbol_table_1;
3008 expression_t expression;
3009
3010 std::vector<T> v;
3011 v.resize(variable_list_size);
3012
3013 for (std::size_t i = 0; i < variable_list_size; ++i)
3014 {
3015 v[i] = T(i);
3016 if (i & 1)
3017 symbol_table_0.add_variable(variable_list[i],v[i]);
3018 else
3019 symbol_table_1.add_variable(variable_list[i],v[i]);

Callers

nothing calls this directly

Calls 1

valueMethod · 0.45

Tested by

no test coverage detected