Changeset 15021 in josm for trunk/test
- Timestamp:
- 2019-04-26T16:45:26+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/unit/org/openstreetmap/josm/tools/GeometryTest.java
r15008 r15021 3 3 4 4 import static org.junit.Assert.assertEquals; 5 import static org.junit.Assert.assertFalse; 5 6 import static org.junit.Assert.assertNotEquals; 7 import static org.junit.Assert.assertTrue; 6 8 7 9 import java.io.FileInputStream; … … 18 20 import org.openstreetmap.josm.data.osm.Node; 19 21 import org.openstreetmap.josm.data.osm.Relation; 22 import org.openstreetmap.josm.data.osm.RelationMember; 20 23 import org.openstreetmap.josm.data.osm.Way; 21 24 import org.openstreetmap.josm.data.osm.search.SearchCompiler; … … 221 224 assertEquals(Geometry.PolygonIntersection.OUTSIDE, Geometry.polygonIntersection(poly1, poly2)); 222 225 } 226 227 /** 228 * Test of {@link Geometry#isPolygonInsideMultiPolygon} 229 * See #17652. Triangle crosses outer way of multipolygon. 230 */ 231 @Test 232 public void testIsPolygonInsideMultiPolygon() { 233 Node node1 = new Node(new LatLon(1.01, 1.0)); 234 Node node2 = new Node(new LatLon(1.01, 1.1)); 235 Node node3 = new Node(new LatLon(1.02, 1.05)); 236 Way w1 = new Way(); 237 w1.setNodes(Arrays.asList(node1, node2, node3, node1)); 238 w1.put("building", "yes"); 239 240 Node node4 = new Node(new LatLon(1.0, 1.09)); 241 Node node5 = new Node(new LatLon(1.0, 1.12)); 242 Node node6 = new Node(new LatLon(1.1, 1.12)); 243 Node node7 = new Node(new LatLon(1.1, 1.09)); 244 Way outer = new Way(); 245 outer.setNodes(Arrays.asList(node4, node5, node6, node7, node4)); 246 Node node8 = new Node(new LatLon(1.04, 1.1)); 247 Node node9 = new Node(new LatLon(1.04, 1.11)); 248 Node node10 = new Node(new LatLon(1.06, 1.105)); 249 Way inner = new Way(); 250 inner.setNodes(Arrays.asList(node8, node9, node10, node8)); 251 Relation mp = new Relation(); 252 mp.addMember(new RelationMember("outer",outer)); 253 mp.addMember(new RelationMember("inner",inner)); 254 mp.put("type", "multipolygon"); 255 assertFalse(Geometry.isPolygonInsideMultiPolygon(w1.getNodes(), mp, null)); 256 257 node4.setCoor(new LatLon(1.006, 0.99)); 258 // now w1 is inside 259 assertTrue(Geometry.isPolygonInsideMultiPolygon(w1.getNodes(), mp, null)); 260 } 223 261 }
Note:
See TracChangeset
for help on using the changeset viewer.