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.linear.MatrixUtils;
20 import org.hipparchus.linear.RealMatrix;
21 import org.hipparchus.linear.RealVector;
22 import org.junit.Assert;
23 import org.junit.Test;
24
25 public class VectorDifferentiableFunctionTest {
26
27 @Test
28 public void testValue() {
29
30 final double[] x = new double[] { 2. };
31 final TestVectorDifferentiableFunction function = new TestVectorDifferentiableFunction();
32
33 final double[] actualValue = function.value(x);
34
35 final double expectedValueElement = x[0];
36 Assert.assertEquals(expectedValueElement, actualValue[0], 0);
37 }
38
39 @Test
40 public void testGradient() {
41
42 final double[] x = new double[] { 2. };
43 final TestVectorDifferentiableFunction function = new TestVectorDifferentiableFunction();
44
45 final RealMatrix actualGradient = function.gradient(x);
46
47 final double expectedValueElement = 1.;
48 Assert.assertEquals(expectedValueElement, actualGradient.getEntry(0, 0), 0);
49 }
50
51 private static class TestVectorDifferentiableFunction implements VectorDifferentiableFunction {
52
53 @Override
54 public int dim() {
55 return 1;
56 }
57
58 @Override
59 public int dimY() {
60 return 1;
61 }
62
63 @Override
64 public RealVector value(RealVector x) {
65 return x;
66 }
67
68 @Override
69 public RealMatrix jacobian(RealVector x) {
70 return MatrixUtils.createRealIdentityMatrix(x.getDimension());
71 }
72 }
73
74 }