Files
Upsilon/poincare/test/addition.cpp
Émilie Feral 7af3979d3b [poincare] Change Context API
Change-Id: I2818866fb41bf73c39396fbd85600e586a79065c
2016-12-15 13:51:41 +01:00

42 lines
1.4 KiB
C++

#include <quiz.h>
#include <poincare.h>
#include <assert.h>
QUIZ_CASE(poincare_addition_approximate) {
GlobalContext globalContext;
Expression * a = Expression::parse("1+2");
assert(a->approximate(globalContext) == 3.0f);
delete a;
}
QUIZ_CASE(poincare_addition_evaluate) {
GlobalContext globalContext;
Expression * a = Expression::parse("1+2");
Expression * e = a->evaluate(globalContext);
assert(e->approximate(globalContext) == 3.0f);
delete a;
delete e;
a = Expression::parse("[[1,2][3,4][5,6]]+3");
e = a->evaluate(globalContext);
assert(e->operand(0)->approximate(globalContext) == 4.0f);
assert(e->operand(1)->approximate(globalContext) == 5.0f);
assert(e->operand(2)->approximate(globalContext) == 6.0f);
assert(e->operand(3)->approximate(globalContext) == 7.0f);
assert(e->operand(4)->approximate(globalContext) == 8.0f);
assert(e->operand(5)->approximate(globalContext) == 9.0f);
delete a;
delete e;
a = Expression::parse("[[1,2][3,4][5,6]]+[[1,2][3,4][5,6]]");
e = a->evaluate(globalContext);
assert(e->operand(0)->approximate(globalContext) == 2.0f);
assert(e->operand(1)->approximate(globalContext) == 4.0f);
assert(e->operand(2)->approximate(globalContext) == 6.0f);
assert(e->operand(3)->approximate(globalContext) == 8.0f);
assert(e->operand(4)->approximate(globalContext) == 10.0f);
assert(e->operand(5)->approximate(globalContext) == 12.0f);
delete a;
delete e;
}