diff --git a/poincare/Makefile b/poincare/Makefile index d6a13b974..f9c3017bf 100644 --- a/poincare/Makefile +++ b/poincare/Makefile @@ -167,6 +167,7 @@ tests += $(addprefix poincare/test/,\ power.cpp\ properties.cpp\ rational.cpp\ + random.cpp\ simplify.cpp\ store.cpp\ subtraction.cpp\ diff --git a/poincare/test/random.cpp b/poincare/test/random.cpp new file mode 100644 index 000000000..6a40f8bd8 --- /dev/null +++ b/poincare/test/random.cpp @@ -0,0 +1,31 @@ +#include +#include +#include +#include +#include +#include "helper.h" +#include "tree/helpers.h" + +using namespace Poincare; + +QUIZ_CASE(poincare_random_simplify) { + assert_parsed_expression_simplify_to("1/random()+1/3+1/4", "1/random()+7/12"); + assert_parsed_expression_simplify_to("random()+random()", "random()+random()"); + assert_parsed_expression_simplify_to("random()-random()", "-random()+random()"); + assert_parsed_expression_simplify_to("1/random()+1/3+1/4+1/random()", "1/random()+1/random()+7/12"); + assert_parsed_expression_simplify_to("random()×random()", "random()×random()"); + assert_parsed_expression_simplify_to("random()/random()", "random()/random()"); + assert_parsed_expression_simplify_to("3^random()×3^random()", "3^random()×3^random()"); + assert_parsed_expression_simplify_to("random()×ln(2)×3+random()×ln(2)×5", "5×ln(2)×random()+3×ln(2)×random()"); +} + +QUIZ_CASE(poincare_randint_simplify) { + assert_parsed_expression_simplify_to("1/randint(3,10)+1/3+1/4", "1/randint(3,10)+7/12"); + assert_parsed_expression_simplify_to("randint(3,10)+randint(3,10)", "randint(3,10)+randint(3,10)"); + assert_parsed_expression_simplify_to("randint(3,10)-randint(3,10)", "-randint(3,10)+randint(3,10)"); + assert_parsed_expression_simplify_to("1/randint(3,10)+1/3+1/4+1/randint(3,10)", "1/randint(3,10)+1/randint(3,10)+7/12"); + assert_parsed_expression_simplify_to("randint(3,10)×randint(3,10)", "randint(3,10)×randint(3,10)"); + assert_parsed_expression_simplify_to("randint(3,10)/randint(3,10)", "randint(3,10)/randint(3,10)"); + assert_parsed_expression_simplify_to("3^randint(3,10)×3^randint(3,10)", "3^randint(3,10)×3^randint(3,10)"); + assert_parsed_expression_simplify_to("randint(3,10)×ln(2)×3+randint(3,10)×ln(2)×5", "5×ln(2)×randint(3,10)+3×ln(2)×randint(3,10)"); +}