@@ -24,7 +24,6 @@ private func nm<T: BinaryFloatingPoint>(fromMeters m: T) -> T {
24
24
return m / 1852.0
25
25
}
26
26
27
-
28
27
/// extension for convenience
29
28
private extension BinaryFloatingPoint {
30
29
/// degree converted to radians
@@ -111,32 +110,32 @@ final class VincentyTests: XCTestCase {
111
110
y = ( lat: 0 . asRad, lon: 0.5 . asRad)
112
111
XCTAssertEqual ( try ! vincenty. solveInverse ( x, y) . distance, 111319.491 , accuracy: delta)
113
112
114
- //Test Cardinals
113
+ // Test Cardinals
115
114
x = ( lat: 0.0 , lon: 0.0 )
116
- y = ( lat: pi/ 2 , lon: 0.0 ) //north pole
115
+ y = ( lat: pi/ 2 , lon: 0.0 ) // north pole
117
116
var ( _, azimuths: ( initialTrueTrack, finalTrueTrack) ) = try ! vincenty. solveInverse ( x, y)
118
117
XCTAssertEqual ( initialTrueTrack, 0.0 , accuracy: delta)
119
118
XCTAssertEqual ( finalTrueTrack, 0.0 , accuracy: delta)
120
119
121
- y = ( lat: 0.0 , lon: pi/ 2 ) //east
120
+ y = ( lat: 0.0 , lon: pi/ 2 ) // east
122
121
( _, azimuths: ( initialTrueTrack, finalTrueTrack) ) = try ! vincenty. solveInverse ( x, y)
123
122
XCTAssertEqual ( initialTrueTrack, Double . pi/ 2 , accuracy: delta)
124
123
XCTAssertEqual ( finalTrueTrack, Double . pi/ 2 , accuracy: delta)
125
124
126
- y = ( lat: - pi/ 2 , lon: 0.0 ) //south pole
125
+ y = ( lat: - pi/ 2 , lon: 0.0 ) // south pole
127
126
( _, azimuths: ( initialTrueTrack, finalTrueTrack) ) = try ! vincenty. solveInverse ( x, y)
128
127
XCTAssertEqual ( initialTrueTrack, Double . pi, accuracy: delta)
129
128
XCTAssertEqual ( finalTrueTrack, Double . pi, accuracy: delta)
130
129
131
- y = ( lat: 0.0 , lon: - pi/ 2 ) //west
130
+ y = ( lat: 0.0 , lon: - pi/ 2 ) // west
132
131
( _, azimuths: ( initialTrueTrack, finalTrueTrack) ) = try ! vincenty. solveInverse ( x, y)
133
132
XCTAssertEqual ( initialTrueTrack, 3 * Double. pi/ 2 , accuracy: delta)
134
133
XCTAssertEqual ( finalTrueTrack, 3 * Double. pi/ 2 , accuracy: delta)
135
134
136
135
}
137
136
138
137
/// Test against A330 FMS
139
- let fmsAcc = 0.49 //within half nm or degree
138
+ let fmsAcc = 0.49 // within half nm or degree
140
139
func testNavigationAccurracy( ) {
141
140
142
141
var x : ( lat: Double , lon: Double ) , y : ( lat: Double , lon: Double )
@@ -148,23 +147,21 @@ final class VincentyTests: XCTestCase {
148
147
XCTAssertEqual ( distance. inNm, 197 , accuracy: fmsAcc)
149
148
XCTAssertEqual ( initialTrueTrack. asDegrees, 058 , accuracy: fmsAcc)
150
149
151
-
152
- //Dacey is N5933.6 / W12604.5
150
+ // Dacey is N5933.6 / W12604.5
153
151
x = ( lat: ( 59 + 33.6 / 60 ) . asRad, lon: - ( 126 + 04.5 / 60 ) . asRad)
154
- //MCT is N5321.4 / W00215.7
152
+ // MCT is N5321.4 / W00215.7
155
153
y = ( lat: ( 53 + 21.4 / 60 ) . asRad, lon: - ( 2 + 15.7 / 60 ) . asRad)
156
- //TRK036T3507
154
+ // TRK036T3507
157
155
( distance, azimuths: ( initialTrueTrack, _) ) = try ! vincenty. solveInverse ( x, y)
158
- //XCTAssertEqual(distance.inNm, 3507, accuracy: fmsAcc) //FMS seems to be wrong in this case...
159
- //http://www.gcmap.com/dist?P=N5933.6+W12604.5+-+N5321.4+W00215.7&DU=nm&DM=&SG=450&SU=kts
156
+ // XCTAssertEqual(distance.inNm, 3507, accuracy: fmsAcc) //FMS seems to be wrong in this case...
157
+ // http://www.gcmap.com/dist?P=N5933.6+W12604.5+-+N5321.4+W00215.7&DU=nm&DM=&SG=450&SU=kts
160
158
let gDist = geodesic. distance ( x, y)
161
159
print ( " vincenty: \( distance) , geodesic: \( gDist) , delta: \( fabs ( distance - gDist) ) " )
162
160
XCTAssertEqual ( distance, gDist, accuracy: 1e-3 )
163
161
XCTAssertEqual ( initialTrueTrack. asDegrees, 036 , accuracy: fmsAcc)
164
162
165
163
}
166
164
167
-
168
165
/// use geodesic as reference and test vincenty distance.
169
166
func testAgainstGeodesic( ) {
170
167
var x : ( lat: Double , lon: Double ) , y : ( lat: Double , lon: Double )
0 commit comments