| locate(Coordinate) |  | 0% |  | 0% | 4 | 4 | 5 | 5 | 1 | 1 |
| getBoundaryPoints() |  | 0% |  | 0% | 2 | 2 | 8 | 8 | 1 | 1 |
| addEdge(Edge) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| insertPoint(int, Coordinate, int) |   | 65% |   | 50% | 1 | 2 | 1 | 6 | 0 | 1 |
| add(Geometry) |   | 90% |   | 94% | 1 | 10 | 1 | 12 | 0 | 1 |
| addPoint(Coordinate) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| GeometryGraph(int, Geometry) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| findEdge(LineString) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| hasTooFewPoints() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getInvalidPoint() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| addLineString(LineString) |   | 98% |   | 75% | 1 | 3 | 0 | 12 | 0 | 1 |
| addPolygonRing(LinearRing, int, int) |  | 100% |  | 100% | 0 | 4 | 0 | 16 | 0 | 1 |
| computeSelfNodes(LineIntersector, boolean) |  | 100% |   | 90% | 1 | 6 | 0 | 7 | 0 | 1 |
| GeometryGraph(int, Geometry, BoundaryNodeRule) |  | 100% |   | 50% | 1 | 2 | 0 | 14 | 0 | 1 |
| addSelfIntersectionNodes(int) |  | 100% |  | 100% | 0 | 3 | 0 | 9 | 0 | 1 |
| insertBoundaryPoint(int, Coordinate) |  | 100% |  | 100% | 0 | 2 | 0 | 9 | 0 | 1 |
| computeEdgeIntersections(GeometryGraph, LineIntersector, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| addPolygon(Polygon) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| addSelfIntersectionNode(int, Coordinate, int) |  | 100% |  | 100% | 0 | 4 | 0 | 5 | 0 | 1 |
| computeSplitEdges(List) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| addCollection(GeometryCollection) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| getBoundaryNodes() |  | 100% |   | 50% | 1 | 2 | 0 | 3 | 0 | 1 |
| addPoint(Point) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| determineBoundary(BoundaryNodeRule, int) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| createEdgeSetIntersector() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getGeometry() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBoundaryNodeRule() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |