| getTextBlockPosition(StringBounder, Snake.Text) |  | 0% |  | 0% | 11 | 11 | 24 | 24 | 1 | 1 |
| drawRainbow(UGraphic) |  | 0% |  | 0% | 6 | 6 | 20 | 20 | 1 | 1 |
| merge(Snake, StringBounder) |   | 36% |   | 33% | 8 | 10 | 11 | 18 | 0 | 1 |
| getHorizontalLines() |  | 0% |  | 0% | 3 | 3 | 8 | 8 | 1 | 1 |
| getMaxX(StringBounder) |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
| create(ISkinParam, Rainbow) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| create(ISkinParam, UPolygon, Rainbow, UPolygon) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| withoutEndDecoration() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| withMerge(MergeStrategy) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| withLabel(TextBlock, VerticalAlignment) |  | 0% |  | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
| drawInternalLabel(UGraphic) |   | 58% |   | 75% | 1 | 3 | 2 | 5 | 0 | 1 |
| translate(UTranslate) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| ignoreForCompression() |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| doesHorizontalCross(MinMax) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| Snake(ISkinParam, UPolygon, Rainbow, UPolygon, Worm, MergeStrategy, Direction, List) |   | 89% |   | 50% | 1 | 2 | 1 | 12 | 0 | 1 |
| drawInternal(UGraphic) |   | 86% |   | 50% | 1 | 2 | 1 | 5 | 0 | 1 |
| touches(Snake) |   | 77% |   | 50% | 2 | 3 | 2 | 5 | 0 | 1 |
| toString() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| same(XPoint2D, XPoint2D) |   | 80% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| create(ISkinParam, Rainbow, UPolygon) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| move(double, double) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| emphasizeDirection(Direction) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| withLabel(TextBlock, HorizontalAlignment) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| getLast() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| addPoint(XPoint2D) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| addPoint(double, double) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getFirst() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |