@Test
public void simplifyMultiCurve() {

    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 );
    LineString ls = fac.createLineString( null, CRSUtils.EPSG_4326, new PointsArray( p0, p1, p2, p3 ) );
    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 );
    List<Curve> memberCurves = new ArrayList<Curve>();
    memberCurves.add( ls );
    memberCurves.add( curve );
    MultiCurve<?> multiCurve = fac.createMultiCurve( null, CRSUtils.EPSG_4326, memberCurves );
    MultiLineString simplified = (MultiLineString) simplifier.simplify( multiCurve );
    assertEquals(
                  "MULTILINESTRING ((0.000000 0.000000,1.000000 1.000000,5.000000 5.000000,10.000000 10.000000),(0.000000 0.000000,1.000000 1.000000,5.000000 5.000000,10.000000 10.000000,12.317848 12.699677,14.612186 15.419362,16.882842 18.158850,19.129644 20.917935,21.352424 23.696410,23.551014 26.494065,25.725249 29.310690,27.874965 32.146073,30.000000 35.000000))",
                  simplified.toString() );
}