Skip to content

Commit

Permalink
Fix incorrect matching of unknown glucose events
Browse files Browse the repository at this point in the history
Clean up test output a little to help in troubleshooting
  • Loading branch information
tmecklem committed Oct 20, 2016
1 parent 06f2917 commit cf0a853
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 12 deletions.
8 changes: 0 additions & 8 deletions MinimedKit/GlucoseEventType.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ public enum GlucoseEventType: UInt8 {
case sensorCalFactor = 0x0f
case tenSomething = 0x10
case nineteenSomething = 0x13
case unknownDataEvent
case glucoseSensorDataEvent

public var eventType: GlucoseEvent.Type {
switch self {
Expand Down Expand Up @@ -53,12 +51,6 @@ public enum GlucoseEventType: UInt8 {
return TenSomethingGlucoseEvent.self
case .nineteenSomething:
return NineteenSomethingGlucoseEvent.self
default:
if rawValue < 20 {
return UnknownGlucoseEvent.self
} else {
return GlucoseSensorDataGlucoseEvent.self
}
}
}
}
7 changes: 6 additions & 1 deletion MinimedKit/GlucosePage.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,17 @@ public class GlucosePage {

func matchEvent(_ offset: Int) -> GlucoseEvent {
let remainingData = pageData.subdata(in: offset..<pageData.count)
if let eventType = GlucoseEventType(rawValue:(pageData[offset] as UInt8)) {
let opcode = pageData[offset] as UInt8
if let eventType = GlucoseEventType(rawValue: opcode) {
if let event = eventType.eventType.init(availableData: remainingData, pumpModel: pumpModel) {
return event
}
}

if opcode >= 20 {
return GlucoseSensorDataGlucoseEvent(availableData: remainingData, pumpModel: pumpModel)!
}

return UnknownGlucoseEvent(availableData: remainingData, pumpModel: pumpModel)!
}

Expand Down
7 changes: 4 additions & 3 deletions MinimedKitTests/GlucosePageTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,10 @@ class GlucosePageTests: XCTestCase {

let expectedEventNames: [String] = ["CalBGForGH", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "SensorCalFactor", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "19-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "CalBGForGH", "SensorCalFactor", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "CalBGForGH", "SensorCalFactor", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "CalBGForGH", "CalBGForGH", "SensorCalFactor", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "CalBGForGH", "SensorCalFactor", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "CalBGForGH", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "SensorCalFactor", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "19-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "19-Something", "GlucoseSensorData", "19-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "CalBGForGH", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "SensorCalFactor", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "19-Something", "GlucoseSensorData", "GlucoseSensorData", "19-Something", "GlucoseSensorData", "GlucoseSensorData", "19-Something", "GlucoseSensorData", "GlucoseSensorData", "19-Something", "GlucoseSensorData", "19-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "CalBGForGH", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "SensorCalFactor", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "CalBGForGH", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "SensorCalFactor", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "DataEnd", "CalBGForGH", "10-Something", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "SensorCalFactor", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "CalBGForGH", "SensorCalFactor", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "GlucoseSensorData", "SensorTimestamp", "19-Something", "19-Something", "19-Something", "19-Something", "19-Something"]

let eventNames: [String] = events.map({ $0.dictionaryRepresentation["name"] as! String })

XCTAssertEqual(expectedEventNames, eventNames, "Decoded events should match decocare output")
for (index, values) in zip(expectedEventNames, events).enumerated() {
let eventName = values.1.dictionaryRepresentation["name"] as! String
XCTAssertEqual(values.0, eventName, "Decoded events don't match at index: \(index). Event: \(values.1.dictionaryRepresentation)")
}

} catch GlucosePage.GlucosePageError.invalidCRC {
XCTFail("page decoding threw invalid crc")
Expand Down

0 comments on commit cf0a853

Please sign in to comment.