     }
     
     public func severity(measurement: QTcMeasurement) -> Severity {
+        if isUndefined(qtcMeasurement: measurement) {
+            return .undefined
+        }
         let result = failingTest(measurement: measurement)
         if let result = result {
             return result.severity

                QTcTest(value: 300, units: .msec, valueComparison: .lessThan)],
                reference: "Corrado, Domenico, Antonio Pelliccia, Hans Halvor Bjørnstad, Luc Vanhees, Alessandro Biffi, Mats Borjesson, Nicole Panhuyzen-Goedkoop, et al. “Cardiovascular Pre-Participation Screening of Young Competitive Athletes for Prevention of Sudden Death: Proposal for a Common European ProtocolConsensus Statement of the Study Group of Sport Cardiology of the Working Group of Cardiac Rehabilitation and Exercise Physiology and the Working Group of Myocardial and Pericardial Diseases of the European Society of Cardiology.” European Heart Journal 26, no. 5 (March 1, 2005): 516–24. https://doi.org/10.1093/eurheartj/ehi108.",
                description: "QTc > 440 msec men\nQTc > 460 msec women\nQTc < 300 msec men and women",
                notes: "Includes both long and short QTc criteria.")

    ]
    

public struct QTcTestSuite {
    public let name: String
    let qtcTests: QTcTests
    public let requiresSex: Bool
    public let requiresAge: Bool
    public let reference: String
    public let description: String // the test described in prose
    let notes: String?  // optional notes about this test suite
    
    public init(name: String, qtcTests: QTcTests, reference: String, description: String, notes: String? = nil,
                requiresSex: Bool = false, requiresAge: Bool = false) {
        self.name = name
        self.qtcTests = qtcTests
        self.reference = reference
        self.description = description
        self.notes = notes
        self.requiresSex = requiresSex
        self.requiresAge = requiresAge
    }
    
    public func isUndefined(qtcMeasurement: QTcMeasurement) -> Bool {
        let missingSex = requiresSex && qtcMeasurement.sex == .unspecified
        let missingAge = requiresAge && qtcMeasurement.age == nil
        return missingAge || missingSex
    }
    
    // returns abnormal tests
