Skip to content
Snippets Groups Projects
Commit 01fb7123 authored by Jonathan Guinet's avatar Jonathan Guinet
Browse files

[BUG] DSGenerator merge problem

parent cfbb3972
No related branches found
No related tags found
No related merge requests found
/* Copyright 2013-2017 CS Systèmes d'Information
/* Copyright 2013-2016 CS Systèmes d'Information
* Licensed to CS Systèmes d'Information (CS) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
......@@ -16,9 +16,10 @@
*/
package org.orekit.rugged.utils;
import java.util.List;
import org.hipparchus.analysis.differentiation.DerivativeStructure;
import org.orekit.utils.ParameterDriver;
import org.orekit.utils.ParameterDriversList;
/** Generator for {@link DerivativeStructure} instances from {@link ParameterDriver}.
* <p>
......@@ -32,7 +33,7 @@ public interface DSGenerator {
/** Get the parameters selected for estimation.
* @return parameters selected for estimation
*/
ParameterDriversList getSelected();
List<ParameterDriver> getSelected();
/** Generate a constant {@link DerivativeStructure}.
* @param value value of the constant
......
......@@ -46,7 +46,6 @@ import org.orekit.rugged.los.TimeDependentLOS;
import org.orekit.rugged.utils.DSGenerator;
import org.orekit.time.AbsoluteDate;
import org.orekit.utils.ParameterDriver;
import org.orekit.utils.ParameterDriversList;
public class FixedRotationTest {
......@@ -157,19 +156,16 @@ public class FixedRotationTest {
new Vector3D(rvg.nextVector()),
2 * FastMath.PI * rng.nextNormalizedDouble() / FastMath.sqrt(3)));
TimeDependentLOS tdl = builder.build();
final ParameterDriversList selected = new ParameterDriversList();
final List<ParameterDriver> list = tdl.getParametersDrivers().collect(Collectors.toList());
for (final ParameterDriver driver : list) {
final List<ParameterDriver> selected = tdl.getParametersDrivers().collect(Collectors.toList());
for (final ParameterDriver driver : selected) {
driver.setSelected(true);
selected.add(driver);
}
final DSFactory factoryS = new DSFactory(selected.size(), 1);
DSGenerator generator = new DSGenerator() {
/** {@inheritDoc} */
@Override
public ParameterDriversList getSelected() {
public List<ParameterDriver> getSelected() {
return selected;
}
......@@ -186,17 +182,14 @@ public class FixedRotationTest {
for (ParameterDriver d : getSelected()) {
if (d == driver) {
return factoryS.variable(index, driver.getValue());
}
++index;
}
return constant(driver.getValue());
}
};
Assert.assertEquals(3, generator.getSelected().getNbParams());
Assert.assertEquals(3, generator.getSelected().size());
FiniteDifferencesDifferentiator differentiator =
new FiniteDifferencesDifferentiator(4, 0.001);
......@@ -228,7 +221,6 @@ public class FixedRotationTest {
Assert.assertEquals(los.getX(), losDS.getX().getValue(), 2.0e-15);
Assert.assertEquals(los.getY(), losDS.getY().getValue(), 2.0e-15);
Assert.assertEquals(los.getZ(), losDS.getZ().getValue(), 2.0e-15);
//System.out.format("derivate %f", losDS.getX().getPartialDerivative(orders));
Assert.assertEquals(mDS[i][0].getPartialDerivative(1), losDS.getX().getPartialDerivative(orders), 2.0e-12);
Assert.assertEquals(mDS[i][1].getPartialDerivative(1), losDS.getY().getPartialDerivative(orders), 2.0e-12);
Assert.assertEquals(mDS[i][2].getPartialDerivative(1), losDS.getZ().getPartialDerivative(orders), 2.0e-12);
......
......@@ -47,7 +47,6 @@ import org.orekit.rugged.los.TimeDependentLOS;
import org.orekit.rugged.utils.DSGenerator;
import org.orekit.time.AbsoluteDate;
import org.orekit.utils.ParameterDriver;
import org.orekit.utils.ParameterDriversList;
public class PolynomialRotationTest {
......@@ -173,19 +172,16 @@ public class PolynomialRotationTest {
2 * FastMath.PI * rng.nextNormalizedDouble() / FastMath.sqrt(3),
1.0e-4 * 2 * FastMath.PI * rng.nextNormalizedDouble() / FastMath.sqrt(3)));
TimeDependentLOS tdl = builder.build();
final ParameterDriversList selected = new ParameterDriversList();
final List<ParameterDriver> list = tdl.getParametersDrivers().collect(Collectors.toList());
for (final ParameterDriver driver : list) {
final List<ParameterDriver> selected = tdl.getParametersDrivers().collect(Collectors.toList());
for (final ParameterDriver driver : selected) {
driver.setSelected(true);
selected.add(driver);
}
final DSFactory factoryS = new DSFactory(selected.size(), 1);
DSGenerator generator = new DSGenerator() {
/** {@inheritDoc} */
@Override
public ParameterDriversList getSelected() {
public List<ParameterDriver> getSelected() {
return selected;
}
......@@ -206,19 +202,18 @@ public class PolynomialRotationTest {
++index;
}
return constant(driver.getValue());
}
};
Assert.assertEquals(7, generator.getSelected().getNbParams());
Assert.assertEquals(7, generator.getSelected().size());
FiniteDifferencesDifferentiator differentiator =
new FiniteDifferencesDifferentiator(4, 0.0001);
int index = 0;
DSFactory factory11 = new DSFactory(1, 1);
final AbsoluteDate date = AbsoluteDate.J2000_EPOCH.shiftedBy(7.0);
for (final ParameterDriver driver : selected.getDrivers()) {
int[] orders = new int[selected.getNbParams()];
for (final ParameterDriver driver : selected) {
int[] orders = new int[selected.size()];
orders[index] = 1;
UnivariateDifferentiableMatrixFunction f =
differentiator.differentiate((UnivariateMatrixFunction) x -> {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment