1
1
using Random: shuffle, seed!
2
2
using SymbolicUtils
3
- using SymbolicUtils: getdepth, Rewriters, Term
3
+ using SymbolicUtils: getdepth, Rewriters, Term, unwrap_const
4
4
5
5
include (" utils.jl" )
6
6
23
23
@syms a:: Integer b c d x:: Real y:: Number
24
24
@eqtest simplify (Term {Real} (conj, [x])) == x
25
25
@eqtest simplify (Term {Real} (real, [x])) == x
26
- @eqtest simplify (Term {Real} (imag, [x])) == 0
26
+ @eqtest unwrap_const ( simplify (Term {Real} (imag, [x]) )) == 0
27
27
@eqtest simplify (Term {Real} (imag, [y])) == imag (y)
28
28
@eqtest simplify (x - y) == x + - 1 * y
29
29
@eqtest simplify (x - sin (y)) == x + - 1 * sin (y)
47
47
@eqtest simplify (a * b * 1 * c * d) == simplify (a * b * c * d)
48
48
@eqtest simplify_fractions (x^ 2.0 / (x * y)^ 2.0 ) == simplify_fractions (1 / (y^ 2.0 ))
49
49
50
- @test simplify (Term (one, [a])) == 1
51
- @test simplify (Term (one, [b + 1 ])) == 1
52
- @test simplify (Term (one, [x + 2 ])) == 1
50
+ @test unwrap_const ( simplify (Term (one, [a]) )) == 1
51
+ @test unwrap_const ( simplify (Term (one, [b + 1 ]) )) == 1
52
+ @test unwrap_const ( simplify (Term (one, [x + 2 ]) )) == 1
53
53
54
54
55
- @test simplify (Term (zero, [a])) == 0
56
- @test simplify (Term (zero, [b + 1 ])) == 0
57
- @test simplify (Term (zero, [x + 2 ])) == 0
55
+ @test unwrap_const ( simplify (Term (zero, [a]) )) == 0
56
+ @test unwrap_const ( simplify (Term (zero, [b + 1 ]) )) == 0
57
+ @test unwrap_const ( simplify (Term (zero, [x + 2 ]) )) == 0
58
58
end
59
59
60
60
@testset " LiteralReal" begin
74
74
75
75
@eqtest simplify (a < 0 ) == (a < 0 )
76
76
@eqtest simplify (0 < a) == (0 < a)
77
- @eqtest simplify ((0 < a) | true ) == true
78
- @eqtest simplify (true | (0 < a)) == true
77
+ @eqtest unwrap_const ( simplify ((0 < a) | true ) ) == true
78
+ @eqtest unwrap_const ( simplify (true | (0 < a) )) == true
79
79
@eqtest simplify ((0 < a) & true ) == (0 < a)
80
80
@eqtest simplify (true & (0 < a)) == (0 < a)
81
- @eqtest simplify (false & (0 < a)) == false
82
- @eqtest simplify ((0 < a) & false ) == false
83
- @eqtest simplify (Term {Bool} (! , [true ])) == false
84
- @eqtest simplify (Term {Bool} (| , [false , true ])) == true
81
+ @eqtest unwrap_const ( simplify (false & (0 < a) )) == false
82
+ @eqtest unwrap_const ( simplify ((0 < a) & false ) ) == false
83
+ @eqtest unwrap_const ( simplify (Term {Bool} (! , [true ]) )) == false
84
+ @eqtest unwrap_const ( simplify (Term {Bool} (| , [false , true ]) )) == true
85
85
@eqtest simplify (ifelse (true , a, b)) == a
86
86
@eqtest simplify (ifelse (false , a, b)) == b
87
87
95
95
@testset " Pythagorean Identities" begin
96
96
@syms a:: Integer x:: Real y:: Number
97
97
98
- @test simplify (cos (x)^ 2 + 1 + sin (x)^ 2 ) == 2
99
- @test simplify (cos (y)^ 2 + 1 + sin (y)^ 2 ) == 2
100
- @test simplify (sin (y)^ 2 + cos (y)^ 2 + 1 ) == 2
98
+ @test unwrap_const ( simplify (cos (x)^ 2 + 1 + sin (x)^ 2 ) ) == 2
99
+ @test unwrap_const ( simplify (cos (y)^ 2 + 1 + sin (y)^ 2 ) ) == 2
100
+ @test unwrap_const ( simplify (sin (y)^ 2 + cos (y)^ 2 + 1 ) ) == 2
101
101
102
102
@eqtest simplify (1 + y + tan (x)^ 2 ) == sec (x)^ 2 + y
103
103
@eqtest simplify (1 + y + cot (x)^ 2 ) == csc (x)^ 2 + y
104
104
@eqtest simplify (cos (x)^ 2 - 1 ) == - sin (x)^ 2
105
105
@eqtest simplify (sin (x)^ 2 - 1 ) == - cos (x)^ 2
106
106
107
- @eqtest simplify (cosh (x)^ 2 + 1 - sinh (x)^ 2 ) == 2
108
- @eqtest simplify (cosh (y)^ 2 + 1 - sinh (y)^ 2 ) == 2
109
- @eqtest simplify (- sinh (y)^ 2 + cosh (y)^ 2 + 1 ) == 2
107
+ @eqtest unwrap_const ( simplify (cosh (x)^ 2 + 1 - sinh (x)^ 2 ) ) == 2
108
+ @eqtest unwrap_const ( simplify (cosh (y)^ 2 + 1 - sinh (y)^ 2 ) ) == 2
109
+ @eqtest unwrap_const ( simplify (- sinh (y)^ 2 + cosh (y)^ 2 + 1 ) ) == 2
110
110
111
111
@eqtest simplify (cosh (x)^ 2 - 1 ) == sinh (x)^ 2
112
112
@eqtest simplify (sinh (x)^ 2 + 1 ) == cosh (x)^ 2
@@ -128,17 +128,17 @@ end
128
128
@syms a:: Real b:: Real
129
129
@eqtest simplify (exp (a) * exp (b)) == simplify (exp (a + b))
130
130
@eqtest simplify (exp (a) * exp (a)) == simplify (exp (2 a))
131
- @test simplify (exp (a) * exp (- a)) == 1
131
+ @test unwrap_const ( simplify (exp (a) * exp (- a) )) == 1
132
132
@eqtest simplify (exp (a)^ 2 ) == simplify (exp (2 a))
133
133
@eqtest simplify (exp (a) * a * exp (b)) == simplify (a * exp (a + b))
134
- @eqtest simplify (one (Int)^ a) == 1
135
- @eqtest simplify (one (Complex{Float64})^ a) == 1
134
+ @eqtest unwrap_const ( simplify (one (Int)^ a) ) == 1
135
+ @eqtest unwrap_const ( simplify (one (Complex{Float64})^ a) ) == 1
136
136
@eqtest simplify (a^ b * 1 ^ a) == a^ b
137
137
end
138
138
139
139
@testset " simplify_fractions" begin
140
140
@syms x y z
141
- @eqtest simplify (2 * ((y + z) / x) - 2 * y / x - z / x * 2 ) == 0
141
+ @eqtest unwrap_const ( simplify (2 * ((y + z) / x) - 2 * y / x - z / x * 2 ) ) == 0
142
142
end
143
143
144
144
@testset " Depth" begin
0 commit comments