0.10.6
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import XCTest
|
||||
@testable import Luma
|
||||
|
||||
final class GeoLocationTests: XCTestCase {
|
||||
func testGeoURIFormattingAndParsing() throws {
|
||||
let location = try XCTUnwrap(
|
||||
GeoLocation(latitude: 59.3293, longitude: 18.0686, uncertainty: 14.4)
|
||||
)
|
||||
|
||||
XCTAssertEqual(location.uriString, "geo:59.329300,18.068600;u=14")
|
||||
|
||||
let decoded = try XCTUnwrap(GeoLocation(uri: location.uriString))
|
||||
XCTAssertEqual(decoded.latitude, 59.3293, accuracy: 0.000_001)
|
||||
XCTAssertEqual(decoded.longitude, 18.0686, accuracy: 0.000_001)
|
||||
XCTAssertEqual(try XCTUnwrap(decoded.uncertainty), 14, accuracy: 0.001)
|
||||
}
|
||||
|
||||
func testGeoURIWithoutUncertainty() throws {
|
||||
let location = try XCTUnwrap(GeoLocation(uri: "geo:-33.8688,151.2093"))
|
||||
|
||||
XCTAssertEqual(location.latitude, -33.8688, accuracy: 0.000_001)
|
||||
XCTAssertEqual(location.longitude, 151.2093, accuracy: 0.000_001)
|
||||
XCTAssertNil(location.uncertainty)
|
||||
}
|
||||
|
||||
func testInvalidCoordinatesAreRejected() {
|
||||
XCTAssertNil(GeoLocation(latitude: 91, longitude: 0))
|
||||
XCTAssertNil(GeoLocation(latitude: 0, longitude: -181))
|
||||
XCTAssertNil(GeoLocation(uri: "https://maps.example.org/59,18"))
|
||||
XCTAssertNil(GeoLocation(uri: "geo:not-a-number,18"))
|
||||
XCTAssertNil(GeoLocation(uri: "geo:59,18;u=unknown"))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user