| parseFrame(byte[]) |   | 87% |   | 63% | 32 | 45 | 0 | 64 | 0 | 1 |
| createCommand(CommandType, Object) |   | 80% |   | 61% | 10 | 19 | 3 | 16 | 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 |
| processFrame(byte[]) |   | 83% |   | 50% | 2 | 3 | 1 | 9 | 0 | 1 |
| getServiceUUID() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDataCharacteristicUUID() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getWriteCharacteristicUUID() |  | 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$2(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$3(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 |
| getRawFrameFlow() | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getCombinedCellVoltages() |  | 94% |   | 83% | 1 | 4 | 0 | 5 | 0 | 1 |
| looksLikeMyFrames(byte[]) |  | 94% |   | 62% | 3 | 5 | 0 | 4 | 0 | 1 |
| LeaperkimProtocol(CoroutineScope) |  | 100% | | n/a | 0 | 1 | 0 | 29 | 0 | 1 |
| canHandle(EUCDevice) |  | 100% |   | 85% | 2 | 8 | 0 | 9 | 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 |
| extractMajorVersion(int) | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getManufacturer() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getSupportedModels() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDebugFramesObserved() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDebugFramesParsed() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDebugFramesSent() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDebugSendFailures() | | 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 |
| getPollingPlan() | | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |