diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2019-12-30 13:06:13 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2019-12-31 19:43:25 +0300 |
commit | 372064af20a456989c2a9ea2fda6e535d74dbafd (patch) | |
tree | 9cc9039586252bda5ef44a68db9f53627a87ce4b /test/unit_tests/parser.cpp | |
parent | add .dockerignore (diff) | |
download | math-server-372064af20a456989c2a9ea2fda6e535d74dbafd.tar.gz math-server-372064af20a456989c2a9ea2fda6e535d74dbafd.zip |
support the power (^) operator
It doesn't work with the unary minus currently (as is reflected in the
tests), it should have a higher precedence.
Diffstat (limited to '')
-rw-r--r-- | test/unit_tests/parser.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/test/unit_tests/parser.cpp b/test/unit_tests/parser.cpp index 562c6b7..37d9e0a 100644 --- a/test/unit_tests/parser.cpp +++ b/test/unit_tests/parser.cpp @@ -30,6 +30,10 @@ const std::vector<std::string_view> input{ " 2 * (1 + 3) ", " 2 * (1 + 3 * (1 - -3)) ", " -2 * ---- (3 + -100e-1) ", // Looks weird, but also works in e.g. Python + "2 ^ 3 ^ 3", + "(2 ^ 3) ^ 3", // Power operator is right-associative + "(.5 ^ -1) ^ 4", + ".5 ^ -1 ^ 4", // Power operator has higher precedence than the unary minus }; const std::vector<double> expected{ @@ -39,6 +43,10 @@ const std::vector<double> expected{ 8, 26, 14, + 134217728, + 512, + 16, + 2, }; } |