Clarify Best Value route confidence
This commit is contained in:
@@ -688,6 +688,41 @@ final class RoadDistanceCacheTests: XCTestCase {
|
||||
XCTAssertEqual(km, moved.distanceKM(to: 51.6, lng2: -0.1), accuracy: 0.0001,
|
||||
"road value routed to the old pin leaked onto a different coordinate")
|
||||
}
|
||||
|
||||
func testPartialRoadCacheCanMixRoadAndStraightLineDistances() {
|
||||
let routed = station("routed", 51.5074, -0.1278)
|
||||
let estimated = station("estimated", 51.5100, -0.1300)
|
||||
FuelStore.saveRoadDistances(sourceLat: 51.6, sourceLng: -0.1,
|
||||
entries: ["routed": .init(meters: 3200, lat: 51.5074, lng: -0.1278, returnMeters: 3600)])
|
||||
|
||||
XCTAssertEqual(FuelStore.roadDistanceMeters(for: routed, userLat: 51.6, userLng: -0.1), 3200)
|
||||
XCTAssertNil(FuelStore.roadDistanceMeters(for: estimated, userLat: 51.6, userLng: -0.1))
|
||||
XCTAssertEqual(FuelStore.displayDistanceKM(station: routed, userLat: 51.6, userLng: -0.1), 3.2, accuracy: 0.0001)
|
||||
XCTAssertEqual(FuelStore.displayDistanceKM(station: estimated, userLat: 51.6, userLng: -0.1),
|
||||
estimated.distanceKM(to: 51.6, lng2: -0.1),
|
||||
accuracy: 0.0001)
|
||||
XCTAssertEqual(FuelStore.roadJourneyMeters(for: routed, userLat: 51.6, userLng: -0.1), 6800,
|
||||
"outward and return road routes are combined once, not doubled")
|
||||
XCTAssertTrue(FuelStore.hasMeasuredReturnRoadDistance(for: routed, userLat: 51.6, userLng: -0.1))
|
||||
XCTAssertFalse(FuelStore.hasMeasuredReturnRoadDistance(for: estimated, userLat: 51.6, userLng: -0.1))
|
||||
}
|
||||
|
||||
func testLegacyOneWayRoadCacheIsUsableButNotConfirmed() {
|
||||
let legacy = station("legacy", 51.5074, -0.1278)
|
||||
FuelStore.saveRoadDistances(sourceLat: 51.6, sourceLng: -0.1,
|
||||
entries: ["legacy": .init(meters: 3200, lat: 51.5074, lng: -0.1278)])
|
||||
|
||||
XCTAssertEqual(FuelStore.roadJourneyMeters(for: legacy, userLat: 51.6, userLng: -0.1), 6400)
|
||||
XCTAssertFalse(FuelStore.hasMeasuredReturnRoadDistance(for: legacy, userLat: 51.6, userLng: -0.1),
|
||||
"legacy one-way cache entries infer the return leg and must remain estimated")
|
||||
let diagnostics = FuelStore.roadDistanceDiagnostics(for: legacy, userLat: 51.6, userLng: -0.1)
|
||||
XCTAssertEqual(diagnostics.displaySource, .roadRoute)
|
||||
XCTAssertEqual(diagnostics.outwardMeters, 3200)
|
||||
XCTAssertNil(diagnostics.returnMeters)
|
||||
XCTAssertEqual(diagnostics.totalJourneyMeters, 6400)
|
||||
XCTAssertFalse(diagnostics.hasMeasuredReturn)
|
||||
XCTAssertTrue(diagnostics.hasValidCacheEntry)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Install identity
|
||||
|
||||
Reference in New Issue
Block a user