Numworks Epsilon
1.4.1
Graphing Calculator Operating System
simplify_mix.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
#if POINCARE_TESTS_PRINT_EXPRESSIONS
7
#include "../src/expression_debug.h"
8
#include <iostream>
9
using namespace
std;
10
#endif
11
12
using namespace
Poincare
;
13
14
QUIZ_CASE
(poincare_simplify_mix) {
15
16
// Root at denominator
17
assert_parsed_expression_simplify_to
(
"1/(R(2)+R(3))"
,
"(-R(2))+R(3)"
);
18
assert_parsed_expression_simplify_to
(
"1/(5+R(3))"
,
"(5-R(3))/22"
);
19
assert_parsed_expression_simplify_to
(
"1/(R(2)+4)"
,
"(4-R(2))/14"
);
20
assert_parsed_expression_simplify_to
(
"1/(2R(2)-4)"
,
"((-2)-R(2))/4"
);
21
assert_parsed_expression_simplify_to
(
"1/(-2R(2)+4)"
,
"(2+R(2))/4"
);
22
assert_parsed_expression_simplify_to
(
"45^2"
,
"2025"
);
23
assert_parsed_expression_simplify_to
(
"1/(R(2)ln(3))"
,
"R(2)/(2*ln(3))"
);
24
assert_parsed_expression_simplify_to
(
"R(3/2)"
,
"R(6)/2"
);
25
26
// Common operation mix
27
assert_parsed_expression_simplify_to
(
"(R(2)*P + R(2)*X)/R(2)"
,
"P+X"
);
28
assert_parsed_expression_simplify_to
(
"P+(3R(2)-2R(3))/25"
,
"(3*R(2)-2*R(3)+25*P)/25"
);
29
assert_parsed_expression_simplify_to
(
"ln(2+3)"
,
"ln(5)"
);
30
assert_parsed_expression_simplify_to
(
"3*A*B*C+4*cos(2)-2*A*B*C+A*B*C+ln(3)+4*A*B-5*A*B*C+cos(3)*ln(5)+cos(2)-45*cos(2)"
,
"(-40*cos(2))+ln(3)+cos(3)*ln(5)+4*A*B-3*A*B*C"
);
31
assert_parsed_expression_simplify_to
(
"2*A+3*cos(2)+3+4*ln(5)+5*A+2*ln(5)+1+0"
,
"4+3*cos(2)+6*ln(5)+7*A"
);
32
assert_parsed_expression_simplify_to
(
"2.3*A+3*cos(2)+3+4*ln(5)+5*A+2*ln(5)+1.2+0.235"
,
"(887+600*cos(2)+1200*ln(5)+1460*A)/200"
);
33
assert_parsed_expression_simplify_to
(
"2*A*B*C+2.3*A*B+3*A^2+5.2*A*B*C+4*A^2"
,
"(70*A^2+23*A*B+72*A*B*C)/10"
);
34
assert_parsed_expression_simplify_to
(
"(A*B)^2*A+4*A^3"
,
"4*A^3+A^3*B^2"
);
35
assert_parsed_expression_simplify_to
(
"(A*3)^2*A+4*A^3"
,
"13*A^3"
);
36
assert_parsed_expression_simplify_to
(
"A^2^2*A+4*A^3"
,
"4*A^3+A^5"
);
37
assert_parsed_expression_simplify_to
(
"0.5+4*A*B-2.3+2*A*B-2*B*A^C-cos(4)+2*A^C*B+A*B*C*D"
,
"((-9)-5*cos(4)+30*A*B+5*A*B*C*D)/5"
);
38
assert_parsed_expression_simplify_to
(
"(1+R(2))/5"
,
"(1+R(2))/5"
);
39
assert_parsed_expression_simplify_to
(
"(2+R(6))^2"
,
"10+4*R(6)"
);
40
assert_parsed_expression_simplify_to
(
"tan(3)ln(2)+P"
,
"tan(3)*ln(2)+P"
);
41
42
43
//assert_parsed_expression_simplify_to("log(cos(9)^ln(6), cos(9))", "ln(2)+ln(3)"); // TODO: for this to work, we must know the sign of cos(9)
44
//assert_parsed_expression_simplify_to("log(cos(9)^ln(6), 9)", "ln(6)*log(cos(9), 9)"); // TODO: for this to work, we must know the sign of cos(9)
45
assert_parsed_expression_simplify_to
(
"(((R(6)-R(2))/4)/((R(6)+R(2))/4))+1"
,
"3-R(3)"
);
46
//assert_parsed_expression_simplify_to("1/R(I) * (R(2)-I*R(2))", "-2I"); // TODO: get rid of complex at denominator?
47
48
}
poincare.h
ion.h
QUIZ_CASE
QUIZ_CASE(poincare_simplify_mix)
Definition:
simplify_mix.cpp:14
Poincare
Definition:
absolute_value.h:8
assert.h
assert_parsed_expression_simplify_to
void assert_parsed_expression_simplify_to(const char *expression, const char *simplifiedExpression, Expression::AngleUnit angleUnit)
Definition:
helper.cpp:90
quiz.h
helper.h
epsilon
poincare
test
simplify_mix.cpp
Generated by
1.8.14