@Test public void test2() { Vertex<Object> v0 = vertex(0); Vertex<Object> v1 = vertex(1); Vertex<Object> v2 = vertex(2); Vertex<Object> v3 = vertex(3); Edge<Object, Object> e0 = edge(v0, v1, 0); Edge<Object, Object> e1 = edge(v1, v2, 1); Edge<Object, Object> e2 = edge(v2, v3, 2); Edge<Object, Object> e3 = edge(v0, v3, 3); List<List<EdgeOut<Object, Object>>> ret = MultiPartPolygonUtil.connect(Arrays.asList(e0, e1, e2, e3)); assertEquals(1, ret.size()); List<EdgeOut<Object, Object>> polygon = ret.get(0); assertEquals(4, polygon.size()); assertContein(e0, polygon, false); assertContein(e1, polygon, false); assertContein(e2, polygon, false); assertContein(e3, polygon, true); }
@Test public void test6() { // one edge not connected Vertex<Object> v0 = vertex(-6); Vertex<Object> v1 = vertex(-4); Vertex<Object> v2 = vertex(-10); Vertex<Object> v3 = vertex(-8); Edge<Object, Object> e0 = edge(vertex(-6), vertex(-4), 0); Edge<Object, Object> e1 = edge(vertex(-4), vertex(-10), 1); Edge<Object, Object> e2 = edge(vertex(-10), vertex(-8), 2); Edge<Object, Object> e3 = edge(vertex(-8), vertex(-6), 3); List<List<EdgeOut<Object, Object>>> ret = MultiPartPolygonUtil.connect(Arrays.asList(e0, e1, e2, e3)); assertEquals(1, ret.size()); List<EdgeOut<Object, Object>> polygon = ret.get(0); assertEquals(4, polygon.size()); assertContein(e0, polygon, false); assertContein(e1, polygon, false); assertContein(e2, polygon, false); assertContein(e3, polygon, false); }
@Test public void test5() { // tree connected polygons Vertex<Object> v0 = vertex(0); Vertex<Object> v1 = vertex(1); Vertex<Object> v2 = vertex(2); Vertex<Object> v3 = vertex(3); Vertex<Object> v4 = vertex(4); Vertex<Object> v5 = vertex(5); Edge<Object, Object> e0 = edge(v0, v1, 0); Edge<Object, Object> e1 = edge(v1, v2, 1); Edge<Object, Object> e2 = edge(v2, v0, 2); Edge<Object, Object> e3 = edge(v2, v3, 3); Edge<Object, Object> e4 = edge(v3, v4, 4); Edge<Object, Object> e5 = edge(v4, v0, 5); Edge<Object, Object> e6 = edge(v4, v5, 6); Edge<Object, Object> e7 = edge(v5, v3, 7); List<List<EdgeOut<Object, Object>>> ret = MultiPartPolygonUtil.connect(Arrays.asList(e0, e1, e2, e3, e4, e5, e6, e7)); assertEquals(3, ret.size()); List<EdgeOut<Object, Object>> polygon = ret.get(0); assertEquals(3, polygon.size()); assertContein(e0, polygon, false); assertContein(e1, polygon, false); assertContein(e2, polygon, false); polygon = ret.get(1); assertEquals(4, polygon.size()); assertContein(e3, polygon, false); assertContein(e4, polygon, false); assertContein(e5, polygon, false); assertContein(e2, polygon, true); polygon = ret.get(2); assertEquals(3, polygon.size()); assertContein(e4, polygon, false); assertContein(e6, polygon, false); assertContein(e7, polygon, false); }
@Test public void test1() { Vertex<Object> v0 = vertex(0); Vertex<Object> v1 = vertex(1); Edge<Object, Object> e0 = edge(v0, v1, 0); Edge<Object, Object> e1 = edge(v1, v0, 1); List<List<EdgeOut<Object, Object>>> ret = MultiPartPolygonUtil.connect(Arrays.asList(e0, e1)); assertEquals(1, ret.size()); List<EdgeOut<Object, Object>> polygon = ret.get(0); assertEquals(polygon.size(), 2); assertContein(e0, polygon, false); assertContein(e1, polygon, false); }