From 7e1f3f45962ec1ddf8683bea778c82fbfa9c4470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Fri, 10 Mar 2017 09:49:38 +0100 Subject: [PATCH] [poincare] Add tests on symbols Change-Id: I44329fb76dd84c1ef6b731d552c80615fc29d01d --- poincare/Makefile | 1 + poincare/test/symbol.cpp | 54 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 poincare/test/symbol.cpp diff --git a/poincare/Makefile b/poincare/Makefile index 77ee68a96..97ee442f8 100644 --- a/poincare/Makefile +++ b/poincare/Makefile @@ -98,6 +98,7 @@ tests += $(addprefix poincare/test/,\ power.cpp\ simplify_utils.cpp\ subtraction.cpp\ + symbol.cpp\ trigo.cpp\ ) diff --git a/poincare/test/symbol.cpp b/poincare/test/symbol.cpp new file mode 100644 index 000000000..6d0aea0f9 --- /dev/null +++ b/poincare/test/symbol.cpp @@ -0,0 +1,54 @@ +#include +#include +#include +#include +#include + +using namespace Poincare; + +QUIZ_CASE(poincare_parse_symbol) { + char piText[2] = {Ion::Charset::SmallPi, 0}; + Expression * e = Expression::parse(piText); + assert(e->type() == Expression::Type::Symbol); + delete e; + + char eText[2] = {Ion::Charset::Exponential, 0}; + e = Expression::parse(eText); + assert(e->type() == Expression::Type::Symbol); + delete e; + + char iText[10] = {Ion::Charset::IComplex, 0}; + e = Expression::parse(iText); + assert(e->type() == Expression::Type::Complex); + delete e; + + char floatText[10] = {'1', '.', '2', Ion::Charset::Exponent, '3', 0}; + e = Expression::parse(floatText); + assert(e->type() == Expression::Type::Complex); + delete e; + + e = Expression::parse("ans"); + assert(e->type() == Expression::Type::Symbol); + delete e; +} + + +QUIZ_CASE(poincare_symbol_approximate) { + GlobalContext globalContext; + char piText[2] = {Ion::Charset::SmallPi, 0}; + Expression * e = Expression::parse(piText); + assert(fabsf(e->approximate(globalContext)-M_PI) <= 0.0001f); + delete e; + + char eText[2] = {Ion::Charset::Exponential, 0}; + e = Expression::parse(eText); + assert(fabsf(e->approximate(globalContext)-M_E) <= 0.0001f); + + delete e; + + char floatText[10] = {'1', '.', '2', Ion::Charset::Exponent, '3', 0}; + e = Expression::parse(floatText); + assert(fabsf(e->approximate(globalContext)-1200.0f) <= 0.0001f); + delete e; +} +