1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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 }