38 lines
1.5 KiB
Swift
38 lines
1.5 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import 康康
|
|
|
|
struct HealthExportDialogueTests {
|
|
@Test func dialogueTranscriptKeepsTurnOrderAndRoles() throws {
|
|
let turns: [HealthExportDialogueTurn] = [
|
|
.user("我最近头晕,帮我看看"),
|
|
.assistant("我会结合你的指标和日记整理。"),
|
|
.user("重点看血压")
|
|
]
|
|
|
|
let transcript = HealthExportDialogueTurn.transcript(from: turns)
|
|
|
|
// 用户角色标签是「我」(产品红线:不出现「患者」,见 ca5a3fa)。
|
|
#expect(transcript.contains("我: 我最近头晕,帮我看看"))
|
|
#expect(transcript.contains("康康: 我会结合你的指标和日记整理。"))
|
|
#expect(transcript.contains("我: 重点看血压"))
|
|
let first = try #require(transcript.range(of: "我: 我最近头晕"))
|
|
let second = try #require(transcript.range(of: "我: 重点看血压"))
|
|
#expect(first.lowerBound < second.lowerBound)
|
|
}
|
|
|
|
@Test func dialogueTranscriptDropsEmptyTurns() {
|
|
let turns: [HealthExportDialogueTurn] = [
|
|
.user(" "),
|
|
.assistant("请补充想看的问题"),
|
|
.user("\n最近三个月\n")
|
|
]
|
|
|
|
let transcript = HealthExportDialogueTurn.transcript(from: turns)
|
|
|
|
#expect(!transcript.contains("我: "))
|
|
#expect(transcript.contains("康康: 请补充想看的问题"))
|
|
#expect(transcript.contains("我: 最近三个月"))
|
|
}
|
|
}
|