Changeset 36247 in osm for applications
- Timestamp:
- 2024-04-16T15:41:08+02:00 (10 months ago)
- Location:
- applications/editors/josm/plugins/FIT/src
- Files:
-
- 3 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/FIT/src/main/java/org/openstreetmap/josm/plugins/fit/lib/global/HeartRateCadenceDistanceSpeed.java
r36245 r36247 60 60 case 0 -> lat = decodeDegrees(NumberUtils.decodeLong(size, littleEndian, inputStream)); 61 61 case 1 -> lon = decodeDegrees(NumberUtils.decodeLong(size, littleEndian, inputStream)); 62 case 2 -> ele = decodeElevation(NumberUtils.decodeLong(size, littleEndian, inputStream)); 62 // 2 is documented ele, 78 also seems to be ele (GJ @ 1416m, record 78 in GJ test data decodes to ~1400) 63 case 2, 78 -> ele = decodeElevation(NumberUtils.decodeLong(size, littleEndian, inputStream)); 63 64 case 3 -> heartRate = NumberUtils.decodeShort(size, littleEndian, inputStream); 64 65 case 4 -> cadence = NumberUtils.decodeShort(size, littleEndian, inputStream); -
applications/editors/josm/plugins/FIT/src/test/unit/org/openstreetmap/josm/plugins/fit/lib/FitReaderTest.java
r36151 r36247 11 11 import java.io.IOException; 12 12 import java.math.BigInteger; 13 import java.util.Arrays; 13 14 import java.util.Collections; 14 15 15 16 import org.junit.jupiter.api.Test; 17 import org.openstreetmap.josm.TestUtils; 18 import org.openstreetmap.josm.data.coor.ILatLon; 19 import org.openstreetmap.josm.plugins.fit.lib.global.FitData; 16 20 import org.openstreetmap.josm.plugins.fit.lib.global.FitDevDataRecord; 17 import org.openstreetmap.josm.plugins.fit.lib.global.Global;18 21 import org.openstreetmap.josm.plugins.fit.lib.global.FitDeveloperDataIdMessage; 19 22 import org.openstreetmap.josm.plugins.fit.lib.global.FitDevice; 23 import org.openstreetmap.josm.plugins.fit.lib.global.Global; 20 24 import org.openstreetmap.josm.plugins.fit.lib.global.HeartRateCadenceDistanceSpeed; 21 25 import org.openstreetmap.josm.plugins.fit.lib.records.FitDevIntData; … … 171 175 () -> assertEquals(new HeartRateCadenceDistanceSpeed(144, 92, 3710, 3050, doughnuts), fitData[4])); 172 176 } 177 178 @Test 179 void testNonRegression23613() throws IOException { 180 final FitData[] fitData; 181 try (final var inputStream = TestUtils.getRegressionDataStream(23613, "2023-10-30-05-04-50.fit")) { 182 fitData = FitReader.read(inputStream); 183 } 184 final var heartRateCadenceDistanceSpeed = Arrays.stream(fitData).filter(HeartRateCadenceDistanceSpeed.class::isInstance) 185 .map(HeartRateCadenceDistanceSpeed.class::cast).toArray(HeartRateCadenceDistanceSpeed[]::new); 186 assertEquals(160, heartRateCadenceDistanceSpeed.length); 187 assertEquals(157, Arrays.stream(heartRateCadenceDistanceSpeed) 188 .filter(r -> !Double.isNaN(r.lat()) && !Double.isNaN(r.lon())).count()); 189 assertEquals(39.0662439, heartRateCadenceDistanceSpeed[2].lat(), ILatLon.MAX_SERVER_PRECISION); 190 assertEquals(-108.5501406, heartRateCadenceDistanceSpeed[2].lon(), ILatLon.MAX_SERVER_PRECISION); 191 assertEquals(39.0674976, heartRateCadenceDistanceSpeed[heartRateCadenceDistanceSpeed.length - 2].lat(), 192 ILatLon.MAX_SERVER_PRECISION); 193 assertEquals(-108.5603802, heartRateCadenceDistanceSpeed[heartRateCadenceDistanceSpeed.length - 2].lon(), 194 ILatLon.MAX_SERVER_PRECISION); 195 } 173 196 }
Note:
See TracChangeset
for help on using the changeset viewer.