-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathGeospatialAPIIntegrationTestCase.swift
More file actions
53 lines (42 loc) · 2.77 KB
/
Copy pathGeospatialAPIIntegrationTestCase.swift
File metadata and controls
53 lines (42 loc) · 2.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import StadiaMaps
import XCTest
final class GeospatialAPIIntegrationTestCase: IntegrationXCTestCase {
let seoul = Coordinate(lat: 37.56, lon: 126.99)
let polyline = "_grbgAh~{nhF?lBAzBFvBHxBEtBKdB?fB@dBZdBb@hBh@jBb@x@\\|@x@pB\\x@v@hBl@nBPbCXtBn@|@z@ZbAEbAa@~@q@z@QhA]pAUpAVhAPlAWtASpAAdA[dASdAQhAIlARjANnAZhAf@n@`A?lB^nCRbA\\xB`@vBf@tBTbCFbARzBZvBThBRnBNrBP`CHbCF`CNdCb@vBX`ARlAJfADhA@dAFdAP`AR`Ah@hBd@bBl@rBV|B?vB]tBCvBBhAF`CFnBXtAVxAVpAVtAb@|AZ`Bd@~BJfA@fAHdADhADhABjAGzAInAAjAB|BNbCR|BTjBZtB`@lBh@lB\\|Bl@rBXtBN`Al@g@t@?nAA~AKvACvAAlAMdAU`Ac@hAShAI`AJ`AIdAi@bAu@|@k@p@]p@a@bAc@z@g@~@Ot@Bz@f@X`BFtBXdCLbAf@zBh@fBb@xAb@nATjAKjAW`BI|AEpAHjAPdAAfAGdAFjAv@p@XlAVnA?~A?jAInAPtAVxAXnAf@tBDpBJpBXhBJfBDpAZ|Ax@pAz@h@~@lA|@bAnAd@hAj@tAR~AKxAc@xAShA]hAIdAAjA]~A[v@BhB?dBSv@Ct@CvAI~@Oz@Pv@dAz@lAj@~A^`B^|AXvAVpAXdBh@~Ap@fCh@hB\\zBN`Aj@xBFdA@jALbAPbAJdAHdAJbAHbAHfAJhALbA\\lBTvBAdC@bC@jCKjASbC?`CM`CDpB\\xAj@tB\\fA\\bAVfAJdAJbAXz@L|BO`AOdCDdA@~B\\z@l@v@l@v@l@r@j@t@b@x@b@r@z@jBVfCJdAJdANbCPfCF|BRhBS~BS`AYbAe@~BQdA"
func testTZ() async throws {
let res = try await GeospatialAPI.tzLookup(lat: seoul.lat, lng: seoul.lon)
XCTAssertEqual(res.tzId, "Asia/Seoul")
}
func testTZV2() async throws {
let res = try await GeospatialAPI.tzLookupV2(lat: seoul.lat, lng: seoul.lon)
XCTAssertEqual(res.tzId, "Asia/Seoul")
XCTAssertTrue(res.utcOffset != 0)
XCTAssertFalse(res.localRfc3339Timestamp.isEmpty)
XCTAssertFalse(try XCTUnwrap(res.localRfc2822Timestamp?.isEmpty))
}
func testElevation() async throws {
let req = HeightRequest(id: "height", shape: [seoul])
let res = try await GeospatialAPI.elevation(heightRequest: req)
XCTAssertEqual(req.id, res.id)
XCTAssertEqual(res.height?.count, 1)
XCTAssertTrue(res.height?.first ?? -1 > 0)
XCTAssertEqual(req.shape, res.shape)
}
func testElevationWithResampling() async throws {
let req = HeightRequest(id: "height", encodedPolyline: polyline, shapeFormat: .polyline6, resampleDistance: 25)
let res = try await GeospatialAPI.elevation(heightRequest: req)
XCTAssertEqual(req.id, res.id)
// NOTE: Original line is 253 points; the resampled line will be much smaller
XCTAssertLessThan(res.height?.count ?? 0, 100)
XCTAssertTrue(res.height?.first ?? -1 > 0)
}
func testElevationWithRanges() async throws {
let req = HeightRequest(id: "height", shape: [seoul], range: true)
let res = try await GeospatialAPI.elevation(heightRequest: req)
XCTAssertEqual(req.id, res.id)
XCTAssertEqual(res.rangeHeight?.count, 1)
XCTAssertEqual(res.rangeHeight?.first?.first, 0)
XCTAssertTrue(res.rangeHeight?.first?[1] ?? 0 > 0)
XCTAssertEqual(req.shape, res.shape)
}
}