| buildCrossings(int, int, int, boolean) |  | 98% |   | 87% | 1 | 5 | 0 | 11 | 0 | 1 |
| locateMinMax(int, int, int, Selector, double[]) |  | 100% |  | 100% | 0 | 12 | 0 | 34 | 0 | 1 |
| applyRecursively(double[], int, int, int, Selector, double[], int) |  | 100% |  | 100% | 0 | 14 | 0 | 30 | 0 | 1 |
| getMinElevation(int, int, int) |  | 100% |   | 62% | 3 | 5 | 0 | 17 | 0 | 1 |
| getMaxElevation(int, int, int) |  | 100% |   | 62% | 3 | 5 | 0 | 17 | 0 | 1 |
| preprocess(double[], double[], int, int, Selector) |  | 100% |  | 100% | 0 | 4 | 0 | 13 | 0 | 1 |
| processUpdatedElevation(double[]) |  | 100% |  | 100% | 0 | 2 | 0 | 13 | 0 | 1 |
| setLevels(int, int, int) |  | 100% |  | 100% | 0 | 6 | 0 | 12 | 0 | 1 |
| getMergeLevel(int, int, int, int) |  | 100% |  | 100% | 0 | 4 | 0 | 13 | 0 | 1 |
| getCrossedBoundaryColumns(int, int, int) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| getCrossedBoundaryRows(int, int, int) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| isColumnMerging(int) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| locateMin(int, int, int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| locateMax(int, int, int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLevels() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| MinMaxTreeTile() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |