MCPcopy Create free account
hub / github.com/KDE/labplot / testBasics

Method testBasics

tests/backend/Parser/ParserTest.cpp:26–76  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24//**********************************************************
25
26void ParserTest::testBasics() {
27 Parsing::Parser parser(false);
28 const QVector<QPair<QString, double>> tests{{QStringLiteral("42"), 42.},
29 {QStringLiteral("1."), 1.},
30 {QStringLiteral("1+1"), 2.},
31 {QStringLiteral("1+2+3+4+5"), 15.},
32 {QStringLiteral("2*3"), 6.},
33 {QStringLiteral("3/2"), 1.5},
34 {QStringLiteral("2 -4 +6 -1 -1- 0 +8"), 10.},
35 {QStringLiteral("1/3+1/3+1/3"), 1.},
36 {QStringLiteral("1.5 + 2.5"), 4.},
37 {QStringLiteral("4*2.5 + 8.5+1.5 / 3.0"), 19.},
38 {QStringLiteral("5.0005 + 0.0095"), 5.01},
39 {QStringLiteral("pi"), M_PI},
40 {QStringLiteral("e"), M_E},
41 {QStringLiteral("e^1"), M_E},
42 {QStringLiteral("hbar"), GSL_CONST_MKSA_PLANCKS_CONSTANT_HBAR},
43 {QStringLiteral(" 1 + 1 "), 2.},
44 {QStringLiteral("1- 2"), -1.},
45 {QStringLiteral("2* 2.5"), 5.},
46 {QStringLiteral("3 + 8/5 -1 -2*5"), -6.4},
47 {QStringLiteral("(1)"), 1.},
48 {QStringLiteral("-(1)"), -1.},
49 {QStringLiteral("(1+1)"), 2},
50 {QStringLiteral("(sin(0))"), 0.},
51 {QStringLiteral("(( ((2)) + 4))*((5))"), 30.},
52 {QStringLiteral("2^2"), 4.},
53 {QStringLiteral("3**2"), 9.},
54 {QStringLiteral("1%1"), 0.},
55 {QStringLiteral("3%2"), 1.},
56 {QStringLiteral("1.e-5"), 1.e-5},
57 {QStringLiteral("9.5E3"), 9500.},
58 {QStringLiteral("|1.5|"), 1.5},
59 {QStringLiteral("|-2.5|"), 2.5},
60 {QStringLiteral("0!"), 1},
61 {QStringLiteral("4!"), 24},
62 {QStringLiteral("-3!"), -6.},
63 {QStringLiteral("exp(0)"), 1.},
64 {QStringLiteral("exp(1)"), M_E},
65 {QStringLiteral("sqrt(0)"), 0.},
66 {QStringLiteral("sin(0)"), 0.},
67 {QStringLiteral("cos(pi)"), -1.}};
68
69 for (auto& expr : tests)
70 QCOMPARE(parser.parse(qPrintable(expr.first), "C"), expr.second);
71
72 const QVector<QPair<QString, double>> testsFuzzy{{QStringLiteral("(sin(pi))"), 0.}};
73
74 for (const auto& expr : testsFuzzy)
75 FuzzyCompare(parser.parse(qPrintable(expr.first), "C"), expr.second, 1.e-15);
76}
77
78void ParserTest::testFunction0Arguments() {
79 // Function with no arguments

Callers

nothing calls this directly

Calls 1

parseMethod · 0.45

Tested by

no test coverage detected