java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/FieldNames.java
... ...
@@ -202,9 +202,9 @@ public enum FieldNames {
202 202
MANEUVER_CURVE_WITH_STABLE_SPEED_AND_COURSE_BOUNDERIES, MAX_TURNING_RATE_IN_DEGREE_PER_SECOUND, MANEUVER_LOSS,
203 203
// MANEUVERS main curve boundaries properties, see MAIN_CURVE_BOUNDARIES field above
204 204
MANEUVER_TIMEPOINT_BEFORE, MANEUVER_TIMEPOINT_AFTER, MANEUVER_SPEED_WITH_BEARING_BEFORE, MANEUVER_SPEED_WITH_BEARING_AFTER,
205
- MANEUVER_DIRECTION_CHANGE_IN_DEGREES, MANEUVER_LOWEST_SPEED, MANEUVER_HIGHEST_SPEED,
205
+ MANEUVER_DIRECTION_CHANGE_IN_DEGREES, MANEUVER_LOWEST_SPEED_IN_KNOTS, MANEUVER_HIGHEST_SPEED_IN_KNOTS,
206 206
MANEUVER_DISTANCE_SAILED_POMA, MANEUVER_DISTANCE_SAILED_INMPOMA, MANEUVER_SPEED_WITH_BEARING_BEFORE_DEGREES,
207
- MANEUVER_SPEED_WITH_BEARING_BEFORE_SPEED, MANEUVER_SPEED_WITH_BEARING_AFTER_DEGREES, MANEUVER_SPEED_WITH_BEARING_AFTER_SPEED,
207
+ MANEUVER_SPEED_WITH_BEARING_BEFORE_SPEED, MANEUVER_SPEED_WITH_BEARING_AFTER_DEGREES, MANEUVER_SPEED_WITH_BEARING_AFTER_SPEED_IN_KNOTS,
208 208
MANEUVER_START_POSITION_LAT_RAD, MANEUVER_START_POSITION_LNG_RAD, MANEUVER_END_POSITION_LAT_RAD,
209 209
MANEUVER_END_POSITION_LNG_RAD, MIDDLE_MAEUVER_ANGLE, MANEUVER_LOSS_DURATION
210 210
;
java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java
... ...
@@ -3410,14 +3410,14 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
3410 3410
final Bearing bearingBefore = new DegreeBearingImpl(speedWithBearingBeforeDegrees);
3411 3411
final SpeedWithBearing speedWithBearingBefore = new KnotSpeedWithBearingImpl(speedWithBearingBeforeSpeed, bearingBefore);
3412 3412
final Double speedWithBearingAfterDegrees = document.getDouble(FieldNames.MANEUVER_SPEED_WITH_BEARING_AFTER_DEGREES.name());
3413
- final Double speedWithBearingAfterSpeed = document.getDouble(FieldNames.MANEUVER_SPEED_WITH_BEARING_AFTER_SPEED.name());
3414
- final Bearing bearingAfter = new DegreeBearingImpl(speedWithBearingAfterSpeed);
3415
- final SpeedWithBearing speedWithBearingAfter = new KnotSpeedWithBearingImpl(speedWithBearingAfterDegrees, bearingAfter);
3413
+ final Double speedWithBearingAfterSpeedInKnots = document.getDouble(FieldNames.MANEUVER_SPEED_WITH_BEARING_AFTER_SPEED_IN_KNOTS.name());
3414
+ final Bearing bearingAfter = new DegreeBearingImpl(speedWithBearingAfterDegrees);
3415
+ final SpeedWithBearing speedWithBearingAfter = new KnotSpeedWithBearingImpl(speedWithBearingAfterSpeedInKnots, bearingAfter);
3416 3416
final double directionChangeInDegrees = document.getDouble(FieldNames.MANEUVER_DIRECTION_CHANGE_IN_DEGREES.name());
3417
- final double lowestSpeedDouble = document.getDouble(FieldNames.MANEUVER_LOWEST_SPEED.name());
3418
- final Speed lowestSpeed = new KnotSpeedImpl(lowestSpeedDouble);
3419
- final double highestSpeedDouble = document.getDouble(FieldNames.MANEUVER_HIGHEST_SPEED.name());
3420
- final Speed highestSpeed = new KnotSpeedImpl(highestSpeedDouble);
3417
+ final double lowestSpeedInKnotsDouble = document.getDouble(FieldNames.MANEUVER_LOWEST_SPEED_IN_KNOTS.name());
3418
+ final Speed lowestSpeed = new KnotSpeedImpl(lowestSpeedInKnotsDouble);
3419
+ final double highestSpeedInKnotsDouble = document.getDouble(FieldNames.MANEUVER_HIGHEST_SPEED_IN_KNOTS.name());
3420
+ final Speed highestSpeed = new KnotSpeedImpl(highestSpeedInKnotsDouble);
3421 3421
final ManeuverCurveBoundaries maneuverCurveBoundaries = new ManeuverCurveBoundariesImpl(timePointBefore,
3422 3422
timePointAfter, speedWithBearingBefore, speedWithBearingAfter, directionChangeInDegrees, lowestSpeed,
3423 3423
highestSpeed);
java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java
... ...
@@ -2090,10 +2090,10 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
2090 2090
d.put(FieldNames.MANEUVER_SPEED_WITH_BEARING_BEFORE_DEGREES.name(), f.getSpeedWithBearingBefore().getBearing().getDegrees());
2091 2091
d.put(FieldNames.MANEUVER_SPEED_WITH_BEARING_BEFORE_SPEED.name(), f.getSpeedWithBearingBefore().getKnots());
2092 2092
d.put(FieldNames.MANEUVER_SPEED_WITH_BEARING_AFTER_DEGREES.name(), f.getSpeedWithBearingAfter().getBearing().getDegrees());
2093
- d.put(FieldNames.MANEUVER_SPEED_WITH_BEARING_AFTER_SPEED.name(), f.getSpeedWithBearingAfter().getKnots());
2093
+ d.put(FieldNames.MANEUVER_SPEED_WITH_BEARING_AFTER_SPEED_IN_KNOTS.name(), f.getSpeedWithBearingAfter().getKnots());
2094 2094
d.put(FieldNames.MANEUVER_DIRECTION_CHANGE_IN_DEGREES.name(), f.getDirectionChangeInDegrees());
2095
- d.put(FieldNames.MANEUVER_LOWEST_SPEED.name(), f.getLowestSpeed().getKnots());
2096
- d.put(FieldNames.MANEUVER_HIGHEST_SPEED.name(), f.getHighestSpeed().getKnots());
2095
+ d.put(FieldNames.MANEUVER_LOWEST_SPEED_IN_KNOTS.name(), f.getLowestSpeed().getKnots());
2096
+ d.put(FieldNames.MANEUVER_HIGHEST_SPEED_IN_KNOTS.name(), f.getHighestSpeed().getKnots());
2097 2097
return d;
2098 2098
}
2099 2099
java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/ManeuverRaceFingerprintConversionTest.java
... ...
@@ -1,6 +1,7 @@
1 1
package com.sap.sailing.mongodb.test;
2 2
3 3
import static org.junit.jupiter.api.Assertions.assertEquals;
4
+import static org.junit.jupiter.api.Assertions.assertSame;
4 5
import static org.junit.jupiter.api.Assertions.assertTrue;
5 6
6 7
import java.net.MalformedURLException;
... ...
@@ -27,9 +28,11 @@ import com.sap.sailing.domain.persistence.PersistenceFactory;
27 28
import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl;
28 29
import com.sap.sailing.domain.test.OnlineTracTracBasedTest;
29 30
import com.sap.sailing.domain.tracking.Maneuver;
31
+import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
30 32
import com.sap.sailing.domain.tracking.ManeuverLoss;
31 33
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
32 34
import com.sap.sailing.domain.tractracadapter.ReceiverType;
35
+import com.sap.sse.common.SpeedWithBearing;
33 36
import com.sap.sse.mongodb.MongoDBConfiguration;
34 37
35 38
public class ManeuverRaceFingerprintConversionTest extends OnlineTracTracBasedTest {
... ...
@@ -85,13 +88,28 @@ public class ManeuverRaceFingerprintConversionTest extends OnlineTracTracBasedTe
85 88
final Iterator<Maneuver> maneuverIter = maneuvers.get(c).iterator();
86 89
for (final Maneuver m : maneuversLoaded.get(c)) {
87 90
final Maneuver maneuverDetected = maneuverIter.next();
91
+ assertSame(maneuverDetected.getClass(), m.getClass());
88 92
assertEqualManeuverLoss(maneuverDetected.getManeuverLoss(), m.getManeuverLoss());
89 93
assertEquals(maneuverDetected.getAvgTurningRateInDegreesPerSecond(), m.getAvgTurningRateInDegreesPerSecond(), 0.000001);
90 94
assertEquals(maneuverDetected.getDirectionChangeInDegrees(), m.getDirectionChangeInDegrees());
95
+ assertEqualsManeuverCurveBoundaries(maneuverDetected.getManeuverBoundaries(), m.getManeuverBoundaries());
96
+ assertEqualsManeuverCurveBoundaries(maneuverDetected.getManeuverCurveWithStableSpeedAndCourseBoundaries(), m.getManeuverCurveWithStableSpeedAndCourseBoundaries());
91 97
}
92 98
}
93 99
}
94 100
101
+ private void assertEqualsManeuverCurveBoundaries(ManeuverCurveBoundaries maneuverBoundaries1, ManeuverCurveBoundaries maneuverBoundaries2) {
102
+ assertEquals(maneuverBoundaries1.getDirectionChangeInDegrees(), maneuverBoundaries2.getDirectionChangeInDegrees(), 0.000001);
103
+ assertEquals(maneuverBoundaries1.getDuration().asSeconds(), maneuverBoundaries2.getDuration().asSeconds(), 0.000001);
104
+ assertEquals(maneuverBoundaries1.getHighestSpeed().getKnots(), maneuverBoundaries2.getHighestSpeed().getKnots(), 0.000001);
105
+ assertEquals(maneuverBoundaries1.getLowestSpeed().getKnots(), maneuverBoundaries2.getLowestSpeed().getKnots(), 0.000001);
106
+ assertEquals(maneuverBoundaries1.getMiddleCourse().getDegrees(), maneuverBoundaries2.getMiddleCourse().getDegrees(), 0.000001);
107
+ assertEqualSpeeds(maneuverBoundaries1.getSpeedWithBearingAfter(), maneuverBoundaries2.getSpeedWithBearingAfter());
108
+ assertEqualSpeeds(maneuverBoundaries1.getSpeedWithBearingBefore(), maneuverBoundaries2.getSpeedWithBearingBefore());
109
+ assertEquals(maneuverBoundaries1.getTimePointAfter(), maneuverBoundaries2.getTimePointAfter());
110
+ assertEquals(maneuverBoundaries1.getTimePointBefore(), maneuverBoundaries2.getTimePointBefore());
111
+ }
112
+
95 113
private void assertEqualManeuverLoss(ManeuverLoss maneuverLoss1, ManeuverLoss maneuverLoss2) {
96 114
if (maneuverLoss1 != null) {
97 115
assertEquals(maneuverLoss1.getManeuverStartPosition(), maneuverLoss2.getManeuverStartPosition());
... ...
@@ -104,8 +122,12 @@ public class ManeuverRaceFingerprintConversionTest extends OnlineTracTracBasedTe
104 122
assertEquals(maneuverLoss1.getMiddleManeuverAngle().getDegrees(), maneuverLoss2.getMiddleManeuverAngle().getDegrees(), 0.000001);
105 123
assertEquals(maneuverLoss1.getProjectedDistanceLost().getMeters(), maneuverLoss2.getProjectedDistanceLost().getMeters(), 0.000001);
106 124
assertEquals(maneuverLoss1.getRatioBetweenDistanceSailedWithAndWithoutManeuver(), maneuverLoss2.getRatioBetweenDistanceSailedWithAndWithoutManeuver(), 0.000001);
107
- assertEquals(maneuverLoss1.getSpeedWithBearingBefore().getKnots(), maneuverLoss2.getSpeedWithBearingBefore().getKnots(), 0.000001);
108
- assertEquals(maneuverLoss1.getSpeedWithBearingBefore().getBearing().getDegrees(), maneuverLoss2.getSpeedWithBearingBefore().getBearing().getDegrees(), 0.000001);
125
+ assertEqualSpeeds(maneuverLoss1.getSpeedWithBearingBefore(), maneuverLoss2.getSpeedWithBearingBefore());
109 126
}
110 127
}
128
+
129
+ private void assertEqualSpeeds(SpeedWithBearing speedWithBearing1, SpeedWithBearing speedWithBearing2) {
130
+ assertEquals(speedWithBearing1.getKnots(), speedWithBearing2.getKnots(), 0.000001);
131
+ assertEquals(speedWithBearing1.getBearing().getDegrees(), speedWithBearing2.getBearing().getDegrees(), 0.000001);
132
+ }
111 133
}