@@ -129,6 +129,29 @@ function test_functions_convert_ScalarQuadraticFunction()
129129 )
130130end
131131
132+ function test_VectorQuadraticFunction_constructor ()
133+ x = MOI. VariableIndex .(1 : 2 )
134+ expr1 = dot (1.0 * x, x) + dot ([2.0 , 3.0 ], x) + 4.2
135+ expr2 = dot (3.0 * x, x) + dot ([1.0 , 3.0 ], x) + 1.2
136+ f = MOI. VectorQuadraticFunction ([expr1, expr2])
137+ f_vec = MOI. Utilities. vectorize ([expr1, expr2])
138+ @test f ≈ f_vec
139+ @test MOI. output_dimension (f) == 2
140+ @test f. constants == [4.2 , 1.2 ]
141+ @test f. quadratic_terms == [
142+ MOI. VectorQuadraticTerm (1 , MOI. ScalarQuadraticTerm (2.0 , x[1 ], x[1 ])),
143+ MOI. VectorQuadraticTerm (1 , MOI. ScalarQuadraticTerm (2.0 , x[2 ], x[2 ])),
144+ MOI. VectorQuadraticTerm (2 , MOI. ScalarQuadraticTerm (6.0 , x[1 ], x[1 ])),
145+ MOI. VectorQuadraticTerm (2 , MOI. ScalarQuadraticTerm (6.0 , x[2 ], x[2 ])),
146+ ]
147+ @test f. affine_terms == [
148+ MOI. VectorAffineTerm (1 , MOI. ScalarAffineTerm (2.0 , x[1 ])),
149+ MOI. VectorAffineTerm (1 , MOI. ScalarAffineTerm (3.0 , x[2 ])),
150+ MOI. VectorAffineTerm (2 , MOI. ScalarAffineTerm (1.0 , x[1 ])),
151+ MOI. VectorAffineTerm (2 , MOI. ScalarAffineTerm (3.0 , x[2 ])),
152+ ]
153+ end
154+
132155function test_isapprox_VectorOfVariables ()
133156 x = MOI. VariableIndex (1 )
134157 y = MOI. VariableIndex (2 )
0 commit comments