Ticket #19008: 19008.link-roads.patch
| File 19008.link-roads.patch, 4.1 KB (added by , 6 years ago) |
|---|
-
src/org/openstreetmap/josm/data/validation/tests/Highways.java
160 160 */ 161 161 public static boolean isHighwayLinkOkay(final Way way) { 162 162 final String highway = way.get(HIGHWAY); 163 if (highway == null || !highway.endsWith("_link") 164 || !IN_DOWNLOADED_AREA.test(way.getNode(0)) || !IN_DOWNLOADED_AREA.test(way.getNode(way.getNodesCount()-1))) { 163 if (highway == null || !highway.endsWith("_link")) { 165 164 return true; 166 165 } 167 166 … … 192 191 } 193 192 } 194 193 // Link roads should always at least one adjacent segment of same class 195 return !sameClass.isEmpty() ;194 return !sameClass.isEmpty() || !IN_DOWNLOADED_AREA_STRICT.test(way.getNode(0)) || !IN_DOWNLOADED_AREA_STRICT.test(way.lastNode()); 196 195 } 197 196 198 197 private void testHighwayLink(final Way way) { -
test/unit/org/openstreetmap/josm/data/validation/tests/HighwaysTest.java
13 13 import org.junit.Test; 14 14 import org.openstreetmap.josm.JOSMFixture; 15 15 import org.openstreetmap.josm.TestUtils; 16 import org.openstreetmap.josm.data.Bounds; 17 import org.openstreetmap.josm.data.DataSource; 16 18 import org.openstreetmap.josm.data.coor.LatLon; 17 19 import org.openstreetmap.josm.data.osm.DataSet; 18 20 import org.openstreetmap.josm.data.osm.Node; … … 33 35 JOSMFixture.createUnitTestFixture().init(); 34 36 } 35 37 36 private static Way createTestSetting(String highway, String highwayLink ) {38 private static Way createTestSetting(String highway, String highwayLink, boolean withArea) { 37 39 DataSet ds = new DataSet(); 38 40 39 41 Node n00 = new Node(LatLon.ZERO); … … 68 70 ds.addPrimitive(major); 69 71 ds.addPrimitive(link); 70 72 ds.addPrimitive(unclassified); 71 73 if (withArea) { 74 ds.addDataSource(new DataSource(new Bounds(-90, -180, 90, 180), "Everywhere")); 75 } 72 76 return link; 73 77 } 74 78 … … 77 81 */ 78 82 @Test 79 83 public void testCombinations() { 80 assertTrue(Highways.isHighwayLinkOkay(createTestSetting("primary", "primary_link"))); 81 assertTrue(Highways.isHighwayLinkOkay(createTestSetting("primary", "primary"))); 82 assertFalse(Highways.isHighwayLinkOkay(createTestSetting("primary", "secondary_link"))); 83 assertFalse(Highways.isHighwayLinkOkay(createTestSetting("secondary", "primary_link"))); 84 assertFalse(Highways.isHighwayLinkOkay(createTestSetting("secondary", "tertiary_link"))); 85 assertTrue(Highways.isHighwayLinkOkay(createTestSetting("residential", "residential"))); 84 assertTrue(Highways.isHighwayLinkOkay(createTestSetting("primary", "primary_link", true))); 85 assertTrue(Highways.isHighwayLinkOkay(createTestSetting("primary", "primary", true))); 86 assertFalse(Highways.isHighwayLinkOkay(createTestSetting("primary", "secondary_link", true))); 87 assertFalse(Highways.isHighwayLinkOkay(createTestSetting("secondary", "primary_link", true))); 88 assertFalse(Highways.isHighwayLinkOkay(createTestSetting("secondary", "tertiary_link", true))); 89 assertTrue(Highways.isHighwayLinkOkay(createTestSetting("residential", "residential", true))); 90 // link to high: don't warn when no download area 91 assertTrue(Highways.isHighwayLinkOkay(createTestSetting("secondary", "primary_link", false))); 86 92 } 87 93 88 94 /** … … 90 96 */ 91 97 @Test 92 98 public void testSourceMaxSpeedUnitedKingdom() { 93 Way link = createTestSetting("primary", "primary" );99 Way link = createTestSetting("primary", "primary", false); 94 100 link.put("maxspeed", "60 mph"); 95 101 link.put("source:maxspeed", "UK:nsl_single"); 96 102 Highways test = new Highways();
