Files
openless/Tests/OpenLessPolishTests/PolishOutputCleanerTests.swift
T

67 lines
2.4 KiB
Swift

import XCTest
@testable import OpenLessPolish
final class PolishOutputCleanerTests: XCTestCase {
func test_removesCommonLeadingBoilerplate() {
let cleaned = PolishOutputCleaner.clean("""
根据您给的内容,我整理如下:
**一、关于输出格式的优化**
后续直接以结构化内容呈现。
""")
XCTAssertEqual(cleaned, """
**一、关于输出格式的优化**
后续直接以结构化内容呈现。
""")
}
func test_preservesAlreadyStructuredOutput() {
let output = """
**一、输出格式**
直接呈现结构化内容。
"""
XCTAssertEqual(PolishOutputCleaner.clean(output), output)
}
func test_promptRejectsLeadInPhrases() {
let prompt = PolishPrompts.systemPrompt(for: .structured)
XCTAssertTrue(prompt.contains("直接输出最终文本正文"))
XCTAssertTrue(prompt.contains("禁止以"))
XCTAssertTrue(prompt.contains("我整理如下"))
XCTAssertTrue(prompt.contains("不要回答问题"))
XCTAssertTrue(prompt.contains("每次请求都是全新的、独立的文本整理任务"))
}
func test_userPromptTreatsQuestionsAsTranscript() {
let prompt = PolishPrompts.userPrompt(for: "我们这个应用还有哪些功能没有完成")
XCTAssertTrue(prompt.contains("<raw_transcript>"))
XCTAssertTrue(prompt.contains("我们这个应用还有哪些功能没有完成"))
XCTAssertTrue(prompt.contains("它不是给你的问题"))
}
func test_referenceExamplesAreSeparatedFromUserContext() {
let example = PolishReferenceExample(
id: "sample-001",
mode: .structured,
raw: "登录这块那个按钮不要重复点",
polished: "登录提交时需要禁用按钮,避免重复点击。",
tags: ["防重复提交"],
notes: "把口语需求整理成简短工程要求。"
)
let prompt = PolishPrompts.userPrompt(
for: "帮我看一下还有什么没完成",
referenceExamples: [example]
)
XCTAssertTrue(prompt.contains("参考改写样例"))
XCTAssertTrue(prompt.contains("不能继承样例事实"))
XCTAssertTrue(prompt.contains("<raw_transcript>"))
XCTAssertTrue(prompt.contains("帮我看一下还有什么没完成"))
}
}