File tree Expand file tree Collapse file tree 10 files changed +139
-12
lines changed Expand file tree Collapse file tree 10 files changed +139
-12
lines changed Original file line number Diff line number Diff line change @@ -47,11 +47,15 @@ function MOI.supports_constraint(
47
47
return true
48
48
end
49
49
50
+ MOI. supports (:: Model , :: MOI.ObjectiveFunction ) = false
51
+
50
52
function MOI. supports (
51
- :: Model ,
52
- :: MOI.ObjectiveFunction{MOI.ScalarQuadraticFunction{Float64}} ,
53
- )
54
- return false
53
+ :: Model{T} ,
54
+ :: MOI.ObjectiveFunction {
55
+ <: Union{MOI.VariableIndex,MOI.ScalarAffineFunction{T}} ,
56
+ },
57
+ ) where {T}
58
+ return true
55
59
end
56
60
57
61
"""
Original file line number Diff line number Diff line change @@ -72,6 +72,21 @@ function MOI.supports_constraint(
72
72
return false
73
73
end
74
74
75
+ MOI. supports (:: Model , :: MOI.ObjectiveFunction ) = false
76
+
77
+ function MOI. supports (
78
+ :: Model{T} ,
79
+ :: MOI.ObjectiveFunction {
80
+ <: Union {
81
+ MOI. VariableIndex,
82
+ MOI. ScalarAffineFunction{T},
83
+ MOI. ScalarQuadraticFunction{T},
84
+ },
85
+ },
86
+ ) where {T}
87
+ return true
88
+ end
89
+
75
90
struct Options
76
91
maximum_length:: Int
77
92
warn:: Bool
Original file line number Diff line number Diff line change @@ -99,6 +99,21 @@ function MOI.supports_constraint(
99
99
return false
100
100
end
101
101
102
+ MOI. supports (:: Model , :: MOI.ObjectiveFunction ) = false
103
+
104
+ function MOI. supports (
105
+ :: Model{T} ,
106
+ :: MOI.ObjectiveFunction {
107
+ <: Union {
108
+ MOI. VariableIndex,
109
+ MOI. ScalarAffineFunction{T},
110
+ MOI. ScalarQuadraticFunction{T},
111
+ },
112
+ },
113
+ ) where {T}
114
+ return true
115
+ end
116
+
102
117
@enum (
103
118
QuadraticFormat,
104
119
kQuadraticFormatCPLEX,
Original file line number Diff line number Diff line change @@ -39,15 +39,13 @@ function MOI.supports_constraint(
39
39
return true
40
40
end
41
41
42
- function MOI. supports (:: Model , :: MOI.ObjectiveFunction{MOI.VariableIndex} )
43
- return false
44
- end
42
+ MOI. supports (:: Model , :: MOI.ObjectiveFunction ) = false
45
43
46
44
function MOI. supports (
47
45
:: Model{T} ,
48
- :: MOI.ObjectiveFunction{MOI.ScalarQuadraticFunction {T}} ,
46
+ :: MOI.ObjectiveFunction{MOI.ScalarAffineFunction {T}} ,
49
47
) where {T}
50
- return false
48
+ return true
51
49
end
52
50
53
51
struct Options end
Original file line number Diff line number Diff line change @@ -692,10 +692,20 @@ function test_roundtrip_DualExponentialCone()
692
692
return
693
693
end
694
694
695
- function test_supports_quadratic_objective ()
695
+ function test_unsupported_objectives ()
696
696
model = CBF. Model ()
697
- F = MOI. ScalarQuadraticFunction{Float64}
698
- @test ! MOI. supports (model, MOI. ObjectiveFunction {F} ())
697
+ for (F, ret) in [
698
+ MOI. VariableIndex => true ,
699
+ MOI. ScalarAffineFunction{Float64} => true ,
700
+ MOI. ScalarQuadraticFunction{Float64} => false ,
701
+ MOI. ScalarNonlinearFunction => false ,
702
+ MOI. VectorOfVariables => false ,
703
+ MOI. VectorAffineFunction{Float64} => false ,
704
+ MOI. VectorQuadraticFunction{Float64} => false ,
705
+ MOI. VectorNonlinearFunction => false ,
706
+ ]
707
+ @test MOI. supports (model, MOI. ObjectiveFunction {F} ()) == ret
708
+ end
699
709
return
700
710
end
701
711
Original file line number Diff line number Diff line change @@ -1189,6 +1189,23 @@ function test_int_round_trip()
1189
1189
return
1190
1190
end
1191
1191
1192
+ function test_unsupported_objectives ()
1193
+ model = LP. Model ()
1194
+ for (F, ret) in [
1195
+ MOI. VariableIndex => true ,
1196
+ MOI. ScalarAffineFunction{Float64} => true ,
1197
+ MOI. ScalarQuadraticFunction{Float64} => true ,
1198
+ MOI. ScalarNonlinearFunction => false ,
1199
+ MOI. VectorOfVariables => false ,
1200
+ MOI. VectorAffineFunction{Float64} => false ,
1201
+ MOI. VectorQuadraticFunction{Float64} => false ,
1202
+ MOI. VectorNonlinearFunction => false ,
1203
+ ]
1204
+ @test MOI. supports (model, MOI. ObjectiveFunction {F} ()) == ret
1205
+ end
1206
+ return
1207
+ end
1208
+
1192
1209
end # module
1193
1210
1194
1211
TestLP. runtests ()
Original file line number Diff line number Diff line change @@ -1610,6 +1610,23 @@ function test_AAA_int()
1610
1610
return
1611
1611
end
1612
1612
1613
+ function test_unsupported_objectives ()
1614
+ model = MOF. Model ()
1615
+ for (F, ret) in [
1616
+ MOI. VariableIndex => true ,
1617
+ MOI. ScalarAffineFunction{Float64} => true ,
1618
+ MOI. ScalarQuadraticFunction{Float64} => true ,
1619
+ MOI. ScalarNonlinearFunction => true ,
1620
+ MOI. VectorOfVariables => true ,
1621
+ MOI. VectorAffineFunction{Float64} => true ,
1622
+ MOI. VectorQuadraticFunction{Float64} => true ,
1623
+ MOI. VectorNonlinearFunction => true ,
1624
+ ]
1625
+ @test MOI. supports (model, MOI. ObjectiveFunction {F} ()) == ret
1626
+ end
1627
+ return
1628
+ end
1629
+
1613
1630
end
1614
1631
1615
1632
TestMOF. runtests ()
Original file line number Diff line number Diff line change @@ -1713,6 +1713,23 @@ function test_issue_2797_tab()
1713
1713
return
1714
1714
end
1715
1715
1716
+ function test_unsupported_objectives ()
1717
+ model = MPS. Model ()
1718
+ for (F, ret) in [
1719
+ MOI. VariableIndex => true ,
1720
+ MOI. ScalarAffineFunction{Float64} => true ,
1721
+ MOI. ScalarQuadraticFunction{Float64} => true ,
1722
+ MOI. ScalarNonlinearFunction => false ,
1723
+ MOI. VectorOfVariables => false ,
1724
+ MOI. VectorAffineFunction{Float64} => false ,
1725
+ MOI. VectorQuadraticFunction{Float64} => false ,
1726
+ MOI. VectorNonlinearFunction => false ,
1727
+ ]
1728
+ @test MOI. supports (model, MOI. ObjectiveFunction {F} ()) == ret
1729
+ end
1730
+ return
1731
+ end
1732
+
1716
1733
end # TestMPS
1717
1734
1718
1735
TestMPS. runtests ()
Original file line number Diff line number Diff line change @@ -1377,6 +1377,23 @@ function test_unsupported_variable_types()
1377
1377
return
1378
1378
end
1379
1379
1380
+ function test_unsupported_objectives ()
1381
+ model = NL. Model ()
1382
+ for (F, ret) in [
1383
+ MOI. VariableIndex => true ,
1384
+ MOI. ScalarAffineFunction{Float64} => true ,
1385
+ MOI. ScalarQuadraticFunction{Float64} => true ,
1386
+ MOI. ScalarNonlinearFunction => true ,
1387
+ MOI. VectorOfVariables => false ,
1388
+ MOI. VectorAffineFunction{Float64} => false ,
1389
+ MOI. VectorQuadraticFunction{Float64} => false ,
1390
+ MOI. VectorNonlinearFunction => false ,
1391
+ ]
1392
+ @test MOI. supports (model, MOI. ObjectiveFunction {F} ()) == ret
1393
+ end
1394
+ return
1395
+ end
1396
+
1380
1397
end
1381
1398
1382
1399
TestNLModel. runtests ()
Original file line number Diff line number Diff line change @@ -402,6 +402,23 @@ function test_example_A_integer_coefficients()
402
402
return
403
403
end
404
404
405
+ function test_unsupported_objectives ()
406
+ model = SDPA. Model ()
407
+ for (F, ret) in [
408
+ MOI. VariableIndex => false ,
409
+ MOI. ScalarAffineFunction{Float64} => true ,
410
+ MOI. ScalarQuadraticFunction{Float64} => false ,
411
+ MOI. ScalarNonlinearFunction => false ,
412
+ MOI. VectorOfVariables => false ,
413
+ MOI. VectorAffineFunction{Float64} => false ,
414
+ MOI. VectorQuadraticFunction{Float64} => false ,
415
+ MOI. VectorNonlinearFunction => false ,
416
+ ]
417
+ @test MOI. supports (model, MOI. ObjectiveFunction {F} ()) == ret
418
+ end
419
+ return
420
+ end
421
+
405
422
end # module
406
423
407
424
TestSDPA. runtests ()
You can’t perform that action at this time.
0 commit comments