Numworks Epsilon  1.4.1
Graphing Calculator Operating System
addition.cpp
Go to the documentation of this file.
1 #include <quiz.h>
2 #include <poincare.h>
3 #include <ion.h>
4 #include <assert.h>
5 #include "helper.h"
6 
7 using namespace Poincare;
8 
9 QUIZ_CASE(poincare_addition_evaluate) {
12 
15 
16 #if MATRICES_ARE_DEFINED
18  assert_parsed_expression_evaluates_to("[[1,2][3,4][5,6]]+3", c, 3, 2);
19 
21  assert_parsed_expression_evaluates_to("[[1,2+I][3,4][5,6]]+3+I", d, 3, 2);
22 
23  assert_parsed_expression_evaluates_to("3+[[1,2][3,4][5,6]]", c, 3, 2);
24 
25  assert_parsed_expression_evaluates_to("3+I+[[1,2+I][3,4][5,6]]", d, 3, 2);
26 
28  assert_parsed_expression_evaluates_to("[[1,2][3,4][5,6]]+[[1,2][3,4][5,6]]", e, 3, 2);
29 
31  assert_parsed_expression_evaluates_to("[[1,2+I][3,4][5,6]]+[[1,2+I][3,4][5,6]]", f, 3, 2);
32 #endif
33 }
34 
35 QUIZ_CASE(poincare_addition_simplify) {
38  assert_parsed_expression_simplify_to("1+2+3+4+5+6+7", "28");
39  assert_parsed_expression_simplify_to("1+2+3+4+5+A+6+7", "28+A");
41  assert_parsed_expression_simplify_to("2+13cos(2)-23cos(2)", "2-10*cos(2)");
42  assert_parsed_expression_simplify_to("1+1+ln(2)+(5+3*2)/9-4/7+1/98", "(2347+882*ln(2))/882");
43  assert_parsed_expression_simplify_to("1+2+0+cos(2)", "3+cos(2)");
44  assert_parsed_expression_simplify_to("-5P+3P", "-2*P");
45  assert_parsed_expression_simplify_to("1-3+A-5+2A-4A", "(-7)-A");
48  assert_parsed_expression_simplify_to("A-A+2cos(2)+B-B-cos(2)", "cos(2)");
49  assert_parsed_expression_simplify_to("1+A+2+B+3", "6+A+B");
51  assert_parsed_expression_simplify_to("1/(x+1)+1/(P+2)", "(3+x+P)/(2+2*x+P+x*P)");
52  assert_parsed_expression_simplify_to("1/x^2+1/(x^2*P)", "(1+P)/(x^2*P)");
53  assert_parsed_expression_simplify_to("1/x^2+1/(x^3*P)", "(1+x*P)/(x^3*P)");
54  assert_parsed_expression_simplify_to("4x/x^2+3P/(x^3*P)", "(3+4*x^2)/x^3");
56  assert_parsed_expression_simplify_to("A+B+(-1)*A+(-1)*B", "0");
57  assert_parsed_expression_simplify_to("3^(1/2)+2^(-2*3^(1/2)*X^P)/2", "(1+2*2^(2*R(3)*X^P)*R(3))/(2*2^(2*R(3)*X^P))");
58 }
static Complex< T > Cartesian(T a, T b)
Definition: complex.cpp:28
c(generic_all_nodes)
void assert_parsed_expression_simplify_to(const char *expression, const char *simplifiedExpression, Expression::AngleUnit angleUnit)
Definition: helper.cpp:90
void assert_parsed_expression_evaluates_to(const char *expression, Complex< T > *results, int numberOfRows, int numberOfColumns, Expression::AngleUnit angleUnit)
Definition: helper.cpp:69
static Complex< T > Float(T x)
Definition: complex.cpp:23
QUIZ_CASE(poincare_addition_evaluate)
Definition: addition.cpp:9