@@ -3898,46 +3898,38 @@ function setup_test(
38983898    return 
38993899end 
39003900
3901- function  test_linear_complex_Zeros (optimizer, config:: Config{T} ) where  {T}
3902-     atol =  config. atol
3903-     rtol =  config. rtol
3901+ """ 
3902+     test_linear_complex_Zeros(model::MOI.ModelLike, config::Config{T}) where {T} 
39043903
3905-     MOI. empty! (optimizer)
3906-     o =  one (T)
3907-     t =  2 o
3908-     x, cx =  MOI. add_constrained_variables (optimizer, MOI. Nonnegatives (2 ))
3909-     func =  (o +  t *  im) *  x[1 ] +  (o -  o *  im) *  x[2 ] +  (- o +  - o *  im)
3910-     c =  MOI. add_constraint (
3911-         optimizer,
3912-         MOI. Utilities. operate (vcat, Complex{T}, func),
3913-         MOI. Zeros (1 ),
3904+ Run an integration test on complex-valued affine constraints in Zeros. 
3905+ """ 
3906+ function  test_linear_complex_Zeros (
3907+     model:: MOI.ModelLike ,
3908+     config:: Config{T} ,
3909+ ) where  {T}
3910+     @requires  _supports (config, MOI. optimize!)
3911+     @requires  MOI. supports_constraint (
3912+         model,
3913+         MOI. VectorAffineFunction{Complex{T}},
3914+         MOI. Zeros,
39143915    )
3915-     if  _supports (config, MOI. optimize!)
3916-         @test  MOI. get (optimizer, MOI. TerminationStatus ()) == 
3917-               MOI. OPTIMIZE_NOT_CALLED
3918-         MOI. optimize! (optimizer)
3919-         @test  MOI. get (optimizer, MOI. TerminationStatus ()) == 
3920-               config. optimal_status
3921-         @test  ≈ (
3922-             MOI. get (optimizer, MOI. VariablePrimal (), x),
3923-             [T (2 ) /  T (3 ), T (1 ) /  T (3 )],
3924-             config,
3925-         )
3926-         @test  ≈ (
3927-             MOI. get (optimizer, MOI. ConstraintPrimal (), cx),
3928-             [T (2 ) /  T (3 ), T (1 ) /  T (3 )],
3929-             config,
3930-         )
3931-         z =  [zero (Complex{T})]
3932-         @test  ≈ (MOI. get (optimizer, MOI. ConstraintPrimal (), c), z, config)
3933-         if  _supports (config, MOI. ConstraintDual)
3934-             @test  ≈ (
3935-                 MOI. get (optimizer, MOI. ConstraintDual (), cx),
3936-                 zeros (T, 2 ),
3937-                 config,
3938-             )
3939-             @test  ≈ (MOI. get (optimizer, MOI. ConstraintDual (), c), z, config)
3940-         end 
3916+     x, cx =  MOI. add_constrained_variables (model, MOI. Nonnegatives (2 ))
3917+     scalar_f = 
3918+         (T (1 ) +  T (2 ) *  im) *  x[1 ] +  (T (1 ) -  T (1 ) *  im) *  x[2 ] - 
3919+         (T (1 ) +  T (1 ) *  im)
3920+     vector_f =  MOI. Utilities. operate (vcat, Complex{T}, scalar_f)
3921+     c =  MOI. add_constraint (model, vector_f, MOI. Zeros (1 ))
3922+     @test  MOI. get (model, MOI. TerminationStatus ()) ==  MOI. OPTIMIZE_NOT_CALLED
3923+     MOI. optimize! (model)
3924+     @test  MOI. get (model, MOI. TerminationStatus ()) ==  config. optimal_status
3925+     primal =  [T (2 ) /  T (3 ), T (1 ) /  T (3 )]
3926+     @test  ≈ (MOI. get (model, MOI. VariablePrimal (), x), primal, config)
3927+     @test  ≈ (MOI. get (model, MOI. ConstraintPrimal (), cx), primal, config)
3928+     z =  [zero (Complex{T})]
3929+     @test  ≈ (MOI. get (model, MOI. ConstraintPrimal (), c), z, config)
3930+     if  _supports (config, MOI. ConstraintDual)
3931+         @test  ≈ (MOI. get (model, MOI. ConstraintDual (), cx), T[0 , 0 ], config)
3932+         @test  ≈ (MOI. get (model, MOI. ConstraintDual (), c), z, config)
39413933    end 
39423934    return 
39433935end 
@@ -3961,43 +3953,42 @@ function setup_test(
39613953    return 
39623954end 
39633955
3956+ version_added (:: typeof (test_linear_complex_Zeros)) =  v " 1.7.0" 
3957+ 
3958+ """ 
3959+     test_linear_complex_Zeros_duplicate( 
3960+         model::MOI.ModelLike, 
3961+         config::Config{T}, 
3962+     ) where {T} 
3963+ 
3964+ Run an integration test on complex-valued affine constraints in Zeros. 
3965+ """ 
39643966function  test_linear_complex_Zeros_duplicate (
3965-     optimizer ,
3967+     model :: MOI.ModelLike ,
39663968    config:: Config{T} ,
39673969) where  {T}
3968-     atol =  config. atol
3969-     rtol =  config. rtol
3970- 
3971-     MOI. empty! (optimizer)
3972-     o =  one (T)
3973-     t =  2 o
3974-     x, cx =  MOI. add_constrained_variables (optimizer, MOI. Nonnegatives (1 ))
3975-     func = 
3976-         (o +  zero (T) *  im) *  x[1 ] +  o *  im *  x[1 ] -  t *  im - 
3977-         (o +  zero (T) *  im) *  x[1 ]
3978-     c =  MOI. add_constraint (
3979-         optimizer,
3980-         MOI. Utilities. operate (vcat, Complex{T}, func),
3981-         MOI. Zeros (1 ),
3970+     @requires  _supports (config, MOI. optimize!)
3971+     @requires  MOI. supports_constraint (
3972+         model,
3973+         MOI. VectorAffineFunction{Complex{T}},
3974+         MOI. Zeros,
39823975    )
3983-     if  _supports (config, MOI. optimize!)
3984-         @test  MOI. get (optimizer, MOI. TerminationStatus ()) == 
3985-               MOI. OPTIMIZE_NOT_CALLED
3986-         MOI. optimize! (optimizer)
3987-         @test  MOI. get (optimizer, MOI. TerminationStatus ()) == 
3988-               config. optimal_status
3989-         @test  ≈ (MOI. get (optimizer, MOI. VariablePrimal (), x), T[2 ], config)
3990-         @test  ≈ (MOI. get (optimizer, MOI. ConstraintPrimal (), cx), T[2 ], config)
3991-         z =  [zero (Complex{T})]
3992-         @test  ≈ (MOI. get (optimizer, MOI. ConstraintPrimal (), c), z, config)
3993-         if  _supports (config, MOI. ConstraintDual)
3994-             @test  ≈ (
3995-                 MOI. get (optimizer, MOI. ConstraintDual (), cx),
3996-                 zeros (T, 1 ),
3997-                 config,
3998-             )
3999-             @test  ≈ (MOI. get (optimizer, MOI. ConstraintDual (), c), z, config)
4000-         end 
3976+     x, cx =  MOI. add_constrained_variables (model, MOI. Nonnegatives (1 ))
3977+     scalar_f = 
3978+         (T (1 ) +  T (0 ) *  im) *  x[1 ] +  T (1 ) *  im *  x[1 ] -  T (2 ) *  im - 
3979+         (T (1 ) +  T (0 ) *  im) *  x[1 ]
3980+     vector_f =  MOI. Utilities. operate (vcat, Complex{T}, scalar_f)
3981+     c =  MOI. add_constraint (model, vector_f, MOI. Zeros (1 ))
3982+     @test  MOI. get (model, MOI. TerminationStatus ()) ==  MOI. OPTIMIZE_NOT_CALLED
3983+     MOI. optimize! (model)
3984+     @test  MOI. get (model, MOI. TerminationStatus ()) ==  config. optimal_status
3985+     @test  ≈ (MOI. get (model, MOI. VariablePrimal (), x), T[2 ], config)
3986+     @test  ≈ (MOI. get (model, MOI. ConstraintPrimal (), cx), T[2 ], config)
3987+     z =  [zero (Complex{T})]
3988+     @test  ≈ (MOI. get (model, MOI. ConstraintPrimal (), c), z, config)
3989+     if  _supports (config, MOI. ConstraintDual)
3990+         @test  ≈ (MOI. get (model, MOI. ConstraintDual (), cx), T[0 ], config)
3991+         @test  ≈ (MOI. get (model, MOI. ConstraintDual (), c), z, config)
40013992    end 
40023993    return 
40033994end 
@@ -4021,6 +4012,8 @@ function setup_test(
40214012    return 
40224013end 
40234014
4015+ version_added (:: typeof (test_linear_complex_Zeros_duplicate)) =  v " 1.7.0" 
4016+ 
40244017""" 
40254018    test_linear_open_intervals( 
40264019        model::MOI.ModelLike, 
0 commit comments