mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-27 22:37:15 +00:00
provided a fix, also for the test case, for bug 3364: use iterator to remove cache elements to avoid CME
This commit is contained in:
1 parent
d6e25bb867
commit
0af2af5979
2 files changed
+6
-5
No files matched your search
+2
-3
@@ -144,15 +144,14 @@ public class WaypointPositionAndDistanceCacheTest {
|
||||
trackedRace.getOrCreateTrack(windward).add(new GPSFixImpl(new DegreePosition(1, 0).translateGreatCircle(
|
||||
new DegreeBearingImpl(0), new KnotSpeedImpl(20).travel(now, now.plus(timeRangeResolution.times(3)))),
|
||||
now.plus(timeRangeResolution.times(3))));
|
||||
assertEquals(60, cache.getApproximateDistance(start, windwardWaypoint, now).getNauticalMiles(), 0.01);
|
||||
assertEquals(60+new NauticalMileDistance(20).scale(timeRangeResolution.divide(Duration.ONE_HOUR)).getNauticalMiles(), cache.getApproximateDistance(start, windwardWaypoint, now.plus(timeRangeResolution)).getNauticalMiles(), 0.01);
|
||||
assertEquals(60+new NauticalMileDistance(20).scale(timeRangeResolution.times(2).divide(Duration.ONE_HOUR)).getNauticalMiles(), cache.getApproximateDistance(start, windwardWaypoint, now.plus(timeRangeResolution.times(2))).getNauticalMiles(), 0.01);
|
||||
trackedRace.getOrCreateTrack(windward).add(new GPSFixImpl(new DegreePosition(1, 0).translateGreatCircle(
|
||||
new DegreeBearingImpl(0), new KnotSpeedImpl(20).travel(now, now.plus(timeRangeResolution.divide(5)))),
|
||||
now.plus(timeRangeResolution.divide(5)))); // cause cache invalidation with several entries in the map
|
||||
recalculations = 0;
|
||||
assertEquals(60+new NauticalMileDistance(20).scale(timeRangeResolution.times(2).divide(Duration.ONE_HOUR)).getNauticalMiles(), cache.getApproximateDistance(start, windwardWaypoint, now.plus(timeRangeResolution.times(2))).getNauticalMiles(), 0.01);
|
||||
assertEquals(1, recalculations);
|
||||
assertEquals(60, cache.getApproximateDistance(start, windwardWaypoint, now).getNauticalMiles(), 0.01);
|
||||
assertEquals(2, recalculations); // distance calculation also requires position calculation, therefore 2, not 1
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user