| parseFrame(byte[]) |   | 81% |   | 54% | 42 | 56 | 3 | 70 | 0 | 1 |
| createCommand(CommandType, Object) |   | 86% |   | 64% | 18 | 35 | 3 | 37 | 0 | 1 |
| isDeviceReady(EUCData) |  | 0% |  | 0% | 4 | 4 | 1 | 1 | 1 | 1 |
| parseSmartBms(byte[]) |   | 93% |   | 71% | 13 | 25 | 0 | 29 | 0 | 1 |
| getBMSData() |   | 88% |   | 62% | 3 | 5 | 0 | 13 | 0 | 1 |
| modelByMajorVersion(int) |   | 45% |   | 40% | 6 | 10 | 6 | 11 | 0 | 1 |
| estimateBatteryPercent(int, int) |   | 79% |   | 75% | 1 | 4 | 1 | 6 | 0 | 1 |
| getServiceUUID() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| updateLastKnownVersionFromRawChunk(byte[]) |   | 91% |   | 61% | 7 | 10 | 0 | 9 | 0 | 1 |
| matchesQueryResponse(ProtocolQuerySpec, byte[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| unpacker$lambda$0(LeaperkimProtocol, byte) |  | 97% |   | 79% | 6 | 16 | 2 | 29 | 0 | 1 |
| decode(byte[]) |  | 89% |   | 50% | 2 | 3 | 0 | 5 | 0 | 1 |
| getCommandSupport(CommandType) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| frameParser$lambda$1(LeaperkimProtocol) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isCrcValid(byte[], int) |  | 90% |   | 50% | 2 | 3 | 0 | 6 | 0 | 1 |
| getScope$euc_ble_core() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSupportedCommandTypes() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDebugFramesObserved() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDebugFramesParsed() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDebugFramesSent() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDebugSendFailures() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getRawFrameFlow() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getCombinedCellVoltages() |  | 94% |   | 83% | 1 | 4 | 0 | 5 | 0 | 1 |
| LeaperkimProtocol(CoroutineScope) |  | 100% | | n/a | 0 | 1 | 0 | 33 | 0 | 1 |
| buildLockFrame$euc_ble_core(boolean, Calendar) |  | 100% |  | 100% | 0 | 2 | 0 | 12 | 0 | 1 |
| buildVendorFrame(byte[], int, byte[], byte) |  | 100% | | n/a | 0 | 1 | 0 | 12 | 0 | 1 |
| processFrame(byte[]) |  | 100% |   | 70% | 3 | 6 | 0 | 12 | 0 | 1 |
| matchesDeviceName(String) |  | 100% |   | 60% | 4 | 6 | 0 | 3 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| formatVersion(int) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| deriveRideTimeSeconds(long) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| close() |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| resetUnpacker() |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| LeaperkimProtocol(CoroutineScope, int, DefaultConstructorMarker) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| decodeDistanceKm(long) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| buildLockFrame(boolean) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDataCharacteristicUUID() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getWriteCharacteristicUUID() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| extractMajorVersion(int) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getManufacturer() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDataFlow() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getWriteFlow() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getCandidateDataCharacteristicUUIDs() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getPollingPlan() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |