mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 03:13:49 +00:00
added true maneuver test for Hasso's 505 Race 2 track
This commit is contained in:
1 parent
5df3043091
commit
6c98afd282
1 file changed
+41
+41
@@ -1,19 +1,24 @@
|
||||
package com.sap.sailing.domain.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.fail;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.Calendar;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.NavigableSet;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Tack;
|
||||
import com.sap.sailing.domain.base.TimePoint;
|
||||
import com.sap.sailing.domain.base.impl.DegreeBearingImpl;
|
||||
import com.sap.sailing.domain.base.impl.DouglasPeucker;
|
||||
@@ -22,6 +27,8 @@ import com.sap.sailing.domain.base.impl.MeterDistance;
|
||||
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.tracking.GPSFixMoving;
|
||||
import com.sap.sailing.domain.tracking.GPSFixTrack;
|
||||
import com.sap.sailing.domain.tracking.Maneuver;
|
||||
import com.sap.sailing.domain.tracking.Maneuver.Type;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tracking.NoWindException;
|
||||
import com.sap.sailing.domain.tracking.WindSource;
|
||||
@@ -67,4 +74,38 @@ public class ManeuverDetectionOnKielerWoche505Race2DataTest extends KielWeek2011
|
||||
assertNotNull(secondLegCoarseApproximation);
|
||||
assertEquals(3, secondLegCoarseApproximation.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testManeuversForHasso() throws NoWindException {
|
||||
Competitor hasso = getCompetitorByName("Dr.Plattner");
|
||||
NavigableSet<MarkPassing> hassosMarkPassings = getTrackedRace().getMarkPassings(hasso);
|
||||
List<Maneuver> maneuvers = getTrackedRace().getManeuvers(hasso, hassosMarkPassings.first().getTimePoint(),
|
||||
hassosMarkPassings.last().getTimePoint());
|
||||
Calendar c = new GregorianCalendar(TimeZone.getTimeZone("Europe/Berlin"));
|
||||
c.set(2011, 6-1, 23, 16, 5, 49);
|
||||
assertManeuver(maneuvers, Maneuver.Type.TACK, Tack.STARBOARD, new MillisecondsTimePoint(c.getTime()), /* tolerance in milliseconds */ 3000);
|
||||
c.set(2011, 6-1, 23, 16, 8, 37);
|
||||
assertManeuver(maneuvers, Maneuver.Type.TACK, Tack.PORT, new MillisecondsTimePoint(c.getTime()), /* tolerance in milliseconds */ 3000);
|
||||
c.set(2011, 6-1, 23, 16, 11, 03);
|
||||
assertManeuver(maneuvers, Maneuver.Type.TACK, Tack.STARBOARD, new MillisecondsTimePoint(c.getTime()), /* tolerance in milliseconds */ 3000);
|
||||
c.set(2011, 6-1, 23, 16, 16, 13);
|
||||
assertManeuver(maneuvers, Maneuver.Type.JIBE, Tack.STARBOARD, new MillisecondsTimePoint(c.getTime()), /* tolerance in milliseconds */ 3000);
|
||||
c.set(2011, 6-1, 23, 16, 20, 1);
|
||||
assertManeuver(maneuvers, Maneuver.Type.JIBE, Tack.PORT, new MillisecondsTimePoint(c.getTime()), /* tolerance in milliseconds */ 3000);
|
||||
c.set(2011, 6-1, 23, 16, 22, 25);
|
||||
assertManeuver(maneuvers, Maneuver.Type.JIBE, Tack.STARBOARD, new MillisecondsTimePoint(c.getTime()), /* tolerance in milliseconds */ 3000);
|
||||
}
|
||||
|
||||
private void assertManeuver(List<Maneuver> maneuvers, Type type, Tack newTack,
|
||||
MillisecondsTimePoint timePoint, int toleranceInMilliseconds) {
|
||||
for (Maneuver maneuver : maneuvers) {
|
||||
if (maneuver.getType() == type && (newTack == null || newTack == maneuver.getNewTack()) &&
|
||||
Math.abs(maneuver.getTimePoint().asMillis() - timePoint.asMillis()) <= toleranceInMilliseconds) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
fail("Didn't find maneuver type " + type + (newTack == null ? "" : " to new tack " + newTack) + " in "
|
||||
+ toleranceInMilliseconds + "ms around " + timePoint);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user