From 44ec987008e0c82353824ae1ee4f8de3ea422e87 Mon Sep 17 00:00:00 2001 From: Felix Raimundo Date: Fri, 8 Apr 2016 16:34:34 +0200 Subject: [PATCH] Add is_identical_to util in tests. Change-Id: I8b55a228e1bd27e4c7b72891ff887bdc15b02fad --- poincare/test/simplify_addition.cpp | 13 ++++++----- poincare/test/simplify_product.cpp | 9 ++++---- poincare/test/simplify_utils.cpp | 36 +++++++++++++++++++++++------ poincare/test/simplify_utils.h | 6 ++++- 4 files changed, 46 insertions(+), 18 deletions(-) diff --git a/poincare/test/simplify_addition.cpp b/poincare/test/simplify_addition.cpp index e05d24e71..51300e033 100644 --- a/poincare/test/simplify_addition.cpp +++ b/poincare/test/simplify_addition.cpp @@ -1,11 +1,12 @@ +#include #include #include "simplify_utils.h" QUIZ_CASE(poincare_simplify_addition_integer) { - assert_simplifies_to("1", "1"); - assert_simplifies_to("1+2", "3"); - assert_simplifies_to("1+a", "1+a"); - assert_simplifies_to("1+2+3+4+5+6+7", "28"); - assert_simplifies_to("1+2+3+4+5+a+6+7", "28+a"); - assert_simplifies_to("a*(0+0)", "0"); + assert(simplifies_to("1", "1")); + assert(simplifies_to("1+2", "3")); + assert(simplifies_to("1+a", "1+a")); + assert(simplifies_to("1+2+3+4+5+6+7", "28")); + assert(simplifies_to("1+2+3+4+5+a+6+7", "28+a")); + assert(simplifies_to("a*(0+0)", "0")); } diff --git a/poincare/test/simplify_product.cpp b/poincare/test/simplify_product.cpp index df2da12d3..cc18864d0 100644 --- a/poincare/test/simplify_product.cpp +++ b/poincare/test/simplify_product.cpp @@ -1,9 +1,10 @@ +#include #include #include "simplify_utils.h" QUIZ_CASE(poincare_simplify_product_by_zero) { - assert_simplifies_to("3*0", "0"); - assert_simplifies_to("foo*0", "0"); - assert_simplifies_to("0*3", "0"); - assert_simplifies_to("0*foo", "0"); + assert(simplifies_to("3*0", "0")); + assert(simplifies_to("foo*0", "0")); + assert(simplifies_to("0*3", "0")); + assert(simplifies_to("0*foo", "0")); } diff --git a/poincare/test/simplify_utils.cpp b/poincare/test/simplify_utils.cpp index 59db340b4..7beb120f0 100644 --- a/poincare/test/simplify_utils.cpp +++ b/poincare/test/simplify_utils.cpp @@ -7,13 +7,11 @@ using namespace std; #endif -void assert_simplifies_to(const char * input_string, const char * expected_string) { +bool simplifies_to(const char * input_string, const char * expected_string) { #if POINCARE_TESTS_PRINT_EXPRESSIONS cout << "---- Simplification Run ----" << endl; cout << input_string << " -> " << expected_string << endl; #endif - //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); #if POINCARE_TESTS_PRINT_EXPRESSIONS @@ -35,10 +33,34 @@ void assert_simplifies_to(const char * input_string, const char * expected_strin print_expression(expected); #endif - assert(simplified->isIdenticalTo(expected)); + bool isIdentical = simplified->isIdenticalTo(expected); + delete expected; - if (simplified != input) { - delete simplified; - } + delete simplified; delete input; + + return isIdentical; +} + +bool identical_to(const char * input_string, const char * expected_string) { + Expression * input = Expression::parse(input_string); + assert(input != nullptr); +#if POINCARE_TESTS_PRINT_EXPRESSIONS + cout << "Input = " << endl; + print_expression(input); +#endif + + Expression * expected = Expression::parse(expected_string); + assert(expected != nullptr); +#if POINCARE_TESTS_PRINT_EXPRESSIONS + cout << "Expected = " << endl; + print_expression(expected); +#endif + + bool isIdentical = input->isIdenticalTo(expected); + + delete expected; + delete input; + + return isIdentical; } diff --git a/poincare/test/simplify_utils.h b/poincare/test/simplify_utils.h index 54609f012..81598564d 100644 --- a/poincare/test/simplify_utils.h +++ b/poincare/test/simplify_utils.h @@ -1,6 +1,10 @@ #ifndef POINCARE_TEST_SIMPLIFY_UTILS_H #define POINCARE_TEST_SIMPLIFY_UTILS_H -void assert_simplifies_to(const char * input_string, const char * expected_string); +/* Tests that the first expression simplifies to the second. */ +bool simplifies_to(const char * input_string, const char * expected_string); + +/* Tests that the first expression is identical to the second. */ +bool identical_to(const char * input_string, const char * expected_string); #endif // POINCARE_TEST_SIMPLIFY_UTILS_H