Files
Upsilon/poincare/test/simplify_addition_integer.cpp
Felix Raimundo ed2c4cfb59 First version of the simplifications.
Change-Id: Idbddb92b6bd098d6b862f5fc4abd741948e15194
2016-04-01 11:32:11 +02:00

44 lines
1.1 KiB
C++

#include <quiz.h>
#include <poincare.h>
#include <assert.h>
#ifdef DEBUG
#include <iostream>
using namespace std;
#endif
void assert_simplifies_to(const char * input_string, const char * expected_string) {
//Expression* tab[3] = {new Integer(1), new Integer(2), new Integer(3)};
//Expression* input = new Addition(tab, 3, false);
Expression * input = Expression::parse(input_string);
assert(input != nullptr);
#ifdef DEBUG
cout << "Input = " << endl;
PRINT_AST(input);
#endif
Expression * simplified = input->simplify();
assert(simplified != nullptr);
#ifdef DEBUG
cout << "Simplified = " << endl;
PRINT_AST(simplified);
#endif
Expression * expected = Expression::parse(expected_string);
assert(expected != nullptr);
#ifdef DEBUG
cout << "Expected = " << endl;
PRINT_AST(expected);
#endif
assert(simplified->isIdenticalTo(expected));
delete expected;
delete simplified;
delete input;
#ifdef DEBUG
cout << "----" << endl;
#endif
}
QUIZ_CASE(poincare_simplify_addition_integer) {
//assert_simplifies_to("2+2", "4");
assert_simplifies_to("2*2*2*2*2*2", "6");
}