 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) {
+    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

                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 func severity(measurement: QTcMeasurement) -> Severity {
        if isUndefined(qtcMeasurement: measurement) {
            return .undefined
        }
        let result = failingTest(measurement: measurement)
        if let result = result {
            return result.severity
