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.nonlinear.scalar.ObjectiveFunction;
20 import org.junit.jupiter.api.Test;
21
22 public abstract class AbstractTestAbstractSQPOptimizerTest extends AbstractConstrainedOptimizerTest {
23
24 @Test
25 public void test1() {
26 QuadraticFunction q = new QuadraticFunction(new double[][] { { 4.0, -2.0 }, { -2.0, 4.0 } },
27 new double[] { 6.0, 0.0 },
28 0.0);
29
30 // y = 1
31 LinearEqualityConstraint eqc = new LinearEqualityConstraint(new double[][] { { 0.0, 1.0 } },
32 new double[] { 1.0 });
33
34
35 // x > 0, y > 0, x + y > 2
36 LinearInequalityConstraint ineqc = new LinearInequalityConstraint(new double[][] { { 1.0, 0.0 }, { 0.0, 1.0 }, { 1.0, 1.0 } },
37 new double[] { 0.0, 0.0, 2.0 });
38
39
40 doTestProblem(new double[] { 1, 1 }, 2.5e-5,
41 new double[] { -6, 0, 0, 8 }, 2.6e-4,
42 8, 2.0e-4,
43 new ObjectiveFunction(q),
44 new double[] { 3.5, 3.5 },
45 eqc, ineqc);
46
47 }
48
49 }