| fromResultRow(ResultRow) |   | 89% |   | 71% | 4 | 8 | 6 | 40 | 0 | 1 |
| deserializeFromJson(String) |   | 89% |   | 75% | 1 | 3 | 4 | 22 | 0 | 1 |
| toString() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| fromHotValues(ColumnStatistic) |   | 98% |   | 83% | 2 | 7 | 0 | 13 | 0 | 1 |
| serializeToJson(Histogram) |   | 94% |   | 50% | 1 | 2 | 1 | 9 | 0 | 1 |
| getBucketsJson(List) |   | 90% |   | 50% | 1 | 2 | 1 | 5 | 0 | 1 |
| rebuild(List, Map, List) |  | 100% |   | 91% | 1 | 7 | 0 | 10 | 0 | 1 |
| getValueSelectivity(Literal) |  | 100% |   | 90% | 1 | 6 | 0 | 12 | 0 | 1 |
| removeValue(List, double) |  | 100% |   | 90% | 1 | 6 | 0 | 10 | 0 | 1 |
| intersectBuckets(List, double, double, DataType) |  | 100% |  | 100% | 0 | 3 | 0 | 10 | 0 | 1 |
| getRangeSelectivity(double, double, boolean) |  | 100% |   | 75% | 1 | 3 | 0 | 10 | 0 | 1 |
| removeValues(Collection) |  | 100% |  | 100% | 0 | 3 | 0 | 11 | 0 | 1 |
| retainValues(Collection) |  | 100% |  | 100% | 0 | 4 | 0 | 8 | 0 | 1 |
| mcvInRange(double, double) |  | 100% |  | 100% | 0 | 4 | 0 | 7 | 0 | 1 |
| intersectRange(double, double, boolean) |  | 100% |  | 100% | 0 | 2 | 0 | 6 | 0 | 1 |
| hasCollapsedBuckets() |  | 100% |  | 100% | 0 | 4 | 0 | 5 | 0 | 1 |
| copyBuckets(List) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| Histogram(Type, double, int, List, Map, List) |  | 100% |  | 100% | 0 | 3 | 0 | 8 | 0 | 1 |
| getValuesSelectivity(Collection) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| getDataType() |  | 100% |   | 75% | 1 | 3 | 0 | 1 | 0 | 1 |
| getNdv() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| nextValueAbove(double, DataType) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| nextValueBelow(double, DataType) |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| Histogram(Type, double, int, List) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getOtherValueBuckets() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| hasMcv() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| getHotRatio() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$rebuild$6(double, Literal, Float) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| sumCount(List) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$rebuild$5(Float) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getHotRatio$3(Float) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getRangeSelectivity$1(Float) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$fromHotValues$0(Float) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$sumCount$4(Bucket) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getNdv$2(Bucket) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |