2つの場所の距離を計算しようとしていますが、location.distanceToメソッドとLocation.distanceBetweenメソッドの両方を試しましたが、どちらの場合も0が返されます。間違っている。Android APIを呼び出すとユニットテストで常に0が返される
public static double distance(double lat1, double lon1, double lat2, double lon2, DistanceUnit unit) {
Location location1 = new Location("");
location1.setLatitude(lat1);
location1.setLongitude(lon1);
Location location2 = new Location("");
location2.setLatitude(lat2);
location2.setLongitude(lon2);
// Distance in km
double dist = location1.distanceTo(location2)/1000;
if (unit == DistanceUnit.Miles) {
// Distance in miles
dist = dist/1.6;
}
return dist;
}
私はテストの実行があることを確認するために実行していますユニットテスト:
@Test
public void testDistance() {
double lat1 = 40.2582279;
double lon1 = -75.2654062;
double lat2 = 40.476492;
double lon2 = -75.355655;
double distance = LocationUtils.distance(lat1, lon1, lat2, lon2, DistanceUnit.Kilometer);
Assert.assertEquals(20, distance, 2);
}
そして、私は取得しています結果は次のとおりです。事前に
java.lang.AssertionError:
Expected :20.0
Actual :0.0
おかげでここに私の方法であり、
それは、私は異なった条件と距離に基づいてリストをソートしようとしていたのですが、その1つは距離であり、私はコンパレータをユニットテストしようとしていました。詳細な返信をありがとう。 – Vibhu