| 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 |