From a5f88623b9219bcfb8b6e1537433653fe39a9527 Mon Sep 17 00:00:00 2001
From: Luc Maisonobe <luc@orekit.org>
Date: Fri, 21 Nov 2014 11:50:11 +0100
Subject: [PATCH] Updated Rugged with respect to current Orekit development
 version.

Version 7.0 in Orekit can use acceleration for linear and angular
coordinates, this changed a few constructors and some numerical results.
---
 .../java/org/orekit/rugged/api/Rugged.java    |  4 +--
 .../org/orekit/rugged/api/RuggedTest.java     | 34 +++++++++++--------
 .../api/SensorMeanPlaneCrossingTest.java      |  5 +--
 .../intersection/AbstractAlgorithmTest.java   |  6 ++--
 4 files changed, 28 insertions(+), 21 deletions(-)

diff --git a/core/src/main/java/org/orekit/rugged/api/Rugged.java b/core/src/main/java/org/orekit/rugged/api/Rugged.java
index ca32b3ba..291f2527 100644
--- a/core/src/main/java/org/orekit/rugged/api/Rugged.java
+++ b/core/src/main/java/org/orekit/rugged/api/Rugged.java
@@ -437,8 +437,8 @@ public class Rugged {
                         final AbsoluteDate  date = currentState.getDate();
                         final PVCoordinates pv   = currentState.getPVCoordinates(inertialFrame);
                         final Rotation      q    = currentState.getAttitude().getRotation();
-                        positionsVelocities.add(new TimeStampedPVCoordinates(date, pv.getPosition(), pv.getVelocity()));
-                        quaternions.add(new TimeStampedAngularCoordinates(date, q, Vector3D.ZERO));
+                        positionsVelocities.add(new TimeStampedPVCoordinates(date, pv.getPosition(), pv.getVelocity(), Vector3D.ZERO));
+                        quaternions.add(new TimeStampedAngularCoordinates(date, q, Vector3D.ZERO, Vector3D.ZERO));
                     } catch (OrekitException oe) {
                         throw new PropagationException(oe);
                     }
diff --git a/core/src/test/java/org/orekit/rugged/api/RuggedTest.java b/core/src/test/java/org/orekit/rugged/api/RuggedTest.java
index db6a506e..b820d9e9 100644
--- a/core/src/test/java/org/orekit/rugged/api/RuggedTest.java
+++ b/core/src/test/java/org/orekit/rugged/api/RuggedTest.java
@@ -37,6 +37,7 @@ import org.apache.commons.math3.geometry.euclidean.threed.Rotation;
 import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
 import org.apache.commons.math3.ode.nonstiff.DormandPrince853Integrator;
 import org.apache.commons.math3.stat.descriptive.SummaryStatistics;
+import org.apache.commons.math3.stat.descriptive.rank.Percentile;
 import org.apache.commons.math3.util.FastMath;
 import org.junit.Assert;
 import org.junit.Ignore;
@@ -547,9 +548,9 @@ public class RuggedTest {
             Vector3D pWithout = earth.transform(gpWithoutFlatBodyCorrection[i]);
             stats.addValue(Vector3D.distance(pWith, pWithout));
         }
-        Assert.assertEquals( 0.005, stats.getMin(),  1.0e-3);
-        Assert.assertEquals(39.924, stats.getMax(),  1.0e-3);
-        Assert.assertEquals( 4.823, stats.getMean(), 1.0e-3);
+        Assert.assertEquals( 0.004, stats.getMin(),  1.0e-3);
+        Assert.assertEquals(28.344, stats.getMax(),  1.0e-3);
+        Assert.assertEquals( 4.801, stats.getMean(), 1.0e-3);
 
     }
 
@@ -713,12 +714,13 @@ public class RuggedTest {
         ruggedBasicScan.addLineSensor(lineSensor);
         GeodeticPoint[] gpBasicScan = ruggedBasicScan.directLocation("line", 100);
 
-
+        double[] data = new double[gpDuvenhage.length]; 
         for (int i = 0; i < gpDuvenhage.length; ++i) {
             Vector3D pDuvenhage = earth.transform(gpDuvenhage[i]);
             Vector3D pBasicScan = earth.transform(gpBasicScan[i]);
-            Assert.assertEquals(0.0, Vector3D.distance(pDuvenhage, pBasicScan), 4.0e-5);
+            data[i] = Vector3D.distance(pDuvenhage, pBasicScan);
         }
+        Assert.assertEquals(0.0, new Percentile(99).evaluate(data), 5.1e-4);
 
     }
 
@@ -1091,10 +1093,10 @@ public class RuggedTest {
     @Test
     public void testDateLocation()
         throws RuggedException, OrekitException, URISyntaxException {
-        checkDateLocation(2000, false, false, 2.0e-8);
-        checkDateLocation(2000, false, true,  2.0e-8);
-        checkDateLocation(2000, true,  false, 8.0e-9);
-        checkDateLocation(2000, true,  true,  2.0e-8);
+        checkDateLocation(2000, false, false, 4.0e-8);
+        checkDateLocation(2000, false, true,  6.0e-8);
+        checkDateLocation(2000, true,  false, 3.0e-8);
+        checkDateLocation(2000, true,  true,  8.0e-8);
     }
 
     @Test
@@ -1382,14 +1384,14 @@ public class RuggedTest {
         Transform transform = itrf.getTransformTo(eme2000, ephemerisDate);
         Vector3D pEME2000 = transform.transformPosition(pvITRF.getPosition());
         Vector3D vEME2000 = transform.transformVector(pvITRF.getVelocity());
-        satellitePVList.add(new TimeStampedPVCoordinates(ephemerisDate, pEME2000, vEME2000));
+        satellitePVList.add(new TimeStampedPVCoordinates(ephemerisDate, pEME2000, vEME2000, Vector3D.ZERO));
     }
 
     protected void addSatelliteQ(TimeScale gps, ArrayList<TimeStampedAngularCoordinates> satelliteQList, String absDate, double q0, double q1, double q2,
             double q3) {
         AbsoluteDate attitudeDate = new AbsoluteDate(absDate, gps);
         Rotation rotation = new Rotation(q0, q1, q2, q3, true);
-        TimeStampedAngularCoordinates pair = new TimeStampedAngularCoordinates(attitudeDate, rotation, Vector3D.ZERO);
+        TimeStampedAngularCoordinates pair = new TimeStampedAngularCoordinates(attitudeDate, rotation, Vector3D.ZERO, Vector3D.ZERO);
         satelliteQList.add(pair);
     }
 
@@ -1645,14 +1647,15 @@ public class RuggedTest {
                                               double vx, double vy, double vz) {
         return new TimeStampedPVCoordinates(t0.shiftedBy(dt),
                                             new Vector3D(px, py, pz),
-                                            new Vector3D(vx, vy, vz));
+                                            new Vector3D(vx, vy, vz),
+                                            Vector3D.ZERO);
     }
 
     private TimeStampedAngularCoordinates createQ(AbsoluteDate t0, double dt,
                                                        double q0, double q1, double q2, double q3) {
         return new TimeStampedAngularCoordinates(t0.shiftedBy(dt),
                                                  new Rotation(q0, q1, q2, q3, true),
-                                                 Vector3D.ZERO);
+                                                 Vector3D.ZERO, Vector3D.ZERO);
     }
 
     private List<TimeStampedPVCoordinates> orbitToPV(Orbit orbit, BodyShape earth,
@@ -1669,7 +1672,8 @@ public class RuggedTest {
             public void handleStep(SpacecraftState currentState, boolean isLast) {
                 list.add(new TimeStampedPVCoordinates(currentState.getDate(),
                                                       currentState.getPVCoordinates().getPosition(),
-                                                      currentState.getPVCoordinates().getVelocity()));
+                                                      currentState.getPVCoordinates().getVelocity(),
+                                                      Vector3D.ZERO));
             }
         });
         propagator.propagate(maxDate);
@@ -1690,7 +1694,7 @@ public class RuggedTest {
             public void handleStep(SpacecraftState currentState, boolean isLast) {
                 list.add(new TimeStampedAngularCoordinates(currentState.getDate(),
                                                            currentState.getAttitude().getRotation(),
-                                                           Vector3D.ZERO));
+                                                           Vector3D.ZERO, Vector3D.ZERO));
             }
         });
         propagator.propagate(maxDate);
diff --git a/core/src/test/java/org/orekit/rugged/api/SensorMeanPlaneCrossingTest.java b/core/src/test/java/org/orekit/rugged/api/SensorMeanPlaneCrossingTest.java
index e8ddb1e4..26560fe4 100644
--- a/core/src/test/java/org/orekit/rugged/api/SensorMeanPlaneCrossingTest.java
+++ b/core/src/test/java/org/orekit/rugged/api/SensorMeanPlaneCrossingTest.java
@@ -158,7 +158,8 @@ public class SensorMeanPlaneCrossingTest {
             public void handleStep(SpacecraftState currentState, boolean isLast) {
                 list.add(new TimeStampedPVCoordinates(currentState.getDate(),
                                                       currentState.getPVCoordinates().getPosition(),
-                                                      currentState.getPVCoordinates().getVelocity()));
+                                                      currentState.getPVCoordinates().getVelocity(),
+                                                      Vector3D.ZERO));
             }
         });
         propagator.propagate(maxDate);
@@ -179,7 +180,7 @@ public class SensorMeanPlaneCrossingTest {
             public void handleStep(SpacecraftState currentState, boolean isLast) {
                 list.add(new TimeStampedAngularCoordinates(currentState.getDate(),
                                                            currentState.getAttitude().getRotation(),
-                                                           Vector3D.ZERO));
+                                                           Vector3D.ZERO, Vector3D.ZERO));
             }
         });
         propagator.propagate(maxDate);
diff --git a/core/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java b/core/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java
index 820931ac..09be6ac0 100644
--- a/core/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java
+++ b/core/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java
@@ -212,7 +212,8 @@ public abstract class AbstractAlgorithmTest {
                                                                                  true),
                                                                     new Vector3D(-7.048568391860185e-05,
                                                                                  -1.043582650222194e-03,
-                                                                                  1.700400341147713e-05)));
+                                                                                  1.700400341147713e-05),
+                                                                    Vector3D.ZERO));
 
     }
 
@@ -265,7 +266,8 @@ public abstract class AbstractAlgorithmTest {
                                                                                  true),
                                                                     new Vector3D(-4.289600857433520e-05,
                                                                                  -1.039151496480297e-03,
-                                                                                  5.811423736843181e-05)));
+                                                                                  5.811423736843181e-05),
+                                                                    Vector3D.ZERO));
 
     }
 
-- 
GitLab