Pārlūkot izejas kodu

Use reduce instead of flatMap + zip for removal logic

Sam King 5 mēneši atpakaļ
vecāks
revīzija
813b74a829

+ 3 - 4
Trio/Sources/APS/OpenAPSSwift/Iob/IobHistory.swift

@@ -118,10 +118,9 @@ struct IobHistory {
         let pumpSuspendResumeFull = pumpHistory.filter { $0.type == .pumpSuspend || $0.type == .pumpResume }
         let pumpSuspendResumeFull = pumpHistory.filter { $0.type == .pumpSuspend || $0.type == .pumpResume }
 
 
         // drop all repeated suspend / resume events to match JS
         // drop all repeated suspend / resume events to match JS
-        var pumpSuspendResume = pumpSuspendResumeFull.first.flatMap({ [$0] }) ?? []
-        for (prev, curr) in zip(pumpSuspendResumeFull, pumpSuspendResumeFull.dropFirst()) {
-            if prev.type != curr.type {
-                pumpSuspendResume.append(curr)
+        let pumpSuspendResume = pumpSuspendResumeFull.reduce(into: [ComputedPumpHistoryEvent]()) { result, event in
+            if result.last?.type != event.type {
+                result.append(event)
             }
             }
         }
         }