| computeScanRangeAssignment(List) |   | 86% |   | 70% | 8 | 17 | 9 | 55 | 0 | 1 |
| init(BeSelectionPolicy) |   | 70% |   | 64% | 4 | 8 | 6 | 22 | 0 | 1 |
| redistributeSplit(Multimap, Backend, Backend) |   | 54% |   | 27% | 8 | 10 | 9 | 22 | 0 | 1 |
| selectNodes(int, Iterator) |  | 0% |  | 0% | 4 | 4 | 5 | 5 | 1 | 1 |
| getNextBe() |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| isSplitLocal(List, String) |  | 0% |  | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
| equateDistribution(ListMultimap) |   | 98% |   | 75% | 4 | 9 | 3 | 35 | 0 | 1 |
| lambda$computeScanRangeAssignment$1(Backend) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| selectExactNodes(Map, String[]) |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| chooseNodeForSplit(List) |  | 100% |   | 75% | 1 | 3 | 0 | 9 | 0 | 1 |
| FederationBackendPolicy(NodeSelectionStrategy) |  | 100% | | n/a | 0 | 1 | 0 | 9 | 0 | 1 |
| isSplitLocal(String[], String) |  | 100% |  | 100% | 0 | 3 | 0 | 4 | 0 | 1 |
| init(List) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| init() |  | 100% |   | 50% | 1 | 2 | 0 | 4 | 0 | 1 |
| lambda$computeScanRangeAssignment$0(Backend) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| FederationBackendPolicy() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setEnableSplitsRedistribution(boolean) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| numBackends() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBackends() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getAssignedWeightPerBackend() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |