@Test public void testCreateSubLineTo_threePoints_secondSegment_closeToStart() { final S2Polyline polyline = (S2Polyline) wktReader.read("LINESTRING(-3 11, -1 13, 0 16)"); final S2Point point = (S2Point) wktReader.read("POINT(-0.66667 14)"); final BcS2TimeAxis timeAxis = new BcS2TimeAxis(new BcS2LineString(polyline), new Date(), new Date()); final S2Polyline subLineTo = timeAxis.createSubLineTo(point); assertEqualPoints(subLineTo.vertex(0), polyline.vertex(0)); assertEquals(0.06717461517369061, subLineTo.getArclengthAngle().radians(), 1e-8); }
@Test public void testCreateSubLineTo_twoPoints_closeToEnd() { final S2Polyline polyline = (S2Polyline) wktReader.read("LINESTRING(5 3, 8 3)"); final S2Point point = (S2Point) wktReader.read("POINT(7 3)"); final BcS2TimeAxis timeAxis = new BcS2TimeAxis(new BcS2LineString(polyline), new Date(), new Date()); final S2Polyline subLineTo = timeAxis.createSubLineTo(point); assertEqualPoints(subLineTo.vertex(0), polyline.vertex(0)); assertEquals(0.034858741930189, subLineTo.getArclengthAngle().radians(), 1e-8); }
@Test public void testCreateSubLineTo_threePoints_firstSegment_closeToEnd() { final S2Polyline polyline = (S2Polyline) wktReader.read("LINESTRING(-3 11, -1 13, 0 16)"); final S2Point point = (S2Point) wktReader.read("POINT(-1.5 12.6667)"); final BcS2TimeAxis timeAxis = new BcS2TimeAxis(new BcS2LineString(polyline), new Date(), new Date()); final S2Polyline subLineTo = timeAxis.createSubLineTo(point); assertEquals(2, subLineTo.numVertices()); assertEqualPoints(subLineTo.vertex(0), polyline.vertex(0)); assertEquals(0.03871381307846636, subLineTo.getArclengthAngle().radians(), 1e-8); }
@Test public void testCreateSubLineTo_threePoints_secondSegment_closeToEnd() { final S2Polyline polyline = (S2Polyline) wktReader.read("LINESTRING(-3 11, -1 13, 0 16)"); final S2Point point = (S2Point) wktReader.read("POINT(-0.3333 15)"); final BcS2TimeAxis timeAxis = new BcS2TimeAxis(new BcS2LineString(polyline), new Date(), new Date()); final S2Polyline subLineTo = timeAxis.createSubLineTo(point); assertEquals(3, subLineTo.numVertices()); assertEqualPoints(subLineTo.vertex(0), polyline.vertex(0)); assertEquals(0.08551440716241719, subLineTo.getArclengthAngle().radians(), 1e-8); }