Fixing test
Change-Id: I6724a1020c9eb0f25b64b31571f5d57f0b576fcf
diff --git a/tests/tests/hardware/src/android/hardware/cts/GeomagneticFieldTest.java b/tests/tests/hardware/src/android/hardware/cts/GeomagneticFieldTest.java
index e08da0e..d98d2d5 100644
--- a/tests/tests/hardware/src/android/hardware/cts/GeomagneticFieldTest.java
+++ b/tests/tests/hardware/src/android/hardware/cts/GeomagneticFieldTest.java
@@ -28,11 +28,11 @@
@TestTargetClass(GeomagneticField.class)
public class GeomagneticFieldTest extends AndroidTestCase {
- private static final float LATITUDE_OF_CHENGDU = 104.06f;
- private static final float LONGITUDE_OF_CHENGDU = 30.67f;
+ // Chengdu: Latitude 30d 40' 12", Longitude 104d 3' 36"
+ private static final float LATITUDE_OF_CHENGDU = 30.67f;
+ private static final float LONGITUDE_OF_CHENGDU = 104.06f;
private static final float ALTITUDE_OF_CHENGDU = 500f;
- private static final float DELTA = 1.0f;
- private static final long TEST_TIME = new GregorianCalendar(2009, 5, 1).getTimeInMillis();
+ private static final long TEST_TIME = new GregorianCalendar(2010, 5, 1).getTimeInMillis();
@TestTargets({
@TestTargetNew(
@@ -79,12 +79,16 @@
public void testGeomagneticField() {
GeomagneticField geomagneticField = new GeomagneticField(LATITUDE_OF_CHENGDU,
LONGITUDE_OF_CHENGDU, ALTITUDE_OF_CHENGDU, TEST_TIME);
- assertEquals(16.12f, geomagneticField.getDeclination(), DELTA);
- assertEquals(88.04f, geomagneticField.getInclination(), DELTA);
- assertEquals(56768.22f, geomagneticField.getFieldStrength(), DELTA);
- assertEquals(1943.81f, geomagneticField.getHorizontalStrength(), DELTA);
- assertEquals(1867.41f, geomagneticField.getX(), DELTA);
- assertEquals(539.61f, geomagneticField.getY(), DELTA);
- assertEquals(56734.93f, geomagneticField.getZ(), DELTA);
+
+ // Reference values calculated from NOAA online calculator for WMM 2010,
+ // and cross-checked in Matlab. The expected deltas are proportional to the
+ // magnitude of each value.
+ assertEquals(-1.867f, geomagneticField.getDeclination(), 0.1f);
+ assertEquals(47.133f, geomagneticField.getInclination(), 1.0f);
+ assertEquals(50375.6f, geomagneticField.getFieldStrength(), 100.0f);
+ assertEquals(34269.3f, geomagneticField.getHorizontalStrength(), 100.0f);
+ assertEquals(34251.2f, geomagneticField.getX(), 100.0f);
+ assertEquals(-1113.2f, geomagneticField.getY(), 10.0f);
+ assertEquals(36923.1f, geomagneticField.getZ(), 100.0f);
}
}