Ignore:
Timestamp:
2021-03-21T08:56:56+01:00 (4 years ago)
Author:
simon04
Message:

fix #18074 - Duplicate Node: detect errors caused by different rounding in JOSM and on OSM server

Reduce the precision used by the duplicate node test by one decimal digit

The advanced preference value validator.duplicatenodes.precision now defaults to 1e-6 (previously 1e-7).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/data/validation/tests/DuplicateNodeTest.java

    r17376 r17612  
    178178
    179179    /**
     180     * Test of "Duplicate node" validation test - server precision.
     181     *
     182     * Non-regression test for ticket #18074.
     183     */
     184    @Test
     185    void testServerPrecision() {
     186        DuplicateNode.NodeHash nodeHash = new DuplicateNode.NodeHash();
     187        DataSet ds = new DataSet();
     188
     189        Node a = new Node(new LatLon(-23.51108285, -46.489264256));
     190        Node b = new Node(new LatLon(-23.511082861, -46.489264251));
     191        ds.addPrimitive(a);
     192        ds.addPrimitive(b);
     193
     194        a.put("foo", "bar");
     195        b.put("bar", "foo");
     196
     197        // on OSM server, both are: lat = -23.5110829 lon = -46.4892643
     198        assertEquals(new LatLon(-23.5110828, -46.4892643), a.getCoor().getRoundedToOsmPrecision());
     199        assertEquals(new LatLon(-23.5110829, -46.4892643), b.getCoor().getRoundedToOsmPrecision());
     200        assertEquals(new LatLon(-23.511083, -46.489264), nodeHash.roundCoord(a.getCoor()));
     201        assertEquals(new LatLon(-23.511083, -46.489264), nodeHash.roundCoord(b.getCoor()));
     202        performTest(DuplicateNode.DUPLICATE_NODE, ds, false);
     203    }
     204
     205    /**
    180206     * Test of "Duplicate node" validation test - mixed case.
    181207     */
Note: See TracChangeset for help on using the changeset viewer.