| buildMaximallyDense(BulkIterator, int, int, int, UpdateFunction) |  | 0% |  | 0% | 16 | 16 | 52 | 52 | 1 | 1 |
| isWellFormedReturnHeight(Comparator, Object[], boolean, Object, Object) |  | 0% |  | 0% | 15 | 15 | 32 | 32 | 1 | 1 |
| buildPerfectDenseWithoutSizeTracking(BulkIterator, int, UpdateFunction) |  | 0% |  | 0% | 6 | 6 | 16 | 16 | 1 | 1 |
| transformAndFilterLeaf(Object[], BiFunction, Object) |  | 0% |  | 0% | 13 | 13 | 27 | 27 | 1 | 1 |
| transform(Object[], Function) |   | 10% |   | 18% | 7 | 9 | 22 | 26 | 0 | 1 |
| accumulate(Object[], BiLongAccumulator, Object, Comparator, Object, long) |   | 10% |   | 4% | 11 | 12 | 24 | 26 | 0 | 1 |
| replaceInSitu(Object[], int, Object) |  | 0% |  | 0% | 10 | 10 | 18 | 18 | 1 | 1 |
| toArray(Object[], int, int, Object[], int) |  | 0% |  | 0% | 7 | 7 | 15 | 15 | 1 | 1 |
| reverseInSitu(Object[], int, boolean) |  | 0% |  | 0% | 5 | 5 | 15 | 15 | 1 | 1 |
| findByIndex(Object[], int) |   | 26% |   | 27% | 9 | 10 | 12 | 18 | 0 | 1 |
| appendBranch(StringBuilder, Object[]) |  | 0% |  | 0% | 4 | 4 | 11 | 11 | 1 | 1 |
| exponentialSearchWithUpperBound(Comparator, Object[], int, int, Object, Object) |  | 0% |  | 0% | 5 | 5 | 16 | 16 | 1 | 1 |
| replaceInSitu(Object[], Comparator, Object, Object) |  | 0% |  | 0% | 4 | 4 | 11 | 11 | 1 | 1 |
| update(Object[], Object[], Comparator, UpdateFunction) |   | 57% |   | 54% | 6 | 12 | 12 | 28 | 0 | 1 |
| compareWellFormed(Comparator, Object, Object) |  | 0% |  | 0% | 8 | 8 | 7 | 7 | 1 | 1 |
| buildRoot(BulkIterator, int, UpdateFunction) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| treeIndexOfKey(Object[], int) |  | 0% |  | 0% | 6 | 6 | 8 | 8 | 1 | 1 |
| findIndex(Object[], Comparator, Object) |   | 45% |   | 41% | 4 | 7 | 9 | 15 | 0 | 1 |
| apply(Object[], BiConsumer, Object) |   | 18% |   | 16% | 3 | 4 | 7 | 10 | 0 | 1 |
| reverse(Object[], int, int) |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
| reverse(int[], int, int) |  | 0% |  | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
| isNodeWellFormed(Comparator, Object[], Object, Object) |  | 0% |  | 0% | 4 | 4 | 8 | 8 | 1 | 1 |
| slice(Object[], Comparator, Object, boolean, Object, boolean, BTree.Dir) |   | 50% |   | 30% | 5 | 6 | 5 | 10 | 0 | 1 |
| buildLeafWithoutSizeTracking(BulkIterator, int, UpdateFunction) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| sizeOnHeapOf(Object[]) |   | 28% |   | 33% | 3 | 4 | 5 | 9 | 0 | 1 |
| sizesToSizeMap(int[]) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| sizesToSizeMap(int[], int) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| transformAndFilter(Object[], BiFunction, Object) |  | 0% |  | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
| hashCode(Object[]) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| sizeMapToSizes(int[]) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| slice(Object[], Comparator, int, int, BTree.Dir) |  | 0% |  | 0% | 2 | 2 | 2 | 2 | 1 | 1 |
| buildLeaf(BulkIterator, int, UpdateFunction) |   | 42% |   | 25% | 2 | 3 | 3 | 7 | 0 | 1 |
| height(Object[]) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| sizeOfStructureOnHeap(Object[]) |   | 40% |   | 50% | 2 | 4 | 3 | 8 | 0 | 1 |
| transformCopyBranchHelper(Object[], int, int, int) |  | 0% | | n/a | 1 | 1 | 4 | 4 | 1 | 1 |
| maxRootHeight(int) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| size(Object[]) |   | 27% |   | 50% | 1 | 2 | 2 | 4 | 0 | 1 |
| sizeOfBranch(Object[]) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| lowerIndex(Object[], Comparator, Object) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| higherIndex(Object[], Comparator, Object) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| higher(Object[], Comparator, Object) |  | 0% |  | 0% | 2 | 2 | 2 | 2 | 1 | 1 |
| ceil(Object[], Comparator, Object) |  | 0% |  | 0% | 2 | 2 | 2 | 2 | 1 | 1 |
| depth(Object[]) |  | 0% |  | 0% | 2 | 2 | 5 | 5 | 1 | 1 |
| equals(Object[], Object[]) |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| exponentialSearchForMaybeInfinity(Comparator, Object[], int, int, Object) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| lower(Object[], Comparator, Object) |  | 0% |  | 0% | 2 | 2 | 2 | 2 | 1 | 1 |
| floorIndex(Object[], Comparator, Object) |  | 0% |  | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
| floor(Object[], Comparator, Object) |  | 0% |  | 0% | 2 | 2 | 2 | 2 | 1 | 1 |
| checkedDenseSize(int) |  | 0% |  | 0% | 2 | 2 | 2 | 2 | 1 | 1 |
| find(Object[], Comparator, Object) |   | 63% |   | 75% | 1 | 3 | 3 | 9 | 0 | 1 |
| buildPerfectDense(BulkIterator, int, UpdateFunction) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| treeIndexOffsetOfChild(Object[], int) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| toString(Object[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| appendBranchOrLeaf(StringBuilder, Object[]) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| isWellFormed(Object[], Comparator) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| build(BulkIterator, int, UpdateFunction) |   | 62% |   | 66% | 2 | 4 | 1 | 6 | 0 | 1 |
| transformAndFilter(Object[], Function) |   | 57% |   | 75% | 1 | 3 | 2 | 6 | 0 | 1 |
| slice(Object[], Comparator, Object, Object, BTree.Dir) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| shallowSize(Object[]) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| compareWithMaybeInfinity(Comparator, Object, Object) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| iterator(Object[], int, int, BTree.Dir) |   | 61% |   | 50% | 1 | 2 | 1 | 2 | 0 | 1 |
| toArray(Object[], Object[], int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| sizeMap(Object[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| sizeOnHeapOfLeaf(Object[]) |  | 0% |  | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
| getBranchKeyEnd(Object[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| shallowSizeOfBranch(Object[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| iterator(Object[], BTree.Dir) |   | 64% |   | 50% | 1 | 2 | 1 | 2 | 0 | 1 |
| slice(Object[], Comparator, BTree.Dir) |   | 64% |   | 50% | 1 | 2 | 1 | 2 | 0 | 1 |
| reverseInSitu(Object[]) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| iterable(Object[], int, int, BTree.Dir) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSizeMap(Object[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$iterable$1(Object[], int, int, BTree.Dir) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| accumulateLeaf(Object[], BiLongAccumulator, Object, Comparator, Object, long) |   | 90% |   | 70% | 3 | 6 | 1 | 13 | 0 | 1 |
| getChildEnd(Object[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getChildCount(Object[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lookupSizeMap(Object[], int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| childEndOffset(Object[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| appendLeaf(StringBuilder, Object[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| iterable(Object[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| iterable(Object[], BTree.Dir) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| treeIndexOfBranchKey(Object[], int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| minHeight(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| denseSize(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| searchResultToComparison(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$iterable$0(Object[], BTree.Dir) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getKeyEnd(Object[]) |   | 66% |   | 50% | 1 | 2 | 1 | 3 | 0 | 1 |
| BTree() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getChildStart(Object[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| childOffset(Object[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isStopSentinel(long) |  | 75% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| treeIndexOfLeafKey(int) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isLeaf(Object[]) |  | 90% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| updateLeaves(Object[], Object[], Comparator, UpdateFunction) |  | 100% |  | 100% | 0 | 27 | 0 | 67 | 0 | 1 |
| transformAndFilterLeaf(Object[], Function) |  | 100% |  | 100% | 0 | 13 | 0 | 27 | 0 | 1 |
| buildBalancedSizeMaps(int) |  | 100% |  | 100% | 0 | 3 | 0 | 11 | 0 | 1 |
| sizeOnHeapOfPerfectTree(int, int) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| exponentialSearch(Comparator, Object[], int, int, Object) |  | 100% |  | 100% | 0 | 4 | 0 | 13 | 0 | 1 |
| transformLeaf(Object[], Function) |  | 100% |  | 100% | 0 | 4 | 0 | 12 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 9 | 0 | 1 |
| sizeOnHeapOfPerfectTrees(int) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| applyLeaf(Object[], BiConsumer, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| fastBuilder() |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| getLeafKeyEnd(Object[]) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| sizeOfLeaf(Object[]) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| heightAtSize2n(int, int) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| ceilIndex(Object[], Comparator, Object) |  | 100% |   | 50% | 1 | 2 | 0 | 4 | 0 | 1 |
| find(Object[], Object, Comparator) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| build(Collection, UpdateFunction) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| accumulate(Object[], LongAccumulator, Comparator, Object, long) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| accumulate(Object[], BiLongAccumulator, Object, long) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| treeSize2n(int, int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| singleton(Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isEmpty(Object[]) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| accumulate(Object[], LongAccumulator, long) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| update(Object[], Object[], Comparator) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| builder(Comparator, int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| builder(Comparator) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| applyValue(Object, BiConsumer, Object) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| apply(Object[], Consumer) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| build(Collection) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| iterator(Object[]) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isSimple(UpdateFunction) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| empty() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |