// We're then able to verify that the cloning process takes a deep copy of the geometry collection.
// A shallow copy will result in the transform being applied several times to the same line object.
// (Interestingly, outerCollection.clone() takes a deep copy
// but GeometryFactory::createGeometry( outerCollection ) takes a shallow copy.)
Limb limb = new Limb();
limb.setIntersection( outerCollection );
Options options = new Options();
options.setScreenSize( this.halfScreenSize );
PositionAssignmentLimbRefiner testObj = new PositionAssignmentLimbRefiner();
testObj.refine( limb, this.defaultView, options );
assertTrue( limb.getPosition() instanceof GeometryCollection );
GeometryCollection position = (GeometryCollection)limb.getPosition();
assertTrue( position.getGeometryN( 0 ) instanceof MultiLineString );
MultiLineString position1 = (MultiLineString)position.getGeometryN( 0 );
assertTrue( position1.getGeometryN( 0 ) instanceof LineString );
LineString multiLine1 = (LineString)position1.getGeometryN( 0 );
assertEquals( expectedScreenX1, multiLine1.getCoordinateN( 0 ).x, DOUBLE_TOLERANCE );