bug5932: working test 42m

This commit is contained in:
Lisa committed 2023-12-20 17:30:05 +01:00
1 parent ae0e374b60
commit c6096ea916
2 files changed
+89 -70

No files matched your search

@@ -14,5 +14,6 @@ Require-Bundle: org.mockito.mockito-core;bundle-version="4.8.1",
com.sap.sse.common,
org.objenesis;bundle-version="2.1.0",
net.bytebuddy.byte-buddy;bundle-version="1.12.18",
net.bytebuddy.byte-buddy-agent;bundle-version="1.12.18"
net.bytebuddy.byte-buddy-agent;bundle-version="1.12.18",
com.sap.sailing.domain.test
Automatic-Module-Name: com.sap.sailing.datamining.test
@@ -2,94 +2,112 @@ package com.sap.sailing.datamining.impl.components;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.when;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import com.sap.sailing.datamining.data.HasLeaderboardContext;
import com.sap.sailing.datamining.data.HasRaceOfCompetitorContext;
import com.sap.sailing.datamining.data.HasTackTypeSegmentContext;
import com.sap.sailing.datamining.data.HasTrackedRaceContext;
import com.sap.sailing.datamining.impl.data.LeaderboardWithContext;
import com.sap.sailing.datamining.impl.data.RaceOfCompetitorWithContext;
import com.sap.sailing.datamining.impl.data.TrackedRaceWithContext;
import com.sap.sailing.domain.base.Boat;
import com.sap.sailing.datamining.shared.TackTypeSegmentsDataMiningSettings;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.impl.BoatImpl;
import com.sap.sailing.domain.base.impl.CompetitorImpl;
import com.sap.sailing.domain.base.impl.DynamicBoat;
import com.sap.sailing.domain.base.impl.NationalityImpl;
import com.sap.sailing.domain.base.impl.PersonImpl;
import com.sap.sailing.domain.base.impl.TeamImpl;
import com.sap.sailing.domain.base.CompetitorWithBoat;
import com.sap.sailing.domain.base.Waypoint;
import com.sap.sailing.domain.base.impl.CourseAreaImpl;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.impl.DegreePosition;
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
import com.sap.sailing.domain.tracking.GPSFixTrack;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sse.common.Color;
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl;
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl;
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
import com.sap.sailing.domain.test.StoredTrackBasedTest;
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
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.impl.DegreeBearingImpl;
import com.sap.sse.common.impl.MillisecondsTimePoint;
public class TestSegmentsTackType extends StoredTrackBasedTest {
DynamicTrackedRaceImpl trackedRace;
CompetitorWithBoat competitorA;
public class TestTackTypeSegments {
TrackedRace trackedRace;
GPSFixTrack<Competitor, GPSFixMoving> track;
Competitor competitor;
@Before
public void setup () {
Map<Competitor, Boat> competitors = new HashMap<>();
Competitor competitor = new CompetitorImpl(UUID.randomUUID(), "testPerson", "HP", Color.RED, null, null, new TeamImpl("STG", Collections.singleton(
new PersonImpl("testPerson", new NationalityImpl("GER"),
/* dateOfBirth */null, "This is famous " + "testPerson")), new PersonImpl("Rigo van Maas",
new NationalityImpl("NED"),
/* dateOfBirth */null, "This is Rigo, the coach")),
/* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null, null);
DynamicBoat boat = new BoatImpl(competitor.getId(), "testPerson" + "'s boat", null, null, null);
competitors.put(competitor, boat);
public void setup() {
competitorA = createCompetitorWithBoat("A");
trackedRace = createTestTrackedRace("TestRegatta", "TestRace", "F18", createCompetitorAndBoatsMap(competitorA),
MillisecondsTimePoint.now(), /* useMarkPassingCalculator */ true, null,
OneDesignRankingMetric::new);
}
@Test
public void testingMissingMarkPassing () {
final HasRaceOfCompetitorContext element = Mockito.mock(HasRaceOfCompetitorContext.class);
final TrackedRaceWithContext trackedRaceContext = Mockito.mock(TrackedRaceWithContext.class);
final TackTypeSegmentRetrievalProcessor resultTTSegmentsRetrieval = Mockito.mock(TackTypeSegmentRetrievalProcessor.class);
when(element.getTrackedRaceContext()).thenReturn(trackedRaceContext);
when(element.getCompetitor()).thenReturn(competitor);
when(trackedRaceContext.getTrackedRace().getTrack(element.getCompetitor())).thenReturn(track);
//vorhandene segmente in liste und distanzen zusammenrechnen
Iterable<HasTackTypeSegmentContext> allTTSegments = resultTTSegmentsRetrieval.retrieveData(element);
Distance sum=null;
for (HasTackTypeSegmentContext oneTTSegment : allTTSegments) {
sum = sum.add(oneTTSegment.getDistance());
DynamicGPSFixTrack<Competitor, GPSFixMoving> competitorATrack = trackedRace.getTrack(competitorA);
GPSFixMovingImpl currentGPS = new GPSFixMovingImpl(new DegreePosition(54.4680424, 10.234451), trackedRace.getStartOfTracking().plus(10),
new KnotSpeedWithBearingImpl(10, new DegreeBearingImpl(45)));
for (int i=0; i<20;i++) {
competitorATrack.addGPSFix(currentGPS);
Position currentPosition = currentGPS.getSpeed().travelTo(currentGPS.getPosition(), currentGPS.getTimePoint(), currentGPS.getTimePoint().plus(490));
currentGPS = new GPSFixMovingImpl (currentPosition, currentGPS.getTimePoint().plus(240),
new KnotSpeedWithBearingImpl(10, new DegreeBearingImpl(45)));
}
// Distance sum2 = null;
// result.forEach(currentcase -> sum2.add(currentcase.getDistance()));
//
//ergebnis der distanzen checken
assertTrue(sum==null);
assertEquals(null, sum);
TimePoint fixTimePoint = new MillisecondsTimePoint(trackedRace.getStartOfTracking().asMillis());
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);
}
//missing + skipped
@Test
public void testingFixExactOnMarkPassing () {
public void testingMissingMarkPassing() {
// missing + skipped
final Leaderboard leaderboard = new FlexibleLeaderboardImpl("Test",
new ThresholdBasedResultDiscardingRuleImpl(new int[0]), new LowPoint(),
new CourseAreaImpl("Here", UUID.randomUUID(), /* centerPosition */ null, /* radius */ null));
final HasLeaderboardContext leaderboardContext = new LeaderboardWithContext(leaderboard, null);
final HasTrackedRaceContext trackedRaceContext = new TrackedRaceWithContext(leaderboardContext,
trackedRace.getTrackedRegatta().getRegatta(), null, null, trackedRace);
final HasRaceOfCompetitorContext raceOfCompContext = new RaceOfCompetitorWithContext(trackedRaceContext, competitorA);
final TackTypeSegmentRetrievalProcessor resultTTSegmentsRetrieval = new TackTypeSegmentRetrievalProcessor(null, Collections.emptySet(), TackTypeSegmentsDataMiningSettings.createDefaultSettings(), 0, null);
final Iterable<HasTackTypeSegmentContext> allTTSegments = resultTTSegmentsRetrieval.retrieveData(raceOfCompContext);
Distance sumDistance = new NullDistance();
for (HasTackTypeSegmentContext oneTTSegment : allTTSegments) {
if (oneTTSegment != null) {
sumDistance = sumDistance.add(oneTTSegment.getDistance());
}
}
assertTrue(sumDistance == null);
assertEquals(null, sumDistance);
}
@Test
public void testingOpenEndedRace () {}
public void testingFixExactOnMarkPassing() {
}
@Test
public void testingFinishedRace () {}
}
public void testingOpenEndedRace() {
}
@Test
public void testingFinishedRace() {
}
}