mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-21 21:25:38 +00:00
bug5932: refactored first tack type segment test
This commit is contained in:
+25
-21
@@ -2,9 +2,9 @@ package com.sap.sailing.datamining.impl.components;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -38,8 +38,9 @@ import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
|
||||
import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
|
||||
import com.sap.sse.common.Distance;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.Distance.NullDistance;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.impl.DegreeBearingImpl;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
@@ -55,24 +56,6 @@ public class TestSegmentsTackType extends StoredTrackBasedTest {
|
||||
trackedRace = createTestTrackedRace("TestRegatta", "TestRace", "F18", createCompetitorAndBoatsMap(competitorA),
|
||||
MillisecondsTimePoint.now(), /* useMarkPassingCalculator */ true, null,
|
||||
OneDesignRankingMetric::new);
|
||||
DynamicGPSFixTrack<Competitor, GPSFixMoving> competitorATrack = trackedRace.getTrack(competitorA);
|
||||
final KnotSpeedWithBearingImpl sogCog = new KnotSpeedWithBearingImpl(10, new DegreeBearingImpl(45));
|
||||
GPSFixMovingImpl currentGPS = new GPSFixMovingImpl(new DegreePosition(54.4680424, 10.234451), trackedRace.getStartOfTracking().plus(10), sogCog);
|
||||
for (int i=0; i<20; i++) {
|
||||
competitorATrack.addGPSFix(currentGPS);
|
||||
final Position currentPosition = currentGPS.getSpeed().travelTo(currentGPS.getPosition(), currentGPS.getTimePoint(), currentGPS.getTimePoint().plus(490));
|
||||
currentGPS = new GPSFixMovingImpl (currentPosition, currentGPS.getTimePoint().plus(240), sogCog);
|
||||
}
|
||||
TimePoint fixTimePoint = new MillisecondsTimePoint(trackedRace.getStartOfTracking().asMillis());
|
||||
final Set<MarkPassing> markPassingForCompetitor = new HashSet<MarkPassing>();
|
||||
int i=0;
|
||||
for (Waypoint waypoint : trackedRace.getRace().getCourse().getWaypoints()) {
|
||||
if (i++ <= 5) {
|
||||
markPassingForCompetitor.add(new MarkPassingImpl(fixTimePoint, waypoint, competitorA));
|
||||
fixTimePoint = new MillisecondsTimePoint(fixTimePoint.asMillis() + 1000);
|
||||
}
|
||||
}
|
||||
trackedRace.updateMarkPassings(competitorA, markPassingForCompetitor);
|
||||
final Leaderboard leaderboard = new FlexibleLeaderboardImpl("Test",
|
||||
new ThresholdBasedResultDiscardingRuleImpl(new int[0]), new LowPoint(),
|
||||
new CourseAreaImpl("Here", UUID.randomUUID(), /* centerPosition */ null, /* radius */ null));
|
||||
@@ -86,6 +69,27 @@ public class TestSegmentsTackType extends StoredTrackBasedTest {
|
||||
|
||||
@Test
|
||||
public void testingSegmentsAreNotNull() {
|
||||
// set up GPS fixes for competitor, as well as mark passings:
|
||||
DynamicGPSFixTrack<Competitor, GPSFixMoving> competitorATrack = trackedRace.getTrack(competitorA);
|
||||
final KnotSpeedWithBearingImpl sogCog = new KnotSpeedWithBearingImpl(10, new DegreeBearingImpl(45));
|
||||
TimePoint timePoint = trackedRace.getStartOfTracking().plus(10);
|
||||
GPSFixMovingImpl currentGPS = new GPSFixMovingImpl(new DegreePosition(54.4680424, 10.234451), timePoint, sogCog);
|
||||
final Duration timeBetweenFixes = Duration.ofMillis(490);
|
||||
for (int i=0; i<20; i++) {
|
||||
competitorATrack.addGPSFix(currentGPS);
|
||||
final Position currentPosition = sogCog.travelTo(currentGPS.getPosition(), timeBetweenFixes);
|
||||
timePoint = timePoint.plus(timeBetweenFixes);
|
||||
currentGPS = new GPSFixMovingImpl(currentPosition, timePoint, sogCog);
|
||||
}
|
||||
TimePoint markPassingTimePoint = new MillisecondsTimePoint(trackedRace.getStartOfTracking().asMillis());
|
||||
final List<MarkPassing> markPassingsForCompetitor = new ArrayList<>();
|
||||
final Duration legDuration = Duration.ofSeconds(60);
|
||||
for (Waypoint waypoint : trackedRace.getRace().getCourse().getWaypoints()) {
|
||||
markPassingsForCompetitor.add(new MarkPassingImpl(markPassingTimePoint, waypoint, competitorA));
|
||||
markPassingTimePoint = markPassingTimePoint.plus(legDuration);
|
||||
}
|
||||
trackedRace.updateMarkPassings(competitorA, markPassingsForCompetitor);
|
||||
// now run the actual test:
|
||||
Distance sumDistance = new NullDistance();
|
||||
for (HasTackTypeSegmentContext oneTTSegment : allTTSegments) {
|
||||
if (oneTTSegment != null) {
|
||||
|
||||
Reference in New Issue
Block a user