| difference(MerkleTree, MerkleTree) |   | 89% |   | 80% | 2 | 6 | 1 | 17 | 0 | 1 |
| splitHelper(MerkleTree.Node, Token, Token, int, Token) |   | 91% |   | 75% | 3 | 7 | 1 | 14 | 0 | 1 |
| deserialize(DataInputPlus, boolean, int) |   | 89% | | n/a | 0 | 1 | 2 | 12 | 0 | 1 |
| findHelper(MerkleTree.Node, Range, Range) |   | 94% |   | 91% | 1 | 7 | 0 | 19 | 0 | 1 |
| moveOffHeap() |   | 91% |   | 50% | 1 | 2 | 0 | 6 | 0 | 1 |
| getHelper(MerkleTree.Node, Token, Token, Token) |   | 91% |   | 83% | 1 | 4 | 0 | 12 | 0 | 1 |
| unsafeInvalidateHelper(MerkleTree.Node, Token, Token) |   | 90% |   | 83% | 1 | 4 | 0 | 10 | 0 | 1 |
| xor(byte[], byte[]) |   | 90% |   | 75% | 1 | 3 | 0 | 5 | 0 | 1 |
| xorOntoLeft(byte[], byte[]) |   | 88% |   | 75% | 1 | 3 | 0 | 4 | 0 | 1 |
| MerkleTree(MerkleTree.Node, IPartitioner, Range, int, long, long) |   | 87% |   | 50% | 1 | 2 | 0 | 9 | 0 | 1 |
| equals(Object) |   | 93% |   | 50% | 7 | 8 | 1 | 5 | 0 | 1 |
| tryMoveOffHeap() |   | 78% |   | 50% | 2 | 3 | 1 | 3 | 0 | 1 |
| differenceHelper(MerkleTree, MerkleTree, List, MerkleTree.TreeRange) |  | 99% |   | 94% | 2 | 20 | 1 | 44 | 0 | 1 |
| getTempArray(int) |  | 80% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| estimatedMaxDepthForBytes(IPartitioner, long, int) |  | 100% | | n/a | 0 | 1 | 0 | 13 | 0 | 1 |
| initHelper(Token, Token, int, int) |  | 100% |   | 83% | 1 | 4 | 0 | 8 | 0 | 1 |
| serializedSize(int) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| serialize(DataOutputPlus, int) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| init() |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| ifHashesRange(Range, MerkleTree.Consumer) |  | 100% |  | 100% | 0 | 3 | 0 | 7 | 0 | 1 |
| split(Token) |  | 100% |  | 100% | 0 | 2 | 0 | 7 | 0 | 1 |
| shouldUseOffHeapTrees(IPartitioner, boolean) |  | 100% |   | 92% | 1 | 8 | 0 | 5 | 0 | 1 |
| histogramOfRowSizePerLeaf() |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| histogramOfRowCountPerLeaf() |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| rowCount() |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| allocate(int, IPartitioner) |  | 100% |   | 50% | 1 | 2 | 0 | 6 | 0 | 1 |
| toString() |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| fromPointer(int, ByteBuffer, IPartitioner) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| deserializeTree(DataInputPlus, IPartitioner, int, boolean, int) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| deserializeOffHeap(DataInputPlus, IPartitioner, int, int) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| get(Token) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| release() |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| MerkleTree(IPartitioner, Range, int, long) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| find(Range) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| offHeapBufferSize(int, IPartitioner) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| unsafeInvalidate(Token) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| rangeIterator() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| deserialize(DataInputPlus, int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| hash(Range) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| hashesRange(Range) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| fillInnerHashes() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| maxsize(long) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| partitioner() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| size() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| maxsize() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$static$0() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$hashesRange$1(MerkleTree.Node) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |