mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
fixed test WindEstimationOnConstructedTracksTest.testWindEstimationPreferringLargerClusters;
the test was affected by the now working caching in ShortTimeWindCache, and the "uncached" variant of the non-public API of DynamicTrackedRaceImpl had to be used instead
This commit is contained in:
1 parent
43b9a0144f
commit
93e818056f
6 files changed
+18
-18
No files matched your search
+5
-4
@@ -31,6 +31,7 @@ import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
|
||||
import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedRegatta;
|
||||
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
|
||||
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl;
|
||||
import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
|
||||
import com.sap.sailing.domain.tracking.impl.GPSFixImpl;
|
||||
@@ -63,7 +64,7 @@ public abstract class OnlineTracTracBasedTest extends AbstractTracTracLiveTest {
|
||||
private Regatta domainEvent;
|
||||
private DynamicTrackedRegatta trackedRegatta;
|
||||
private RaceDefinition race;
|
||||
private DynamicTrackedRace trackedRace;
|
||||
private DynamicTrackedRaceImpl trackedRace;
|
||||
|
||||
private final Object semaphor = new Object();
|
||||
|
||||
@@ -159,7 +160,7 @@ public abstract class OnlineTracTracBasedTest extends AbstractTracTracLiveTest {
|
||||
receiver.join();
|
||||
logger.info("Joined receiver "+receiver);
|
||||
}
|
||||
trackedRace = getTrackedRegatta().getTrackedRace(race);
|
||||
trackedRace = (DynamicTrackedRaceImpl) getTrackedRegatta().getTrackedRace(race);
|
||||
}
|
||||
|
||||
private void setStoredDataLoaded(boolean storedDataLoaded) {
|
||||
@@ -232,11 +233,11 @@ public abstract class OnlineTracTracBasedTest extends AbstractTracTracLiveTest {
|
||||
this.race = race;
|
||||
}
|
||||
|
||||
protected DynamicTrackedRace getTrackedRace() {
|
||||
protected DynamicTrackedRaceImpl getTrackedRace() {
|
||||
return trackedRace;
|
||||
}
|
||||
|
||||
protected void setTrackedRace(DynamicTrackedRace race) {
|
||||
protected void setTrackedRace(DynamicTrackedRaceImpl race) {
|
||||
this.trackedRace = race;
|
||||
}
|
||||
|
||||
|
||||
+2
-3
@@ -44,7 +44,6 @@ import com.sap.sailing.domain.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.common.impl.WindSourceImpl;
|
||||
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
|
||||
import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tracking.TrackedLeg;
|
||||
import com.sap.sailing.domain.tracking.TrackedRegatta;
|
||||
@@ -84,7 +83,7 @@ public class ReachingLegTest extends TrackBasedTest {
|
||||
getTrackedRace().updateMarkPassings(plattner, plattnersMarkPassings);
|
||||
}
|
||||
|
||||
protected DynamicTrackedRace createTrackedRace(String regattaName, String raceName, String boatClassName,
|
||||
protected DynamicTrackedRaceImpl createTrackedRace(String regattaName, String raceName, String boatClassName,
|
||||
Iterable<Competitor> competitors, TimePoint timePointForFixes) {
|
||||
BoatClassImpl boatClass = new BoatClassImpl(boatClassName, /* typicallyStartsUpwind */ true);
|
||||
Regatta regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, RegattaImpl.getDefaultName(regattaName, boatClass.getName()), boatClass, /* trackedRegattaRegistry */ null,
|
||||
@@ -103,7 +102,7 @@ public class ReachingLegTest extends TrackBasedTest {
|
||||
waypoints.add(new WaypointImpl(leeGate));
|
||||
Course course = new CourseImpl(raceName, waypoints);
|
||||
RaceDefinition race = new RaceDefinitionImpl(raceName, course, boatClass, competitors);
|
||||
DynamicTrackedRace trackedRace = new DynamicTrackedRaceImpl(trackedRegatta, race, Collections.<Sideline> emptyList(), EmptyWindStore.INSTANCE,
|
||||
DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(trackedRegatta, race, Collections.<Sideline> emptyList(), EmptyWindStore.INSTANCE,
|
||||
EmptyGPSFixStore.INSTANCE, /* delayToLiveInMillis */ 0,
|
||||
/* millisecondsOverWhichToAverageWind */ 30000, /* millisecondsOverWhichToAverageSpeed */ 30000,
|
||||
/* delay for wind estimation cache invalidation */ 0);
|
||||
|
||||
+5
-6
@@ -38,7 +38,6 @@ import com.sap.sailing.domain.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.common.impl.WindSourceImpl;
|
||||
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
|
||||
import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tracking.TrackedRegatta;
|
||||
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
|
||||
@@ -49,13 +48,13 @@ import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
|
||||
import com.sap.sailing.domain.tracking.impl.WindImpl;
|
||||
|
||||
public abstract class TrackBasedTest {
|
||||
private DynamicTrackedRace trackedRace;
|
||||
private DynamicTrackedRaceImpl trackedRace;
|
||||
|
||||
protected DynamicTrackedRace getTrackedRace() {
|
||||
protected DynamicTrackedRaceImpl getTrackedRace() {
|
||||
return trackedRace;
|
||||
}
|
||||
|
||||
protected void setTrackedRace(DynamicTrackedRace trackedRace) {
|
||||
protected void setTrackedRace(DynamicTrackedRaceImpl trackedRace) {
|
||||
this.trackedRace = trackedRace;
|
||||
}
|
||||
|
||||
@@ -94,7 +93,7 @@ public abstract class TrackBasedTest {
|
||||
* tracked race returned by this method) is important because otherwise confidences of wind readouts may
|
||||
* be ridiculously low.
|
||||
*/
|
||||
public static DynamicTrackedRace createTestTrackedRace(String regattaName, String raceName, String boatClassName,
|
||||
public static DynamicTrackedRaceImpl createTestTrackedRace(String regattaName, String raceName, String boatClassName,
|
||||
Iterable<Competitor> competitors, TimePoint timePointForFixes) {
|
||||
BoatClassImpl boatClass = new BoatClassImpl(boatClassName, /* typicallyStartsUpwind */ true);
|
||||
Regatta regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, RegattaImpl.getDefaultName(regattaName, boatClass.getName()), boatClass, /* trackedRegattaRegistry */ null,
|
||||
@@ -113,7 +112,7 @@ public abstract class TrackBasedTest {
|
||||
waypoints.add(new WaypointImpl(leeGate));
|
||||
Course course = new CourseImpl(raceName, waypoints);
|
||||
RaceDefinition race = new RaceDefinitionImpl(raceName, course, boatClass, competitors);
|
||||
DynamicTrackedRace trackedRace = new DynamicTrackedRaceImpl(trackedRegatta, race, Collections.<Sideline> emptyList(), EmptyWindStore.INSTANCE,
|
||||
DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(trackedRegatta, race, Collections.<Sideline> emptyList(), EmptyWindStore.INSTANCE,
|
||||
EmptyGPSFixStore.INSTANCE, /* delayToLiveInMillis */ 0,
|
||||
/* millisecondsOverWhichToAverageWind */ 30000, /* millisecondsOverWhichToAverageSpeed */ 30000,
|
||||
/* delay for wind estimation cache invalidation */ 0);
|
||||
|
||||
+2
-2
@@ -117,14 +117,14 @@ public class WindEstimationOnConstructedTracksTest extends StoredTrackBasedTest
|
||||
setBearingForCompetitor(competitors.get(0), now, 305);
|
||||
setBearingForCompetitor(competitors.get(1), now, 35);
|
||||
WindWithConfidence<Util.Pair<Position, TimePoint>> combinedWindDirectionMinClusterSizeOne = getTrackedRace()
|
||||
.getWindWithConfidence(/* position */null, now);
|
||||
.getWindWithConfidenceUncached(/* position */null, now, getTrackedRace().getWindSourcesToExclude());
|
||||
final double combinedDegreesMinClusterSizeOne = combinedWindDirectionMinClusterSizeOne.getObject().getBearing().getDegrees();
|
||||
assertTrue(combinedDegreesMinClusterSizeOne > 170 && combinedDegreesMinClusterSizeOne < 180);
|
||||
// now produce a minimum cluster size of 2, raising the estimation's confidence
|
||||
setBearingForCompetitor(competitors.get(2), now, 305);
|
||||
setBearingForCompetitor(competitors.get(3), now, 35);
|
||||
WindWithConfidence<Util.Pair<Position, TimePoint>> combinedWindDirectionMinClusterSizeTwo = getTrackedRace()
|
||||
.getWindWithConfidence(/* position */null, now);
|
||||
.getWindWithConfidenceUncached(/* position */null, now, getTrackedRace().getWindSourcesToExclude());
|
||||
final double combinedDegreesNow = combinedWindDirectionMinClusterSizeTwo.getObject().getBearing().getDegrees();
|
||||
assertTrue(combinedDegreesNow > 170 && combinedDegreesNow < 180);
|
||||
// we expect the combined direction now to be closer to the estimation as compared to before because the estimation is more confident
|
||||
|
||||
+3
-2
@@ -41,6 +41,7 @@ import com.sap.sailing.domain.tracking.DynamicTrackedRace;
|
||||
import com.sap.sailing.domain.tracking.GPSFix;
|
||||
import com.sap.sailing.domain.tracking.GPSFixMoving;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
|
||||
import com.sap.sailing.domain.tracking.impl.WindImpl;
|
||||
import com.sap.sailing.domain.tractracadapter.ReceiverType;
|
||||
import com.tractrac.model.lib.api.event.CreateModelException;
|
||||
@@ -137,8 +138,8 @@ public abstract class MartinAbstractMarkPassingTest extends OnlineTracTracBasedT
|
||||
}
|
||||
}
|
||||
|
||||
if (obj != null && obj instanceof DynamicTrackedRace) {
|
||||
setTrackedRace((DynamicTrackedRace) obj);
|
||||
if (obj != null && obj instanceof DynamicTrackedRaceImpl) {
|
||||
setTrackedRace((DynamicTrackedRaceImpl) obj);
|
||||
setRace(getTrackedRace().getRace());
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.DevMode"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-war "${project_loc:com.sap.sailing.gwt.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort 9997 -startupUrl /gwt/Home.html com.sap.sailing.gwt.Home -startupUrl /gwt/AdminConsole.html com.sap.sailing.gwt.ui.AdminConsole -startupUrl /gwt/LeaderboardEditing.html com.sap.sailing.gwt.ui.LeaderboardEditing -startupUrl /gwt/UserManagement.html com.sap.sailing.gwt.ui.UserManagement -startupUrl /gwt/Leaderboard.html com.sap.sailing.gwt.ui.Leaderboard -startupUrl /gwt/Spectator.html com.sap.sailing.gwt.ui.Spectator -startupUrl /gwt/RaceBoard.html com.sap.sailing.gwt.ui.RaceBoard -startupUrl /gwt/TvView.html com.sap.sailing.gwt.ui.TvView -startupUrl /gwt/PolarSheets.html com.sap.sailing.gwt.ui.PolarSheets -startupUrl /gwt/RegattaOverview.html com.sap.sailing.gwt.ui.RegattaOverview -startupUrl /gwt/DataMining.html com.sap.sailing.gwt.ui.DataMining -startupUrl /gwt/Simulator.html com.sap.sailing.gwt.ui.Simulator -startupUrl /gwt/VideoPopup.html com.sap.sailing.gwt.ui.VideoPopup -startupUrl /gwt/Search.html com.sap.sailing.gwt.ui.Search -startupUrl /security/ui/Login.html com.sap.sse.security.ui.Login -startupUrl /security/ui/EditProfile.html com.sap.sse.security.ui.EditProfile -startupUrl /security/ui/EmailValidation.html com.sap.sse.security.ui.EmailValidation"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-war "${project_loc:com.sap.sailing.gwt.ui}" -noserver -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -logLevel INFO -codeServerPort 9997 -startupUrl /gwt/Home.html com.sap.sailing.gwt.Home -startupUrl /gwt/AdminConsole.html com.sap.sailing.gwt.ui.AdminConsole -startupUrl /gwt/LeaderboardEditing.html com.sap.sailing.gwt.ui.LeaderboardEditing -startupUrl /gwt/UserManagement.html com.sap.sailing.gwt.ui.UserManagement -startupUrl /gwt/Leaderboard.html com.sap.sailing.gwt.ui.Leaderboard -startupUrl /gwt/Spectator.html com.sap.sailing.gwt.ui.Spectator -startupUrl /gwt/RaceBoard.html com.sap.sailing.gwt.ui.RaceBoard -startupUrl /gwt/TvView.html com.sap.sailing.gwt.ui.TvView -startupUrl /gwt/PolarSheets.html com.sap.sailing.gwt.ui.PolarSheets -startupUrl /gwt/RegattaOverview.html com.sap.sailing.gwt.ui.RegattaOverview -startupUrl /gwt/DataMining.html com.sap.sailing.gwt.ui.DataMining -startupUrl /gwt/Simulator.html com.sap.sailing.gwt.ui.Simulator -startupUrl /gwt/VideoPopup.html com.sap.sailing.gwt.ui.VideoPopup -startupUrl /gwt/Search.html com.sap.sailing.gwt.ui.Search -startupUrl /security/ui/Login.html com.sap.sse.security.ui.Login -startupUrl /security/ui/EditProfile.html com.sap.sse.security.ui.EditProfile -startupUrl /security/ui/EmailValidation.html com.sap.sse.security.ui.EmailValidation com.sap.sailing.gwt.ui.Simulator com.sap.sailing.gwt.ui.Leaderboard com.sap.sailing.gwt.ui.PolarSheets com.sap.sailing.gwt.ui.VideoPopup com.sap.sailing.gwt.AutoPlay com.sap.sailing.gwt.ui.RegattaOverview com.sap.sailing.gwt.ui.Spectator com.sap.sailing.gwt.ui.TvView com.sap.sailing.gwt.ui.UserManagement com.sap.sailing.gwt.ui.Search com.sap.sailing.gwt.ui.AdminConsole com.sap.sailing.gwt.ui.LeaderboardEditing com.sap.sailing.gwt.ui.YoutubePopup com.sap.sailing.gwt.ui.DataMining com.sap.sailing.gwt.Home com.sap.sailing.gwt.ui.RaceBoard"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.sap.sailing.gwt.ui"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx2048m"/>
|
||||
</launchConfiguration>
|
||||
Reference in new issue
Block a user