Skip to content

Commit

Permalink
addition of extra unit tests for ResultParser
Browse files Browse the repository at this point in the history
  • Loading branch information
Ben Turner committed Feb 11, 2025
1 parent 171c323 commit ef42df2
Showing 1 changed file with 159 additions and 0 deletions.
159 changes: 159 additions & 0 deletions src/test/java/de/taimos/gpsd4java/backend/ResultParserTest.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
package de.taimos.gpsd4java.backend;

import de.taimos.gpsd4java.types.ENMEAMode;
import de.taimos.gpsd4java.types.SATObject;
import de.taimos.gpsd4java.types.SKYObject;
import de.taimos.gpsd4java.types.TPVObject;
import de.taimos.gpsd4java.types.subframes.IONOObject;
import org.json.JSONArray;
import org.json.JSONObject;
import org.junit.Assert;
import org.junit.Before;
Expand Down Expand Up @@ -37,4 +42,158 @@ public void testSatObject() {
Assert.assertEquals(0, satObject.getSignalStrength());
}

@Test
public void testIonoObject() {
final JSONObject json = new JSONObject();
json.put("a0", 1.0);
json.put("a1", 2.0);
json.put("a2", 3.0);
json.put("b0", 11.0);
json.put("b1", 12.0);
json.put("b2", 13.0);
json.put("b3", 14.0);
json.put("A0", 21.0);
json.put("A1", 22.0);
json.put("tot", 31.0);
json.put("WNt", 100);
json.put("ls", 101);
json.put("WNlsf", 102);
json.put("DN", 103);
json.put("lsf", 104);
final IONOObject ionoObject = (IONOObject) this.resultParser.parseIONO(json);
Assert.assertEquals(1.0, ionoObject.getAlpha0(), 0);
Assert.assertEquals(2.0, ionoObject.getAlpha1(), 0);
Assert.assertEquals(3.0, ionoObject.getAlpha2(), 0);
Assert.assertEquals(11.0, ionoObject.getBeta0(), 0);
Assert.assertEquals(12.0, ionoObject.getBeta1(), 0);
Assert.assertEquals(13.0, ionoObject.getBeta2(), 0);
Assert.assertEquals(14.0, ionoObject.getBeta3(), 0);
Assert.assertEquals(21.0, ionoObject.getA0(), 0);
Assert.assertEquals(22.0, ionoObject.getA1(), 0);
Assert.assertEquals(31.0, ionoObject.getTot(), 0);
Assert.assertEquals(100, ionoObject.getWNt());
Assert.assertEquals(101, ionoObject.getLeap());
Assert.assertEquals(102, ionoObject.getWNlsf());
Assert.assertEquals(103, ionoObject.getDN());
Assert.assertEquals(104, ionoObject.getLsf());
}

@Test
public void testSkyObject() throws Exception {

final JSONObject json = new JSONObject();
json.put("device", "/dev/ttyUSB0");
json.put("time", "2025-02-11T08:39:29.000Z");
json.put("gdop", 1.29);
json.put("hdop", 0.61);
json.put("pdop", 1.16);
json.put("tdop", 0.56);
json.put("xdop", 0.38);
json.put("ydop", 0.49);
json.put("vdop", 0.99);
json.put("nSat", 2);

final JSONArray satellites = new JSONArray();
json.put("satellites", satellites);

final JSONObject sat1 = new JSONObject();
sat1.put("PRN", 6);
sat1.put("gnssid", 0);
sat1.put("svid", 6);
sat1.put("az", 110.0);
sat1.put("el", 2.0);
sat1.put("prRes", 11.0);
sat1.put("qual", 1);
sat1.put("ss", 0.0);
sat1.put("used", false);
sat1.put("health", 1);

final JSONObject sat2 = new JSONObject();
sat2.put("PRN", 10);
sat2.put("gnssid", 0);
sat2.put("svid", 10);
sat2.put("az", 303.0);
sat2.put("el", 14.0);
sat2.put("prRes", 30.3);
sat2.put("qual", 7);
sat2.put("ss", 48.0);
sat2.put("used", true);
sat2.put("health", 1);

satellites.put(sat1);
satellites.put(sat2);

final SKYObject skyObject = (SKYObject) this.resultParser.parseSKY(json);

Assert.assertEquals("/dev/ttyUSB0", skyObject.getDevice());
Assert.assertEquals(1739263169.0, skyObject.getTimestamp(), 0.0);
Assert.assertEquals(1.29, skyObject.getHypersphericalDOP(), 0.0);
Assert.assertEquals(0.61, skyObject.getHorizontalDOP(), 0.0);
Assert.assertEquals(1.16, skyObject.getSphericalDOP(), 0.0);
Assert.assertEquals(0.56, skyObject.getTimestampDOP(), 0.0);
Assert.assertEquals(0.38, skyObject.getLongitudeDOP(), 0.0);
Assert.assertEquals(0.49, skyObject.getLatitudeDOP(), 0.0);
Assert.assertEquals(0.99, skyObject.getAltitudeDOP(), 0.0);
Assert.assertEquals(2, skyObject.getSatellites().size());

final SATObject satObject1 = skyObject.getSatellites().get(0);
Assert.assertEquals(6, satObject1.getPRN());
Assert.assertEquals(0, satObject1.getGnssId());
Assert.assertEquals(110.0, satObject1.getAzimuth(), 0.0);
Assert.assertEquals(2.0, satObject1.getElevation(), 0.0);
Assert.assertEquals(0.0, satObject1.getSignalStrength(), 0.0);
Assert.assertFalse(satObject1.getUsed());

final SATObject satObject2 = skyObject.getSatellites().get(1);
Assert.assertEquals(10, satObject2.getPRN());
Assert.assertEquals(0, satObject2.getGnssId());
Assert.assertEquals(303.0, satObject2.getAzimuth(), 0.0);
Assert.assertEquals(14.0, satObject2.getElevation(), 0.0);
Assert.assertEquals(48.0, satObject2.getSignalStrength(), 0.0);
Assert.assertTrue(satObject2.getUsed());
}

@Test
public void testTpvObject() {

final JSONObject json = new JSONObject();
json.put("tag", "tag");
json.put("alt", 136.054);
json.put("epv", 0.835);
json.put("device", "/dev/ttyUSB0");
json.put("time", "2025-02-11T08:39:29.000Z");
json.put("ept", 0.005);
json.put("lat", 42.7045841);
json.put("lon", 12.1588884);
json.put("alt", 136.054);
json.put("epx", 1.411);
json.put("epy", 1.822);
json.put("epv", 0.835);
json.put("track", 144.6175);
json.put("speed", 22.693);
json.put("climb", 0.023);
json.put("epd", 9.1852);
json.put("eps", 3.51);
json.put("epc", 1.68);
json.put("mode", 3);

final TPVObject tpvObject = (TPVObject) this.resultParser.parseTPV(json);
Assert.assertEquals(136.054, tpvObject.getAltitude(), 0);
Assert.assertEquals(0.835, tpvObject.getAltitudeError(), 0);
Assert.assertEquals(0.023, tpvObject.getClimbRate(), 0);
Assert.assertEquals(1.68, tpvObject.getClimbRateError(), 0);
Assert.assertEquals(144.6175, tpvObject.getCourse(), 0);
Assert.assertEquals(9.1852, tpvObject.getCourseError(), 0);
Assert.assertEquals("/dev/ttyUSB0", tpvObject.getDevice());
Assert.assertEquals(42.7045841, tpvObject.getLatitude(), 0);
Assert.assertEquals(1.822, tpvObject.getLatitudeError(), 0);
Assert.assertEquals(12.1588884, tpvObject.getLongitude(), 0);
Assert.assertEquals(1.411, tpvObject.getLongitudeError(), 0);
Assert.assertEquals(ENMEAMode.ThreeDimensional, tpvObject.getMode());
Assert.assertEquals(22.693, tpvObject.getSpeed(), 0);
Assert.assertEquals(3.51, tpvObject.getSpeedError(), 0);
Assert.assertEquals("tag", tpvObject.getTag());
Assert.assertEquals(1739263169.0, tpvObject.getTimestamp(), 0);
Assert.assertEquals(0.005, tpvObject.getTimestampError(), 0);
}
}

0 comments on commit ef42df2

Please sign in to comment.