|
587 | 587 | @test evaluate(op2) == Zero(Upper(1), Lower(2)) |
588 | 588 | end |
589 | 589 |
|
| 590 | +@testset "evaluate product of powers with same base" begin |
| 591 | + l = dc.Power(Variable("a", Upper(1)), 2) |
| 592 | + r1 = dc.Power(Variable("a", Upper(1)), 3) |
| 593 | + r2 = dc.Power(Variable("a", Upper(1)), -2) |
| 594 | + r3 = dc.Power(Variable("a", Upper(1)), -2) |
| 595 | + |
| 596 | + for r ∈ (r1, r2, r3) |
| 597 | + op1 = dc.BinaryOperation{dc.Mult}(l, r) |
| 598 | + op2 = dc.BinaryOperation{dc.Mult}(r, l) |
| 599 | + |
| 600 | + @test evaluate(op1) == dc.Power(Variable("a", Upper(1)), l.exponent + r.exponent) |
| 601 | + @test evaluate(op2) == dc.Power(Variable("a", Upper(1)), l.exponent + r.exponent) |
| 602 | + end |
| 603 | +end |
| 604 | + |
| 605 | +@testset "evaluate product of powers with differing base" begin |
| 606 | + l = dc.Power(Variable("a", Upper(1)), 2) |
| 607 | + r1 = dc.Power(Variable("b", Upper(1)), 3) |
| 608 | + r2 = dc.Power(Variable("a", Upper(2)), -2) |
| 609 | + r3 = dc.Power(Variable("a", Lower(1)), -2) |
| 610 | + |
| 611 | + for r ∈ (r1, r2, r3) |
| 612 | + op1 = dc.BinaryOperation{dc.Mult}(l, r) |
| 613 | + op2 = dc.BinaryOperation{dc.Mult}(r, l) |
| 614 | + |
| 615 | + @test evaluate(op1) == op1 |
| 616 | + @test evaluate(op2) == op2 |
| 617 | + end |
| 618 | +end |
| 619 | + |
590 | 620 | @testset "evaluate product of Zero and power" begin |
591 | 621 | p = dc.Power(Variable("a", Upper(1)), 2) |
592 | 622 | z = Zero(Upper(1)) |
|
0 commit comments