diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java index ed36650473a..82a9a479a89 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java @@ -464,7 +464,8 @@ public class WindTrackImpl extends TrackImpl implements WindTrack { public void remove(Wind wind) { lockForWrite(); try { - getInternalRawFixes().remove(wind); + // map through "compactify" to account for possible rounding / accuracy differences and still achieve "equals" + getInternalRawFixes().remove(compactify(wind)); } finally { unlockAfterWrite(); } diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java index ff35ebd6f41..1897dee07c4 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java @@ -1,7 +1,6 @@ package com.sap.sailing.server.replication.test; import static org.hamcrest.core.Is.is; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; @@ -57,6 +56,7 @@ import com.sap.sailing.domain.persistence.PersistenceFactory; import com.sap.sailing.domain.persistence.media.MediaDBFactory; import com.sap.sailing.domain.racelog.tracking.EmptySensorFixStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.test.PositionAssert; import com.sap.sailing.domain.test.TrackBasedTest; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; @@ -158,7 +158,7 @@ public class InitialLoadReplicationObjectIdentityTest extends AbstractServerRepl WindTrack masterRCWindFixes = masterTrackedRace.getOrCreateWindTrack(new WindSourceImpl(WindSourceType.RACECOMMITTEE)); masterRCWindFixes.lockForRead(); try { - assertEquals(masterWindFix, masterRCWindFixes.getRawFixes().iterator().next()); + PositionAssert.assertWindEquals(masterWindFix, masterRCWindFixes.getRawFixes().iterator().next(), /* pos deg delta */ 0.0000001, /* bearing deg delta */ 0.01, /* knot speed delta */ 0.01); } finally { masterRCWindFixes.unlockAfterRead(); } @@ -233,7 +233,7 @@ public class InitialLoadReplicationObjectIdentityTest extends AbstractServerRepl try { Iterator replicaRCWindFixesIter = replicaRCWindFixes.getRawFixes().iterator(); replicaRCWindFixesIter.next(); - assertEquals(replicaWindFix, replicaRCWindFixesIter.next()); + PositionAssert.assertWindEquals(replicaWindFix, replicaRCWindFixesIter.next(), /* pos deg delta */ 0.0000001, /* bearing deg delta */ 0.01, /* knot speed delta */ 0.02); } finally { replicaRCWindFixes.unlockAfterRead(); } diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceContentsReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceContentsReplicationTest.java index e1627fad87f..06ba867545a 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceContentsReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceContentsReplicationTest.java @@ -44,6 +44,7 @@ import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.persistence.MongoWindStore; import com.sap.sailing.domain.persistence.MongoWindStoreFactory; import com.sap.sailing.domain.persistence.PersistenceFactory; +import com.sap.sailing.domain.test.PositionAssert; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.GPSFixTrack; @@ -130,7 +131,7 @@ public class TrackedRaceContentsReplicationTest extends AbstractServerReplicatio competitorTrack.lockForRead(); try { assertEquals(1, Util.size(competitorTrack.getRawFixes())); - assertEquals(fix, competitorTrack.getRawFixes().iterator().next()); + PositionAssert.assertGPSFixEquals(fix, competitorTrack.getRawFixes().iterator().next(), /* pos deg delta */ 0.0000001, /* bearing deg delta */ 0.01, /* knot speed delta */ 0.01); assertNotSame(fix, competitorTrack.getRawFixes().iterator().next()); } finally { competitorTrack.unlockAfterRead(); @@ -151,7 +152,7 @@ public class TrackedRaceContentsReplicationTest extends AbstractServerReplicatio replicaMarkTrack.lockForRead(); try { assertEquals(1, Util.size(replicaMarkTrack.getRawFixes())); - assertEquals(replicaMarkTrack.getRawFixes().iterator().next(), fix); + PositionAssert.assertGPSFixEquals(replicaMarkTrack.getRawFixes().iterator().next(), fix, /* pos deg delta */ 0.0000001); assertNotSame(fix, replicaMarkTrack.getRawFixes().iterator().next()); } finally { replicaMarkTrack.unlockAfterRead(); @@ -174,7 +175,7 @@ public class TrackedRaceContentsReplicationTest extends AbstractServerReplicatio try { assertEquals(1, Util.size(replicaWindTrack.getRawFixes())); Wind replicaWind = replicaWindTrack.getRawFixes().iterator().next(); - assertEquals(wind, replicaWind); + PositionAssert.assertWindEquals(wind, replicaWind, /* pos deg delta */ 0.0000001, /* bearing deg delta */ 0.02, /* knot speed delta */ 0.02); assertNotSame(wind, replicaWind); } finally { replicaWindTrack.unlockAfterRead(); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceWithGPSFixStoreContentsReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceWithGPSFixStoreContentsReplicationTest.java index fa18de8ae77..33d122a22b9 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceWithGPSFixStoreContentsReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceWithGPSFixStoreContentsReplicationTest.java @@ -37,6 +37,8 @@ import com.sap.sailing.domain.common.tracking.GPSFixMoving; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.persistence.MongoWindStoreFactory; import com.sap.sailing.domain.persistence.PersistenceFactory; +import com.sap.sailing.domain.racelog.tracking.GPSFixStore; +import com.sap.sailing.domain.test.PositionAssert; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.GPSFixTrack; @@ -157,7 +159,7 @@ public class TrackedRaceWithGPSFixStoreContentsReplicationTest extends AbstractS competitorTrack.lockForRead(); try { assertEquals(1, Util.size(competitorTrack.getRawFixes())); - assertEquals(fix, competitorTrack.getRawFixes().iterator().next()); + PositionAssert.assertGPSFixEquals(fix, competitorTrack.getRawFixes().iterator().next(), /* pos deg delta */ 0.0000001, /* bearing deg delta */ 0.01, /* knot speed delta */ 0.01); assertNotSame(fix, competitorTrack.getRawFixes().iterator().next()); } finally { competitorTrack.unlockAfterRead();