Files
kangkang/康康Tests/TrendInsightCacheTests.swift
2026-06-10 07:12:48 +08:00

44 lines
1.7 KiB
Swift

import Testing
import SwiftUI
@testable import
@MainActor
struct TrendInsightCacheTests {
private func bucket(values: [Double]) -> SeriesBucket {
let points = values.enumerated().map { i, v in
SeriesBucket.Point(id: "p\(i)",
date: Date(timeIntervalSince1970: Double(i) * 86_400),
value: v, status: .normal)
}
let line = SeriesBucket.SeriesLine(id: "glucose.fasting", seriesKey: "glucose.fasting",
label: nil, color: .blue, points: points,
referenceRange: 3.9...6.1)
return SeriesBucket(id: "glucose.fasting", title: "空腹血糖", unit: "mmol/L",
lines: [line], latestDate: .now, kind: .monitor)
}
@Test func fingerprintStableForSameData() {
let a = TrendInsightService.fingerprint(for: bucket(values: [5.2, 5.5]))
let b = TrendInsightService.fingerprint(for: bucket(values: [5.2, 5.5]))
#expect(a == b)
}
@Test func fingerprintChangesWhenDataChanges() {
let a = TrendInsightService.fingerprint(for: bucket(values: [5.2, 5.5]))
let b = TrendInsightService.fingerprint(for: bucket(values: [5.2, 5.5, 6.0]))
#expect(a != b)
}
@Test func dataLinesFormatsDateAndValue() {
let lines = TrendInsightService.dataLines(for: bucket(values: [5.2, 5.5]))
#expect(lines.contains("1970-01-01 5.2"))
#expect(lines.contains("1970-01-02 5.5"))
}
@Test func rangeTextRendersReference() {
#expect(TrendInsightService.rangeText(for: bucket(values: [5.2]))
== ",参考 3.9-6.1")
}
}