2424import static org .junit .Assert .assertEquals ;
2525
2626public class PointTest {
27- private static final Logger LOG = LoggerFactory .getLogger (PointTest .class );
27+ private static final Logger LOG = LoggerFactory .getLogger (PointTest .class );
2828 private static final double DELTA = 0.000001 ;
2929
3030 @ Test
@@ -83,17 +83,17 @@ public void testDegreesLonToMeters() {
8383
8484 assertEquals (0 , Double .compare (0 , Point .degreesLonToMetersAtLat (0 , 0 )));
8585 assertEquals (0 ,
86- Double .compare (Point .METERS_PER_DEGREE_LON_EQUATOR / 2.0 , Point .degreesLonToMetersAtLat (0.5 , 0 )));
86+ Double .compare (Point .METERS_PER_DEGREE_LON_EQUATOR / 2.0 , Point .degreesLonToMetersAtLat (0.5 , 0 )));
8787 assertEquals (0 ,
88- Double .compare (Point .METERS_PER_DEGREE_LON_EQUATOR , Point .degreesLonToMetersAtLat (1 , 0 )));
88+ Double .compare (Point .METERS_PER_DEGREE_LON_EQUATOR , Point .degreesLonToMetersAtLat (1 , 0 )));
8989 assertEquals (0 ,
90- Double .compare (Point .METERS_PER_DEGREE_LON_EQUATOR * 180 , Point .degreesLonToMetersAtLat (180 , 0 )));
90+ Double .compare (Point .METERS_PER_DEGREE_LON_EQUATOR * 180 , Point .degreesLonToMetersAtLat (180 , 0 )));
9191 assertEquals (0 ,
92- Double .compare (-Point .METERS_PER_DEGREE_LON_EQUATOR * 180 , Point .degreesLonToMetersAtLat (-180 , 0 )));
92+ Double .compare (-Point .METERS_PER_DEGREE_LON_EQUATOR * 180 , Point .degreesLonToMetersAtLat (-180 , 0 )));
9393 Assert .assertTrue (Math .abs ((Point .METERS_PER_DEGREE_LON_EQUATOR / 2.0 ) -
94- Point .degreesLonToMetersAtLat (1 , 60 )) < DELTA );
94+ Point .degreesLonToMetersAtLat (1 , 60 )) < DELTA );
9595 Assert .assertTrue (Math .abs ((Point .METERS_PER_DEGREE_LON_EQUATOR / 2.0 ) -
96- Point .degreesLonToMetersAtLat (1 , -60 )) < DELTA );
96+ Point .degreesLonToMetersAtLat (1 , -60 )) < DELTA );
9797 }
9898
9999 @ Test
@@ -102,44 +102,136 @@ public void testMetersToDegreesLon() {
102102
103103 assertEquals (0 , Double .compare (0 , Point .metersToDegreesLonAtLat (0 , 0 )));
104104 assertEquals (0 ,
105- Double .compare (0.5 , Point .metersToDegreesLonAtLat (Point .METERS_PER_DEGREE_LON_EQUATOR / 2 , 0 )));
105+ Double .compare (0.5 , Point .metersToDegreesLonAtLat (Point .METERS_PER_DEGREE_LON_EQUATOR / 2 , 0 )));
106106 assertEquals (0 ,
107- Double .compare (1 , Point .metersToDegreesLonAtLat (Point .METERS_PER_DEGREE_LON_EQUATOR , 0 )));
107+ Double .compare (1 , Point .metersToDegreesLonAtLat (Point .METERS_PER_DEGREE_LON_EQUATOR , 0 )));
108108 assertEquals (0 ,
109- Double .compare (180 , Point .metersToDegreesLonAtLat (Point .METERS_PER_DEGREE_LON_EQUATOR * 180 , 0 )));
109+ Double .compare (180 , Point .metersToDegreesLonAtLat (Point .METERS_PER_DEGREE_LON_EQUATOR * 180 , 0 )));
110110 assertEquals (0 , Double .compare (-180 ,
111- Point .metersToDegreesLonAtLat (Point .METERS_PER_DEGREE_LON_EQUATOR * -180 , 0 )));
111+ Point .metersToDegreesLonAtLat (Point .METERS_PER_DEGREE_LON_EQUATOR * -180 , 0 )));
112112 Assert .assertTrue (
113- Math .abs (2.0 - Point .metersToDegreesLonAtLat (Point .METERS_PER_DEGREE_LON_EQUATOR , 60 )) < DELTA );
113+ Math .abs (2.0 - Point .metersToDegreesLonAtLat (Point .METERS_PER_DEGREE_LON_EQUATOR , 60 )) < DELTA );
114114 Assert .assertTrue (
115- Math .abs (2.0 - Point .metersToDegreesLonAtLat (Point .METERS_PER_DEGREE_LON_EQUATOR , -60 )) < DELTA );
115+ Math .abs (2.0 - Point .metersToDegreesLonAtLat (Point .METERS_PER_DEGREE_LON_EQUATOR , -60 )) < DELTA );
116116 }
117117
118118 @ Test
119119 public void testDistanceInMeters () {
120120 LOG .info ("testDistanceInMeters" );
121121
122- double d = Point .METERS_PER_DEGREE_LAT - Point .distanceInMeters (Point .fromMicroDeg (-500000 , 0 ),
123- Point .fromMicroDeg (500000 , 0 ));
124- Assert .assertTrue (Math .abs (d ) <= DELTA );
122+ double d = Point .distanceInMeters (
123+ Point .fromMicroDeg (-500000 , 0 ), Point .fromMicroDeg (500000 , 0 ));
124+ double delta = Math .abs (Point .METERS_PER_DEGREE_LAT - d );
125+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
126+ Assert .assertTrue (delta <= DELTA );
125127
126- d = Point .METERS_PER_DEGREE_LAT - Point .distanceInMeters (Point .fromMicroDeg (80000000 , 0 ),
127- Point .fromMicroDeg (81000000 , 0 ));
128- Assert .assertTrue (Math .abs (d ) <= DELTA );
128+ d = Point .distanceInMeters (
129+ Point .fromMicroDeg (80000000 , 0 ), Point .fromMicroDeg (81000000 , 0 ));
130+ delta = Math .abs (Point .METERS_PER_DEGREE_LAT - d );
131+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
132+ Assert .assertTrue (delta <= DELTA );
129133
130- d = (Point .METERS_PER_DEGREE_LAT * 2 ) - Point .distanceInMeters (Point .fromMicroDeg (59000000 , 0 ),
131- Point .fromMicroDeg (61000000 , 0 ));
132- Assert .assertTrue (Math .abs (d ) <= DELTA );
134+ d = Point .distanceInMeters (
135+ Point .fromMicroDeg (59000000 , 0 ), Point .fromMicroDeg (61000000 , 0 ));
136+ delta = Math .abs ((Point .METERS_PER_DEGREE_LAT * 2 ) - d );
137+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
138+ Assert .assertTrue (delta <= DELTA );
133139
134- Assert .assertTrue (Math .abs (Point .METERS_PER_DEGREE_LON_EQUATOR - Point .distanceInMeters (
135- Point .fromMicroDeg (0 , -500000 ), Point .fromMicroDeg (0 , 500000 ))) <= DELTA );
136- Assert .assertTrue (Math .abs (Point .METERS_PER_DEGREE_LON_EQUATOR - Point .distanceInMeters (
137- Point .fromMicroDeg (0 , 80000000 ), Point .fromMicroDeg (0 , 81000000 ))) < DELTA );
138- Assert .assertTrue (Math .abs ((Point .METERS_PER_DEGREE_LON_EQUATOR / 2.0 ) - Point .distanceInMeters (
139- Point .fromMicroDeg (60000000 , 80000000 ), Point .fromMicroDeg (60000000 , 81000000 ))) <= DELTA );
140+ d = Point .distanceInMeters (
141+ Point .fromMicroDeg (0 , 1000000 ), Point .fromMicroDeg (0 , 0 ));
142+ delta = Math .abs (Point .METERS_PER_DEGREE_LON_EQUATOR - d );
143+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
144+ Assert .assertTrue (delta <= DELTA );
140145
141- Assert .assertTrue (Math .abs ((Point .METERS_PER_DEGREE_LON_EQUATOR * 2 ) - Point .distanceInMeters (
142- Point .fromMicroDeg (0 , -1000000 ), Point .fromMicroDeg (0 , 1000000 ))) <= DELTA );
146+ d = Point .distanceInMeters (
147+ Point .fromMicroDeg (0 , 2000000 ), Point .fromMicroDeg (0 , 0 ));
148+ delta = Math .abs ((Point .METERS_PER_DEGREE_LON_EQUATOR * 2 ) - d );
149+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
150+ Assert .assertTrue (delta <= DELTA );
151+
152+ d = Point .distanceInMeters (
153+ Point .fromMicroDeg (0 , 2000000 ), Point .fromMicroDeg (0 , -1000000 ));
154+ delta = Math .abs ((Point .METERS_PER_DEGREE_LON_EQUATOR * 3 ) - d );
155+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
156+ Assert .assertTrue (delta <= DELTA );
157+
158+ d = Point .distanceInMeters (
159+ Point .fromMicroDeg (0 , -1000000 ), Point .fromMicroDeg (0 , 0 ));
160+ delta = Math .abs (Point .METERS_PER_DEGREE_LON_EQUATOR - d );
161+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
162+ Assert .assertTrue (delta <= DELTA );
163+
164+ d = Point .distanceInMeters (
165+ Point .fromMicroDeg (0 , -1000000 ), Point .fromMicroDeg (0 , 1000000 ));
166+ delta = Math .abs ((Point .METERS_PER_DEGREE_LON_EQUATOR * 2 ) - d );
167+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
168+ Assert .assertTrue (delta <= DELTA );
169+
170+ d = Point .distanceInMeters (
171+ Point .fromMicroDeg (0 , -1000000 ), Point .fromMicroDeg (0 , 2000000 ));
172+ delta = Math .abs ((Point .METERS_PER_DEGREE_LON_EQUATOR * 3 ) - d );
173+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
174+ Assert .assertTrue (delta <= DELTA );
175+
176+ d = Point .distanceInMeters (
177+ Point .fromMicroDeg (0 , -500000 ), Point .fromMicroDeg (0 , 500000 ));
178+ delta = Math .abs (Point .METERS_PER_DEGREE_LON_EQUATOR - d );
179+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
180+ Assert .assertTrue (delta <= DELTA );
181+
182+ d = Point .distanceInMeters (
183+ Point .fromMicroDeg (0 , 80000000 ), Point .fromMicroDeg (0 , 81000000 ));
184+ delta = Math .abs (Point .METERS_PER_DEGREE_LON_EQUATOR - d );
185+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
186+ Assert .assertTrue (delta <= DELTA );
187+
188+ d = Point .distanceInMeters (
189+ Point .fromMicroDeg (60000000 , 80000000 ), Point .fromMicroDeg (60000000 , 81000000 ));
190+ delta = Math .abs ((Point .METERS_PER_DEGREE_LON_EQUATOR / 2.0 ) - d );
191+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
192+ Assert .assertTrue (delta <= DELTA );
193+
194+ d = Point .distanceInMeters (
195+ Point .fromMicroDeg (0 , -1000000 ), Point .fromMicroDeg (0 , 1000000 ));
196+ delta = Math .abs ((Point .METERS_PER_DEGREE_LON_EQUATOR * 2 ) - d );
197+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
198+ Assert .assertTrue (delta <= DELTA );
199+
200+ d = Point .distanceInMeters (
201+ Point .fromMicroDeg (0 , 1000000 ), Point .fromMicroDeg (0 , 2000000 ));
202+ delta = Math .abs (Point .METERS_PER_DEGREE_LON_EQUATOR - d );
203+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
204+ Assert .assertTrue (delta <= DELTA );
205+
206+ d = Point .distanceInMeters (
207+ Point .fromMicroDeg (0 , 178000000 ), Point .fromMicroDeg (0 , 179000000 ));
208+ delta = Math .abs (Point .METERS_PER_DEGREE_LON_EQUATOR - d );
209+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
210+ Assert .assertTrue (delta <= DELTA );
211+
212+ d = Point .distanceInMeters (
213+ Point .fromMicroDeg (0 , 179000000 ), Point .fromMicroDeg (0 , 180000000 ));
214+ delta = Math .abs (Point .METERS_PER_DEGREE_LON_EQUATOR - d );
215+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
216+ Assert .assertTrue (delta <= DELTA );
217+
218+ d = Point .distanceInMeters (
219+ Point .fromMicroDeg (0 , 179500000 ), Point .fromMicroDeg (0 , -179500000 ));
220+ delta = Math .abs (Point .METERS_PER_DEGREE_LON_EQUATOR - d );
221+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
222+ Assert .assertTrue (delta <= DELTA );
223+
224+ d = Point .distanceInMeters (
225+ Point .fromMicroDeg (0 , -179500000 ), Point .fromMicroDeg (0 , 179500000 ));
226+ delta = Math .abs (Point .METERS_PER_DEGREE_LON_EQUATOR - d );
227+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
228+ Assert .assertTrue (delta <= DELTA );
229+
230+ d = Point .distanceInMeters (
231+ Point .fromMicroDeg (0 , -179000000 ), Point .fromMicroDeg (0 , -180000000 ));
232+ delta = Math .abs (Point .METERS_PER_DEGREE_LON_EQUATOR - d );
233+ LOG .debug ("testDistanceInMeters: d={}, delta={}" , d , delta );
234+ Assert .assertTrue (delta <= DELTA );
143235
144236 Assert .assertTrue (Point .distanceInMeters (Point .fromDeg (0.0 , 180.0 ), Point .fromDeg (0.0 , -179.999977 )) < 10.0 );
145237 Assert .assertTrue (Point .distanceInMeters (Point .fromDeg (0.0 , -179.999977 ), Point .fromDeg (0.0 , 180.0 )) < 10.0 );
0 commit comments