@@ -2,6 +2,7 @@ module TestConstraint
22
33using Test
44
5+ import StarAlgebras as SA
56using MultivariatePolynomials
67const MP = MultivariatePolynomials
78import MultivariateBases as MB
@@ -13,7 +14,10 @@ using PolyJuMP
1314include (" utilities.jl" )
1415include (" testpolymodule.jl" )
1516
16- _isequal (p, q) = all (JuMP. isequal_canonical .(coefficients (p), coefficients (q)))
17+ _coeffs (p:: MP.AbstractPolynomialLike ) = coefficients (p)
18+ _coeffs (a:: SA.AlgebraElement ) = SA. coeffs (a, MB. explicit_basis (a))
19+
20+ _isequal (p, q) = all (JuMP. isequal_canonical .(_coeffs (p), _coeffs (q)))
1721function _isequal (x:: AbstractArray , y:: AbstractArray )
1822 return size (x) == size (y) && all (_isequal .(x, y))
1923end
@@ -25,16 +29,18 @@ _con_constant(a) = a
2529# `MOI.Utilities.Model` canonicalizes the constraints so we need to
2630# canonicalize them as well for the printing tests.
2731function _canon (model, p:: MP.AbstractPolynomialLike )
28- return MP. polynomial (
29- map (MP. terms (p)) do t
30- coef = _con_constant (MP. coefficient (t))
31- moi = JuMP. moi_function (coef)
32- jump = JuMP. jump_function (model, MOI. Utilities. canonical (moi))
33- return MP. term (jump, MP. monomial (t))
34- end ,
32+ return MB. algebra_element (
33+ MP. polynomial (
34+ map (MP. terms (p)) do t
35+ coef = _con_constant (MP. coefficient (t))
36+ moi = JuMP. moi_function (coef)
37+ jump = JuMP. jump_function (model, MOI. Utilities. canonical (moi))
38+ return MP. term (jump, MP. monomial (t))
39+ end ,
40+ ),
3541 )
3642end
37- _canon (model, p:: Matrix ) = _canon .(model, p)
43+ _canon (model, p:: Matrix ) = MP . polynomial .( _canon .(model, p) )
3844
3945function _test_constraint (
4046 m,
@@ -150,9 +156,9 @@ function test_printing(var)
150156 in_sym = Sys. iswindows () ? " in" : " ∈"
151157 eqref = @constraint (m, p == q)
152158 @test sprint (show, MIME " text/plain" (), eqref) ==
153- " (-α)y² + (α - β)xy + (-α + β)x² $in_sym PolyJuMP.ZeroPoly()"
159+ " (-α)· y² + (α - β)· xy + (-α + β)· x² $in_sym PolyJuMP.ZeroPoly()"
154160 @test sprint (show, MIME " text/latex" (), eqref) ==
155- " \$\$ (-α)y^{2} + (α - β)xy + (-α + β)x^{2} \\ in PolyJuMP.ZeroPoly() \$\$ "
161+ " \$\$ (-α) \\ cdot y^{2} + (α - β) \\ cdot xy + (-α + β) \\ cdot x^{2} \\ in PolyJuMP.ZeroPoly() \$\$ "
156162 sdref = @constraint (m, [p q; q p] in PSDCone ())
157163 @test sprint (show, MIME " text/plain" (), sdref) ==
158164 " [(α)xy + (β)x² (α)y² + (β)xy + (α)x²;\n (α)y² + (β)xy + (α)x² (α)xy + (β)x²] $in_sym $DummyPolyModule .DummyPosDefMatrix()"
0 commit comments