|
68 | 68 | @testset "Solving in terms of a constant var" begin |
69 | 69 | eq = ((s^2 + 1)/(s^2 + 2*s + 1)) - ((s^2 + a)/(b*c*s^2 + (b+c)*s + d)) |
70 | 70 | calcd_roots = sort_arr(Symbolics.solve_interms_ofvar(eq, s), [a,b,c,d]) |
| 71 | + solve_roots = sort_arr(symbolic_solve(eq, [a,b,c,d]), [a,b,c,d]) |
71 | 72 | known_roots = sort_arr([Dict(a=>1, b=>1, c=>1, d=>1)], [a,b,c,d]) |
72 | 73 | @test check_approx(calcd_roots, known_roots) |
| 74 | + @test check_approx(solve_roots, known_roots) |
73 | 75 |
|
74 | 76 | eq = (a+b)*s^2 - 2s^2 + 2*b*s - 3*s |
75 | 77 | calcd_roots = sort_arr(Symbolics.solve_interms_ofvar(eq, s), [a,b]) |
| 78 | + solve_roots = sort_arr(symbolic_solve(eq, [a,b]), [a,b]) |
76 | 79 | known_roots = sort_arr([Dict(a=>1/2, b=>3/2)], [a,b]) |
77 | 80 | @test check_approx(calcd_roots, known_roots) |
| 81 | + @test check_approx(solve_roots, known_roots) |
78 | 82 |
|
79 | 83 | eq = (a*x^2+b)*s^2 - 2s^2 + 2*b*s - 3*s + 2(x^2)*(s^3) + 10*s^3 |
80 | | - calcd_roots = sort_arr(Symbolics.solve_interms_ofvar(eq, s), [a,b]) |
| 84 | + calcd_roots = sort_arr(Symbolics.solve_interms_ofvar(eq, s), [a,b,x]) |
| 85 | + solve_roots = sort_arr(symbolic_solve(eq, [a,b,x]), [a,b,x]) |
81 | 86 | known_roots = sort_arr([Dict(a=>-1/10, b=>3/2, x=>-im*sqrt(5)), Dict(a=>-1/10, b=>3/2, x=>im*sqrt(5))], [a,b,x]) |
82 | 87 | @test check_approx(calcd_roots, known_roots) |
| 88 | + @test check_approx(solve_roots, known_roots) |
83 | 89 | end |
84 | 90 |
|
85 | 91 | @testset "Invalid input" begin |
@@ -345,14 +351,18 @@ end |
345 | 351 | @testset "Post Process roots" begin |
346 | 352 | SymbolicUtils.@syms __x |
347 | 353 | __symsqrt(x) = SymbolicUtils.term(ssqrt, x) |
| 354 | + term = SymbolicUtils.term |
348 | 355 | @test Symbolics.postprocess_root(2 // 1) == 2 && Symbolics.postprocess_root(2 + 0*im) == 2 |
349 | 356 | @test Symbolics.postprocess_root(__symsqrt(4)) == 2 |
350 | 357 | @test isequal(Symbolics.postprocess_root(__symsqrt(__x)^2), __x) |
351 | 358 |
|
352 | | - @test Symbolics.postprocess_root( SymbolicUtils.term(^, __x, 0) ) == 1 |
353 | | - @test Symbolics.postprocess_root( SymbolicUtils.term(^, Base.MathConstants.e, 0) ) == 1 |
354 | | - @test Symbolics.postprocess_root( SymbolicUtils.term(^, Base.MathConstants.pi, 1) ) == Base.MathConstants.pi |
355 | | - @test isequal(Symbolics.postprocess_root( SymbolicUtils.term(^, __x, 1) ), __x) |
| 359 | + |
| 360 | + @test isequal(Symbolics.postprocess_root(term(^, 0, __x)), 0) |
| 361 | + @test_broken isequal(Symbolics.postprocess_root(term(/, __x, 0)), Inf) |
| 362 | + @test Symbolics.postprocess_root(term(^, __x, 0) ) == 1 |
| 363 | + @test Symbolics.postprocess_root(term(^, Base.MathConstants.e, 0) ) == 1 |
| 364 | + @test Symbolics.postprocess_root(term(^, Base.MathConstants.pi, 1) ) == Base.MathConstants.pi |
| 365 | + @test isequal(Symbolics.postprocess_root(term(^, __x, 1) ), __x) |
356 | 366 |
|
357 | 367 | x = Symbolics.term(sqrt, 2) |
358 | 368 | @test isequal(Symbolics.postprocess_root( expand((x + 1)^4) ), 17 + 12x) |
|
416 | 426 | lhs = ia_solve(a*x^b + c, x)[1] |
417 | 427 | lhs2 = symbolic_solve(a*x^b + c, x)[1] |
418 | 428 | rhs = Symbolics.term(^, -c.val/a.val, 1/b.val) |
419 | | - #@test isequal(lhs, rhs) |
| 429 | + @test_broken isequal(lhs, rhs) |
| 430 | + |
| 431 | + @test isequal(symbolic_solve(2/x, x)[1], Inf) |
| 432 | + @test isequal(symbolic_solve(x^1.5, x)[1], 0) |
420 | 433 |
|
421 | 434 | lhs = symbolic_solve(log(a*x)-b,x)[1] |
422 | 435 | @test isequal(Symbolics.unwrap(Symbolics.ssubs(lhs, Dict(a=>1, b=>1))), 1E) |
|
0 commit comments