| OtsLine2d(Path2D) |   | 68% |   | 50% | 3 | 6 | 3 | 17 | 0 | 1 |
| getVertexFraction(int) |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
| getBounds() |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| getLocationFraction(double, double) |   | 74% |   | 50% | 4 | 5 | 1 | 4 | 0 | 1 |
| offsetLine(double, double) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| find(double) |   | 86% |   | 90% | 1 | 6 | 2 | 16 | 0 | 1 |
| offsetLine(double[], double[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getProjectedRadius(double) |   | 94% |   | 86% | 3 | 12 | 0 | 17 | 0 | 1 |
| noiseFilterRamerDouglasPeucker(double, boolean) |   | 96% |   | 87% | 1 | 5 | 0 | 19 | 0 | 1 |
| getEnvelope() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| toString() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| hashCode() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| toExcel() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getProjectedVertexRadius(int) |  | 99% |   | 81% | 3 | 9 | 0 | 23 | 0 | 1 |
| determineFractionalHelpers(Direction, Direction) |  | 100% |  | 100% | 0 | 14 | 0 | 49 | 0 | 1 |
| projectFractional(Direction, Direction, double, double, OtsLine2d.FractionalFallback) |  | 100% |  | 100% | 0 | 20 | 0 | 38 | 0 | 1 |
| intersectionOfLines(Point2d, Point2d, Point2d, Point2d) |  | 100% |  | 100% | 0 | 2 | 0 | 12 | 0 | 1 |
| init(PolyLine2d) |  | 100% |  | 100% | 0 | 2 | 0 | 7 | 0 | 1 |
| concatenate(double, OtsLine2d[]) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| createAndCleanOtsLine2d(Point2d[]) |  | 100% |  | 100% | 0 | 3 | 0 | 4 | 0 | 1 |
| getLocationFraction(double) |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 1 |
| OtsLine2d(PolyLine2d) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| get(int) |  | 100% |  | 100% | 0 | 3 | 0 | 3 | 0 | 1 |
| unitOffsetSegment(int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLocationSI(double) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getLocationExtendedSI(double) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| projectOrthogonal(double, double) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| extractFractional(double, double) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getCentroid() |  | 100% |   | 50% | 1 | 2 | 0 | 3 | 0 | 1 |
| equals(Object) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| concatenate(double, OtsLine2d, OtsLine2d) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getPoints() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| offsetLine(double) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| extract(double, double) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| createAndCleanOtsLine2d(List) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| OtsLine2d(List) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| reverse() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLocationFractionExtended(double) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| truncate(double) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| OtsLine2d(Point2d[]) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| extract(Length, Length) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getFirst() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLast() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLocationExtended(Length) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLocation(Length) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getLocationSI$0(double) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| concatenate(OtsLine2d[]) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| size() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| toPlot() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLine2d() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLength() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLocation() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |