Changeset 17715 in josm for trunk/test


Ignore:
Timestamp:
2021-04-08T22:56:06+02:00 (4 years ago)
Author:
simon04
Message:

see #14176 - Migrate GPX to Instant

Location:
trunk/test/unit/org/openstreetmap/josm
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/data/ImageDataTest.java

    r17310 r17715  
    88
    99import java.io.File;
     10import java.time.Instant;
    1011import java.util.ArrayList;
    1112import java.util.Arrays;
    1213import java.util.Collections;
    13 import java.util.Date;
    1414import java.util.List;
    1515
     
    2828class ImageDataTest {
    2929
    30     private static ImageEntry newImageEntry(String file, Date exifTime) {
     30    private static ImageEntry newImageEntry(String file, Instant exifTime) {
    3131        ImageEntry entry = new ImageEntry(new File(file));
    3232        entry.setExifTime(exifTime);
     
    6565    @Test
    6666    void testSortData() {
    67         ImageEntry entry1 = newImageEntry("test1", new Date(1_000_000));
    68         ImageEntry entry2 = newImageEntry("test2", new Date(2_000_000));
     67        ImageEntry entry1 = newImageEntry("test1", Instant.ofEpochMilli(1_000_000));
     68        ImageEntry entry2 = newImageEntry("test2", Instant.ofEpochMilli(2_000_000));
    6969
    7070        ArrayList<ImageEntry> list = new ArrayList<>();
  • trunk/test/unit/org/openstreetmap/josm/data/gpx/GpxDataTest.java

    r17275 r17715  
    1010
    1111import java.io.IOException;
     12import java.time.Instant;
    1213import java.util.ArrayList;
    1314import java.util.Arrays;
     
    337338        WayPoint p4 = new WayPoint(LatLon.NORTH_POLE);
    338339        WayPoint p5 = new WayPoint(LatLon.NORTH_POLE);
    339         p1.setTime(new Date(200020));
    340         p2.setTime(new Date(100020));
    341         p4.setTime(new Date(500020));
     340        p1.setInstant(new Date(200020).toInstant());
     341        p2.setInstant(new Date(100020).toInstant());
     342        p4.setInstant(new Date(500020).toInstant());
    342343        data.addTrack(new GpxTrack(Arrays.asList(Arrays.asList(p1, p2)), Collections.emptyMap()));
    343344        data.addTrack(new GpxTrack(Arrays.asList(Arrays.asList(p3, p4, p5)), Collections.emptyMap()));
    344345
    345         Date[] times = data.getMinMaxTimeForAllTracks();
     346        Instant[] times = data.getMinMaxTimeForAllTracks();
    346347        assertEquals(times.length, 2);
    347         assertEquals(new Date(100020), times[0]);
    348         assertEquals(new Date(500020), times[1]);
     348        assertEquals(Instant.ofEpochMilli(100020), times[0]);
     349        assertEquals(Instant.ofEpochMilli(500020), times[1]);
    349350    }
    350351
  • trunk/test/unit/org/openstreetmap/josm/data/gpx/GpxImageCorrelationTest.java

    r17275 r17715  
    5858
    5959        final GpxImageEntry ib = new GpxImageEntry();
    60         ib.setExifTime(DateUtils.fromString("2016:01:03 11:54:58")); // 5 minutes before start of GPX
     60        ib.setExifTime(DateUtils.parseInstant("2016:01:03 11:54:58")); // 5 minutes before start of GPX
    6161        ib.createTmp();
    6262        final GpxImageEntry i0 = new GpxImageEntry();
    63         i0.setExifTime(DateUtils.fromString("2016:01:03 11:59:54")); // 4 sec before start of GPX
     63        i0.setExifTime(DateUtils.parseInstant("2016:01:03 11:59:54")); // 4 sec before start of GPX
    6464        i0.createTmp();
    6565        final GpxImageEntry i1 = new GpxImageEntry();
    66         i1.setExifTime(DateUtils.fromString("2016:01:03 12:04:01"));
     66        i1.setExifTime(DateUtils.parseInstant("2016:01:03 12:04:01"));
    6767        i1.createTmp();
    6868        final GpxImageEntry i2 = new GpxImageEntry();
    69         i2.setExifTime(DateUtils.fromString("2016:01:03 12:04:57"));
     69        i2.setExifTime(DateUtils.parseInstant("2016:01:03 12:04:57"));
    7070        i2.createTmp();
    7171        final GpxImageEntry i3 = new GpxImageEntry();
    72         i3.setExifTime(DateUtils.fromString("2016:01:03 12:05:05"));
     72        i3.setExifTime(DateUtils.parseInstant("2016:01:03 12:05:05"));
    7373        i3.createTmp();
    7474        final GpxImageEntry i4 = new GpxImageEntry(); //Image close to two points with elevation, but without time
    75         i4.setExifTime(DateUtils.fromString("2016:01:03 12:05:20"));
     75        i4.setExifTime(DateUtils.parseInstant("2016:01:03 12:05:20"));
    7676        i4.createTmp();
    7777        final GpxImageEntry i5 = new GpxImageEntry(); //between two tracks, closer to first
    78         i5.setExifTime(DateUtils.fromString("2016:01:03 12:07:00"));
     78        i5.setExifTime(DateUtils.parseInstant("2016:01:03 12:07:00"));
    7979        i5.createTmp();
    8080        final GpxImageEntry i6 = new GpxImageEntry(); //between two tracks, closer to second (more than 1 minute from any track)
    81         i6.setExifTime(DateUtils.fromString("2016:01:03 12:07:45"));
     81        i6.setExifTime(DateUtils.parseInstant("2016:01:03 12:07:45"));
    8282        i6.createTmp();
    8383
     
    119119        assertEquals(null, i6.getElevation());
    120120
    121         assertEquals(null, ib.getGpsTime());
    122         assertEquals(DateUtils.fromString("2016:01:03 11:59:54"), i0.getGpsTime()); // original time is kept
    123         assertEquals(DateUtils.fromString("2016:01:03 12:04:01"), i1.getGpsTime());
    124         assertEquals(DateUtils.fromString("2016:01:03 12:04:57"), i2.getGpsTime());
    125         assertEquals(DateUtils.fromString("2016:01:03 12:05:05"), i3.getGpsTime());
     121        assertEquals(null, ib.getGpsInstant());
     122        assertEquals(DateUtils.parseInstant("2016:01:03 11:59:54"), i0.getGpsInstant()); // original time is kept
     123        assertEquals(DateUtils.parseInstant("2016:01:03 12:04:01"), i1.getGpsInstant());
     124        assertEquals(DateUtils.parseInstant("2016:01:03 12:04:57"), i2.getGpsInstant());
     125        assertEquals(DateUtils.parseInstant("2016:01:03 12:05:05"), i3.getGpsInstant());
    126126
    127127        clearTmp(images);
  • trunk/test/unit/org/openstreetmap/josm/data/gpx/WayPointTest.java

    r17275 r17715  
    55import org.junit.jupiter.api.Test;
    66import org.openstreetmap.josm.TestUtils;
     7import org.openstreetmap.josm.data.coor.LatLon;
    78import org.openstreetmap.josm.testutils.JOSMTestRules;
    89
     
    1011import nl.jqno.equalsverifier.EqualsVerifier;
    1112import nl.jqno.equalsverifier.Warning;
     13
     14import java.time.Instant;
     15
     16import static org.junit.jupiter.api.Assertions.assertEquals;
     17import static org.junit.jupiter.api.Assertions.assertNotEquals;
    1218
    1319/**
     
    3743            .verify();
    3844    }
     45
     46    /**
     47     * Unit test of copy constructor {@link WayPoint#WayPoint(WayPoint)}
     48     */
     49    @Test
     50    void testConstructor() {
     51        WayPoint wp1 = new WayPoint(new LatLon(12., 34.));
     52        wp1.setInstant(Instant.ofEpochMilli(123_456_789));
     53        WayPoint wp2 = new WayPoint(wp1);
     54        assertEquals(wp1, wp2);
     55        assertEquals(wp1.getInstant(), wp2.getInstant());
     56        wp2.setInstant(Instant.ofEpochMilli(234_456_789));
     57        assertNotEquals(wp1, wp2);
     58        assertNotEquals(wp1.getInstant(), wp2.getInstant());
     59    }
    3960}
  • trunk/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java

    r17275 r17715  
    1010import java.io.File;
    1111import java.nio.charset.StandardCharsets;
    12 import java.text.DateFormat;
    1312import java.util.Collection;
    1413import java.util.Collections;
     
    3938import org.openstreetmap.josm.testutils.mockers.ExtendedDialogMocker;
    4039import org.openstreetmap.josm.tools.Logging;
    41 import org.openstreetmap.josm.tools.date.DateUtils;
    4240
    4341import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
     
    245243        assertEquals(3, trackpoints.size());
    246244        Iterator<WayPoint> it = trackpoints.iterator();
    247         DateFormat gpxFormat = DateUtils.getGpxFormat();
    248245        WayPoint p1 = it.next();
    249246        assertEquals(new LatLon(47.0, 9.0), p1.getCoor());
    250247        assertEquals("123", p1.get(GpxConstants.PT_ELE));
    251         assertEquals("2018-08-01T10:00:00.000Z", gpxFormat.format(p1.get(GpxConstants.PT_TIME)));
     248        assertEquals("2018-08-01T10:00:00Z", String.valueOf(p1.get(GpxConstants.PT_TIME)));
    252249        WayPoint p2 = it.next();
    253250        assertEquals(new LatLon(47.1, 9.1), p2.getCoor());
    254251        assertEquals("456", p2.get(GpxConstants.PT_ELE));
    255         assertEquals("2018-08-01T10:01:00.000Z", gpxFormat.format(p2.get(GpxConstants.PT_TIME)));
     252        assertEquals("2018-08-01T10:01:00Z", String.valueOf(p2.get(GpxConstants.PT_TIME)));
    256253        WayPoint p3 = it.next();
    257254        assertEquals(new LatLon(47.05, 9.05), p3.getCoor());
    258255        assertEquals("789", p3.get(GpxConstants.PT_ELE));
    259         assertEquals("2018-08-01T10:02:00.000Z", gpxFormat.format(p3.get(GpxConstants.PT_TIME)));
     256        assertEquals("2018-08-01T10:02:00Z", String.valueOf(p3.get(GpxConstants.PT_TIME)));
    260257    }
    261258
  • trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImagesTest.java

    r17275 r17715  
    4848        final GpxData gpx = GpxReaderTest.parseGpxData("nodist/data/2094047.gpx");
    4949        final ImageEntry i0 = new ImageEntry();
    50         i0.setExifTime(DateUtils.fromString("2016:01:03 11:59:54")); // 4 sec before start of GPX
     50        i0.setExifTime(DateUtils.parseInstant("2016:01:03 11:59:54")); // 4 sec before start of GPX
    5151        i0.createTmp();
    5252        assertEquals(Pair.create(GpxTimezone.ZERO, GpxTimeOffset.seconds(-4)),
  • trunk/test/unit/org/openstreetmap/josm/gui/layer/geoimage/ImageEntryTest.java

    r17580 r17715  
    2727        ImageEntry e = new ImageEntry(new File(TestUtils.getRegressionDataFile(12255, "G0016941.JPG")));
    2828        e.extractExif();
    29         assertNotNull(e.getExifTime());
     29        assertNotNull(e.getExifInstant());
    3030    }
    3131
  • trunk/test/unit/org/openstreetmap/josm/io/nmea/NmeaReaderTest.java

    r17275 r17715  
    1111import java.nio.file.Files;
    1212import java.nio.file.Paths;
    13 import java.text.SimpleDateFormat;
     13import java.time.Instant;
    1414import java.util.ArrayList;
    15 import java.util.Date;
    1615import java.util.List;
    1716import java.util.TimeZone;
    1817
    19 import org.junit.jupiter.api.BeforeEach;
    2018import org.junit.jupiter.api.Test;
    2119import org.junit.jupiter.api.extension.RegisterExtension;
     
    4543    public JOSMTestRules test = new JOSMTestRules();
    4644
    47     private final SimpleDateFormat iso8601 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");
    48 
    49     /**
    50      * Forces the timezone.
    51      */
    52     @BeforeEach
    53     public void setUp() {
    54         iso8601.setTimeZone(DateUtils.UTC);
    55     }
    56 
    5745    /**
    5846     * Tests reading a nmea file.
     
    6856
    6957        final List<WayPoint> wayPoints = new ArrayList<>(in.data.tracks.iterator().next().getSegments().iterator().next().getWayPoints());
    70         assertEquals(DateUtils.fromString("2016-01-25T05:05:09.200Z"), wayPoints.get(0).get(GpxConstants.PT_TIME));
    71         assertEquals(DateUtils.fromString("2016-01-25T05:05:09.400Z"), wayPoints.get(1).get(GpxConstants.PT_TIME));
    72         assertEquals(DateUtils.fromString("2016-01-25T05:05:09.600Z"), wayPoints.get(2).get(GpxConstants.PT_TIME));
    73         assertEquals(wayPoints.get(0).getDate(), wayPoints.get(0).get(GpxConstants.PT_TIME));
     58        assertEquals(DateUtils.parseInstant("2016-01-25T05:05:09.200Z"), wayPoints.get(0).get(GpxConstants.PT_TIME));
     59        assertEquals(DateUtils.parseInstant("2016-01-25T05:05:09.400Z"), wayPoints.get(1).get(GpxConstants.PT_TIME));
     60        assertEquals(DateUtils.parseInstant("2016-01-25T05:05:09.600Z"), wayPoints.get(2).get(GpxConstants.PT_TIME));
     61        assertEquals(wayPoints.get(0).getInstant(), wayPoints.get(0).get(GpxConstants.PT_TIME));
    7462
    75         assertEquals("2016-01-25T05:05:09.200Z", iso8601.format(wayPoints.get(0).getDate()));
    76         assertEquals("2016-01-25T05:05:09.400Z", iso8601.format(wayPoints.get(1).getDate()));
    77         assertEquals("2016-01-25T05:05:09.600Z", iso8601.format(wayPoints.get(2).getDate()));
     63        assertEquals(DateUtils.parseInstant("2016-01-25T05:05:09.200Z"), wayPoints.get(0).getInstant());
     64        assertEquals(DateUtils.parseInstant("2016-01-25T05:05:09.400Z"), wayPoints.get(1).getInstant());
     65        assertEquals(DateUtils.parseInstant("2016-01-25T05:05:09.600Z"), wayPoints.get(2).getInstant());
    7866
    7967        assertEquals(new LatLon(46.98807, -1.400525), wayPoints.get(0).getCoor());
     
    171159    }
    172160
    173     private static Date readDate(String nmeaLine) throws IOException, SAXException {
    174         return readWayPoint(nmeaLine).getDate();
     161    private static Instant readDate(String nmeaLine) throws IOException, SAXException {
     162        return readWayPoint(nmeaLine).getInstant();
    175163    }
    176164
     
    185173    @Test
    186174    void testTicket16496() throws Exception {
    187         assertEquals("2018-05-30T16:28:59.400Z", iso8601.format(
    188                 readDate("$GNRMC,162859.400,A,4543.03388,N,00058.19870,W,45.252,209.07,300518,,,D,V*13")));
    189         assertEquals("2018-05-30T16:28:59.400Z", iso8601.format(
    190                 readDate("$GNRMC,162859.40,A,4543.03388,N,00058.19870,W,45.252,209.07,300518,,,D,V*23")));
    191         assertEquals("2018-05-30T16:28:59.400Z", iso8601.format(
    192                 readDate("$GNRMC,162859.4,A,4543.03388,N,00058.19870,W,45.252,209.07,300518,,,D,V*13")));
     175        assertEquals(DateUtils.parseInstant("2018-05-30T16:28:59.400Z"),
     176                readDate("$GNRMC,162859.400,A,4543.03388,N,00058.19870,W,45.252,209.07,300518,,,D,V*13"));
     177        assertEquals(DateUtils.parseInstant("2018-05-30T16:28:59.400Z"),
     178                readDate("$GNRMC,162859.40,A,4543.03388,N,00058.19870,W,45.252,209.07,300518,,,D,V*23"));
     179        assertEquals(DateUtils.parseInstant("2018-05-30T16:28:59.400Z"),
     180                readDate("$GNRMC,162859.4,A,4543.03388,N,00058.19870,W,45.252,209.07,300518,,,D,V*13"));
    193181    }
    194182
  • trunk/test/unit/org/openstreetmap/josm/io/rtklib/RtkLibPosReaderTest.java

    r17275 r17715  
    77import java.nio.file.Files;
    88import java.nio.file.Paths;
    9 import java.text.SimpleDateFormat;
     9import java.time.Instant;
    1010import java.util.ArrayList;
    1111import java.util.List;
    1212import java.util.TimeZone;
    1313
    14 import org.junit.jupiter.api.BeforeEach;
    1514import org.junit.jupiter.api.Test;
    1615import org.junit.jupiter.api.extension.RegisterExtension;
     
    3534    public JOSMTestRules test = new JOSMTestRules();
    3635
    37     private final SimpleDateFormat iso8601 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");
    38 
    39     /**
    40      * Forces the timezone.
    41      */
    42     @BeforeEach
    43     public void setUp() {
    44         iso8601.setTimeZone(DateUtils.UTC);
    45     }
    46 
    4736    private static RtkLibPosReader read(String path) throws IOException, SAXException {
    4837        TimeZone.setDefault(TimeZone.getTimeZone("Europe/Berlin"));
     
    6251
    6352        List<WayPoint> wayPoints = new ArrayList<>(in.getGpxData().tracks.iterator().next().getSegments().iterator().next().getWayPoints());
    64         assertEquals(DateUtils.fromString("2019-06-08T08:23:12.000Z"), wayPoints.get(0).get(GpxConstants.PT_TIME));
    65         assertEquals(DateUtils.fromString("2019-06-08T08:23:12.300Z"), wayPoints.get(1).get(GpxConstants.PT_TIME));
    66         assertEquals(DateUtils.fromString("2019-06-08T08:23:12.600Z"), wayPoints.get(2).get(GpxConstants.PT_TIME));
    67         assertEquals(wayPoints.get(0).getDate(), wayPoints.get(0).get(GpxConstants.PT_TIME));
     53        assertEquals(DateUtils.parseInstant("2019-06-08T08:23:12.000Z"), wayPoints.get(0).get(GpxConstants.PT_TIME));
     54        assertEquals(DateUtils.parseInstant("2019-06-08T08:23:12.300Z"), wayPoints.get(1).get(GpxConstants.PT_TIME));
     55        assertEquals(DateUtils.parseInstant("2019-06-08T08:23:12.600Z"), wayPoints.get(2).get(GpxConstants.PT_TIME));
     56        assertEquals(wayPoints.get(0).getInstant(), wayPoints.get(0).get(GpxConstants.PT_TIME));
    6857
    69         assertEquals("2019-06-08T08:23:12.000Z", iso8601.format(wayPoints.get(0).getDate()));
    70         assertEquals("2019-06-08T08:23:12.300Z", iso8601.format(wayPoints.get(1).getDate()));
    71         assertEquals("2019-06-08T08:23:12.600Z", iso8601.format(wayPoints.get(2).getDate()));
     58        assertEquals(Instant.parse("2019-06-08T08:23:12.000Z"), wayPoints.get(0).getInstant());
     59        assertEquals(Instant.parse("2019-06-08T08:23:12.300Z"), wayPoints.get(1).getInstant());
     60        assertEquals(Instant.parse("2019-06-08T08:23:12.600Z"), wayPoints.get(2).getInstant());
    7261
    7362        assertEquals(new LatLon(46.948881673, -1.484757046), wayPoints.get(0).getCoor());
  • trunk/test/unit/org/openstreetmap/josm/tools/ExifReaderTest.java

    r17275 r17715  
    88import java.io.IOException;
    99import java.text.DecimalFormat;
    10 import java.text.ParseException;
    11 import java.text.SimpleDateFormat;
    12 import java.util.Date;
     10import java.time.Instant;
    1311
    1412import org.junit.jupiter.api.BeforeEach;
     
    4846    /**
    4947     * Test time extraction
    50      * @throws ParseException if {@link ExifReader#readTime} fails to parse date/time of sample file
    5148     */
    5249    @Test
    53     void testReadTime() throws ParseException {
    54         Date date = ExifReader.readTime(directionSampleFile);
    55         doTest("2010-05-15T17:12:05.000", date);
     50    void testReadTime() {
     51        Instant date = ExifReader.readInstant(directionSampleFile);
     52        assertEquals(Instant.parse("2010-05-15T17:12:05.000Z"), date);
    5653    }
    5754
    5855    /**
    5956     * Tests reading sub-seconds from the EXIF header
    60      * @throws ParseException if {@link ExifReader#readTime} fails to parse date/time of sample file
    6157     */
    6258    @Test
    63     void testReadTimeSubSecond1() throws ParseException {
    64         Date date = ExifReader.readTime(new File("nodist/data/IMG_20150711_193419.jpg"));
    65         doTest("2015-07-11T19:34:19.100", date);
    66     }
    67 
    68     private static void doTest(String expectedDate, Date parsedDate) {
    69         assertEquals(expectedDate, new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS").format(parsedDate));
     59    void testReadTimeSubSecond1() {
     60        Instant date = ExifReader.readInstant(new File("nodist/data/IMG_20150711_193419.jpg"));
     61        assertEquals(Instant.parse("2015-07-11T19:34:19.100Z"), date);
    7062    }
    7163
    7264    private static void doTestFile(String expectedDate, int ticket, String filename) {
    73         doTest(expectedDate, ExifReader.readTime(new File(TestUtils.getRegressionDataFile(ticket, filename))));
     65        Instant date = ExifReader.readInstant(new File(TestUtils.getRegressionDataFile(ticket, filename)));
     66        assertEquals(Instant.parse(expectedDate), date);
    7467    }
    7568
     
    125118    @Test
    126119    void testTicket11685() throws IOException {
    127         doTestFile("2015-11-08T15:33:27.500", 11685, "2015-11-08_15-33-27-Xiaomi_YI-Y0030832.jpg");
     120        doTestFile("2015-11-08T15:33:27.500Z", 11685, "2015-11-08_15-33-27-Xiaomi_YI-Y0030832.jpg");
    128121    }
    129122
     
    134127    @Test
    135128    void testTicket14209() throws IOException {
    136         doTestFile("2017-01-16T18:27:00.000", 14209, "0MbEfj1S--.1.jpg");
    137         doTestFile("2016-08-13T19:51:13.000", 14209, "7VWFOryj--.1.jpg");
     129        doTestFile("2017-01-16T18:27:00.000Z", 14209, "0MbEfj1S--.1.jpg");
     130        doTestFile("2016-08-13T19:51:13.000Z", 14209, "7VWFOryj--.1.jpg");
    138131    }
    139132}
Note: See TracChangeset for help on using the changeset viewer.