@Test
public void simplifyCurve3() {

    Point p0 = fac.createPoint( null, 0.0, 0.0, CRSUtils.EPSG_4326 );
    Point p1 = fac.createPoint( null, 1.0, 1.0, CRSUtils.EPSG_4326 );
    Point p2 = fac.createPoint( null, 5.0, 5.0, CRSUtils.EPSG_4326 );
    Point p3 = fac.createPoint( null, 10.0, 10.0, CRSUtils.EPSG_4326 );
    Point p4 = fac.createPoint( null, 20.0, 22.0, CRSUtils.EPSG_4326 );
    Point p5 = fac.createPoint( null, 30.0, 35.0, CRSUtils.EPSG_4326 );
    LineStringSegment segment1 = fac.createLineStringSegment( new PointsArray( p0, p1, p2, p3 ) );
    Arc segment2 = fac.createArc( p3, p4, p5 );
    Curve curve = fac.createCurve( null, CRSUtils.EPSG_4326, segment1, segment2 );
    LineString simplified = simplifier.simplify( curve );
    assertEquals( POINTS_PER_ARC + 3, simplified.getControlPoints().size() );
    assertEquals( 0.0, simplified.getControlPoints().get( 0 ).get0() );
    assertEquals( 0.0, simplified.getControlPoints().get( 0 ).get1() );
    assertEquals( 1.0, simplified.getControlPoints().get( 1 ).get0() );
    assertEquals( 1.0, simplified.getControlPoints().get( 1 ).get1() );
    assertEquals( 5.0, simplified.getControlPoints().get( 2 ).get0() );
    assertEquals( 5.0, simplified.getControlPoints().get( 2 ).get1() );
    assertEquals( 10.0, simplified.getControlPoints().get( 3 ).get0() );
    assertEquals( 10.0, simplified.getControlPoints().get( 3 ).get1() );
    assertEquals( 30.0, simplified.getEndPoint().get0() );
    assertEquals( 35.0, simplified.getEndPoint().get1() );
}