Sfoglia il codice sorgente

Tighten up profileTarget early exit logic to match JS exactly

Sam King 9 mesi fa
parent
commit
5a6cc41e78

+ 2 - 2
Trio/Sources/APS/OpenAPSSwift/DetermineBasal/DeterminationError.swift

@@ -4,7 +4,7 @@ enum DeterminationError: LocalizedError, Equatable {
     case missingGlucoseStatus
     case missingProfile
     case missingCurrentBasal
-    case missingMinBg
+    case invalidProfileTarget
     case staleGlucoseData(ageMinutes: Double)
     case glucoseOutOfRange(glucose: Decimal)
     case cgmNoiseTooHigh(noise: Int)
@@ -23,7 +23,7 @@ enum DeterminationError: LocalizedError, Equatable {
         case .missingCurrentBasal:
             // string copied from JS
             return String(localized: "Error: could not get current basal rate")
-        case .missingMinBg:
+        case .invalidProfileTarget:
             // string copied from JS including trailing space
             return String(localized: "Error: could not determine target_bg. ")
         case let .staleGlucoseData(ageMinutes):

+ 4 - 2
Trio/Sources/APS/OpenAPSSwift/DetermineBasal/DetermineBasalGenerator.swift

@@ -62,6 +62,7 @@ enum DeterminationGenerator {
             currentTemp: currentTemp,
             iobData: iobData,
             profile: profile,
+            trioCustomOrefVariables: trioCustomOrefVariables,
             currentTime: currentTime,
         )
 
@@ -347,6 +348,7 @@ enum DeterminationGenerator {
         currentTemp _: TempBasal?,
         iobData: [IobResult]?,
         profile: Profile?,
+        trioCustomOrefVariables: TrioCustomOrefVariables,
         currentTime: Date = Date()
     ) throws {
         guard let glucoseStatus = glucoseStatus else {
@@ -355,8 +357,8 @@ enum DeterminationGenerator {
         guard let profile = profile else {
             throw DeterminationError.missingProfile
         }
-        guard profile.minBg != nil else {
-            throw DeterminationError.missingMinBg
+        guard profile.profileTarget(trioCustomOrefVariables: trioCustomOrefVariables) != nil else {
+            throw DeterminationError.invalidProfileTarget
         }
         let glucoseAge = currentTime.timeIntervalSince(glucoseStatus.date)
         if glucoseAge > 15 * 60 {

+ 1 - 1
TrioTests/OpenAPSSwiftTests/DetermineBasalEarlyExitTests.swift

@@ -318,7 +318,7 @@ import Testing
         ) = createDefaultInputs()
         profile.minBg = nil
 
-        #expect(throws: DeterminationError.missingMinBg) { // Using a placeholder error
+        #expect(throws: DeterminationError.invalidProfileTarget) {
             _ = try DeterminationGenerator.determineBasal(
                 profile: profile,
                 preferences: preferences,