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) {
10
Complex<float>
a[1] = {
Complex<float>::Float
(3.0f)};
11
assert_parsed_expression_evaluates_to
(
"1+2"
, a);
12
13
Complex<double>
b[1] = {
Complex<double>::Cartesian
(6.0, 2.0)};
14
assert_parsed_expression_evaluates_to
(
"2+I+4+I"
, b);
15
16
#if MATRICES_ARE_DEFINED
17
Complex<float>
c
[6] = {
Complex<float>::Float
(4.0f),
Complex<float>::Float
(5.0f),
Complex<float>::Float
(6.0f),
Complex<float>::Float
(7.0f),
Complex<float>::Float
(8.0f),
Complex<float>::Float
(9.0f)};
18
assert_parsed_expression_evaluates_to
(
"[[1,2][3,4][5,6]]+3"
,
c
, 3, 2);
19
20
Complex<double>
d[6] = {
Complex<double>::Cartesian
(4.0, 1.0),
Complex<double>::Cartesian
(5.0, 2.0),
Complex<double>::Cartesian
(6.0, 1.0),
Complex<double>::Cartesian
(7.0, 1.0),
Complex<double>::Cartesian
(8.0, 1.0),
Complex<double>::Cartesian
(9.0, 1.0)};
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
27
Complex<float>
e[6] = {
Complex<float>::Float
(2.0f),
Complex<float>::Float
(4.0f),
Complex<float>::Float
(6.0f),
Complex<float>::Float
(8.0f),
Complex<float>::Float
(10.0f),
Complex<float>::Float
(12.0f)};
28
assert_parsed_expression_evaluates_to
(
"[[1,2][3,4][5,6]]+[[1,2][3,4][5,6]]"
, e, 3, 2);
29
30
Complex<double>
f[6] = {
Complex<double>::Cartesian
(2.0, 0.0),
Complex<double>::Cartesian
(4.0, 2.0),
Complex<double>::Cartesian
(6.0, 0.0),
Complex<double>::Cartesian
(8.0, 0.0),
Complex<double>::Cartesian
(10.0, 0.0),
Complex<double>::Cartesian
(12.0, 0.0)};
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) {
36
assert_parsed_expression_simplify_to
(
"2+1"
,
"3"
);
37
assert_parsed_expression_simplify_to
(
"2+A"
,
"2+A"
);
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"
);
40
assert_parsed_expression_simplify_to
(
"(0+0)"
,
"0"
);
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"
);
46
assert_parsed_expression_simplify_to
(
"1+2"
,
"3"
);
47
assert_parsed_expression_simplify_to
(
"A-A"
,
"0"
);
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"
);
50
assert_parsed_expression_simplify_to
(
"-A"
,
"-A"
);
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"
);
55
assert_parsed_expression_simplify_to
(
"A+B-A-B"
,
"0"
);
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
}
Poincare::Complex::Cartesian
static Complex< T > Cartesian(T a, T b)
Definition:
complex.cpp:28
poincare.h
ion.h
Poincare
Definition:
absolute_value.h:8
assert.h
c
c(generic_all_nodes)
Poincare::Complex
Definition:
complex.h:12
assert_parsed_expression_simplify_to
void assert_parsed_expression_simplify_to(const char *expression, const char *simplifiedExpression, Expression::AngleUnit angleUnit)
Definition:
helper.cpp:90
assert_parsed_expression_evaluates_to
void assert_parsed_expression_evaluates_to(const char *expression, Complex< T > *results, int numberOfRows, int numberOfColumns, Expression::AngleUnit angleUnit)
Definition:
helper.cpp:69
quiz.h
Poincare::Complex::Float
static Complex< T > Float(T x)
Definition:
complex.cpp:23
QUIZ_CASE
QUIZ_CASE(poincare_addition_evaluate)
Definition:
addition.cpp:9
helper.h
epsilon
poincare
test
addition.cpp
Generated by
1.8.14