Skip to content

Commit a8fe2cf

Browse files
authored
Improved coverage of SQPOptimizerGM
1 parent 931ce1f commit a8fe2cf

File tree

1 file changed

+62
-25
lines changed

1 file changed

+62
-25
lines changed
Lines changed: 62 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,62 @@
1-
/*
2-
* Licensed to the Hipparchus project under one or more
3-
* contributor license agreements. See the NOTICE file distributed with
4-
* this work for additional information regarding copyright ownership.
5-
* The Hipparchus project licenses this file to You under the Apache License, Version 2.0
6-
* (the "License"); you may not use this file except in compliance with
7-
* the License. You may obtain a copy of the License at
8-
*
9-
* https://www.apache.org/licenses/LICENSE-2.0
10-
*
11-
* Unless required by applicable law or agreed to in writing, software
12-
* distributed under the License is distributed on an "AS IS" BASIS,
13-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14-
* See the License for the specific language governing permissions and
15-
* limitations under the License.
16-
*/
17-
package org.hipparchus.optim.nonlinear.vector.constrained;
18-
19-
public class SQPOptimizerGMTest extends AbstractTestAbstractSQPOptimizerTest {
20-
21-
protected ConstraintOptimizer buildOptimizer() {
22-
return new SQPOptimizerGM();
23-
}
24-
25-
}
1+
/*
2+
* Licensed to the Hipparchus project under one or more
3+
* contributor license agreements. See the NOTICE file distributed with
4+
* this work for additional information regarding copyright ownership.
5+
* The Hipparchus project licenses this file to You under the Apache License, Version 2.0
6+
* (the "License"); you may not use this file except in compliance with
7+
* the License. You may obtain a copy of the License at
8+
*
9+
* https://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
package org.hipparchus.optim.nonlinear.vector.constrained;
18+
19+
import org.hipparchus.optim.OptimizationData;
20+
import org.hipparchus.optim.nonlinear.scalar.ObjectiveFunction;
21+
import org.junit.Assert;
22+
import org.junit.Test;
23+
24+
public class SQPOptimizerGMTest extends AbstractTestAbstractSQPOptimizerTest {
25+
26+
protected ConstraintOptimizer buildOptimizer() {
27+
return new SQPOptimizerGM();
28+
}
29+
30+
@Test
31+
public void testWithEqualityConstraintsOnly() {
32+
final QuadraticFunction q = new QuadraticFunction(new double[][] { { 1.0, 0.0 }, { 0.0, 1.0 } },
33+
new double[] { 1.0, 0.0 },
34+
0.0);
35+
36+
final LinearEqualityConstraint eqc = new LinearEqualityConstraint(new double[][] { { 1.0, 0.0 } },
37+
new double[] { 1.0 });
38+
39+
final ConstraintOptimizer optimizer = buildOptimizer();
40+
final OptimizationData[] data = new OptimizationData[] { new ObjectiveFunction(q), eqc };
41+
final LagrangeSolution solution = optimizer.optimize(data);
42+
43+
Assert.assertEquals(1.5, solution.getValue(), 1.e-4);
44+
}
45+
46+
@Test
47+
public void testWithInequalityConstraintsOnly() {
48+
final QuadraticFunction q = new QuadraticFunction(new double[][] { { 1.0, 0.0 }, { 0.0, 1.0 } },
49+
new double[] { 1.0, 0.0 },
50+
0.0);
51+
52+
final LinearInequalityConstraint eqc = new LinearInequalityConstraint(new double[][] { { 1.0, 0.0 } },
53+
new double[] { 1.0 });
54+
55+
final ConstraintOptimizer optimizer = buildOptimizer();
56+
final OptimizationData[] data = new OptimizationData[] { new ObjectiveFunction(q), eqc };
57+
final LagrangeSolution solution = optimizer.optimize(data);
58+
59+
Assert.assertEquals(1.5, solution.getValue(), 1.e-4);
60+
}
61+
62+
}

0 commit comments

Comments
 (0)