|
574 | 574 | @test evaluate(op4) == Zero(Upper(1), Lower(3)) |
575 | 575 | end |
576 | 576 |
|
| 577 | +@testset "evaluate product of zero (Real) and product" begin |
| 578 | + a = Variable("a", Upper(1)) |
| 579 | + b = Variable("b", Lower(2)) |
| 580 | + |
| 581 | + p = dc.BinaryOperation{dc.Mult}(a, b) |
| 582 | + |
| 583 | + op1 = dc.BinaryOperation{dc.Mult}(p, 0) |
| 584 | + op2 = dc.BinaryOperation{dc.Mult}(0, p) |
| 585 | + |
| 586 | + @test evaluate(op1) == Zero(Upper(1), Lower(2)) |
| 587 | + @test evaluate(op2) == Zero(Upper(1), Lower(2)) |
| 588 | +end |
| 589 | + |
| 590 | +@testset "evaluate product of Zero and power" begin |
| 591 | + a = Variable("a", Upper(1)) |
| 592 | + b = Variable("b", Lower(2)) |
| 593 | + |
| 594 | + p = dc.BinaryOperation{dc.Mult}(a, b) |
| 595 | + |
| 596 | + op1 = dc.BinaryOperation{dc.Mult}(p, 0) |
| 597 | + op2 = dc.BinaryOperation{dc.Mult}(0, p) |
| 598 | + |
| 599 | + @test evaluate(op1) == Zero(Upper(1), Lower(2)) |
| 600 | + @test evaluate(op2) == Zero(Upper(1), Lower(2)) |
| 601 | +end |
| 602 | + |
| 603 | +@testset "evaluate product of product and real" begin |
| 604 | + a = Variable("a", Upper(1)) |
| 605 | + b = Variable("b", Upper(1)) |
| 606 | + |
| 607 | + function mult(l, r) |
| 608 | + return dc.BinaryOperation{dc.Mult}(l, r) |
| 609 | + end |
| 610 | + |
| 611 | + op1 = mult(mult(a, b), 3) |
| 612 | + op2 = mult(3, mult(a, b)) |
| 613 | + |
| 614 | + @test evaluate(op1) == op2 |
| 615 | + @test evaluate(op2) == op2 |
| 616 | +end |
| 617 | + |
577 | 618 | @testset "evaluate product of products" begin |
578 | 619 | a = Variable("a", Upper(1)) |
579 | 620 | b = Variable("b", Upper(1)) |
|
0 commit comments