Skip to content

Commit 6706199

Browse files
committed
Add tests
1 parent 910a84b commit 6706199

1 file changed

Lines changed: 64 additions & 0 deletions

File tree

Tool/Tests/OpenAIServiceTests/AutoManagedChatGPTMemoryRetrievedContentTests.swift

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,70 @@ class AutoManagedChatGPTMemoryRetrievedContentTests: XCTestCase {
159159
D
160160
""")
161161
}
162+
163+
func test_retrieved_content_when_the_context_window_can_take_only_one_document() async {
164+
let strategy = Strategy()
165+
166+
let memory = AutoManagedChatGPTMemory(
167+
systemPrompt: "",
168+
configuration: UserPreferenceChatGPTConfiguration(),
169+
functionProvider: EmptyFunctionProvider()
170+
)
171+
172+
await memory.mutateRetrievedContent([
173+
ref("A"), ref("B"), ref("C"), ref("D"), ref("E"),
174+
])
175+
176+
let fullContent = """
177+
Here are the information you know about the system and the project, \
178+
separated by \(separator)
179+
180+
\(separator)[DOCUMENT 0]
181+
182+
A
183+
"""
184+
185+
let maxTokenCount = await strategy.countToken(.init(role: .user, content: fullContent))
186+
187+
let result = await memory.generateRetrievedContentMessage(
188+
maxTokenCount: maxTokenCount + 1,
189+
strategy: strategy
190+
)
191+
192+
XCTAssertEqual(result.references.count, 1)
193+
XCTAssertEqual(result.retrievedContent.role, .user)
194+
XCTAssertEqual(result.retrievedContent.content, """
195+
Here are the information you know about the system and the project, \
196+
separated by \(separator)
197+
198+
\(separator)[DOCUMENT 0]
199+
200+
A
201+
""")
202+
}
203+
204+
func test_retrieved_content_when_the_context_window_empty() async {
205+
let strategy = Strategy()
206+
207+
let memory = AutoManagedChatGPTMemory(
208+
systemPrompt: "",
209+
configuration: UserPreferenceChatGPTConfiguration(),
210+
functionProvider: EmptyFunctionProvider()
211+
)
212+
213+
await memory.mutateRetrievedContent([
214+
ref("A"), ref("B"), ref("C"), ref("D"), ref("E"),
215+
])
216+
217+
let result = await memory.generateRetrievedContentMessage(
218+
maxTokenCount: 0,
219+
strategy: strategy
220+
)
221+
222+
XCTAssertEqual(result.references.count, 0)
223+
XCTAssertEqual(result.retrievedContent.role, .user)
224+
XCTAssertEqual(result.retrievedContent.content, "")
225+
}
162226
}
163227

164228
private struct EmptyFunctionProvider: ChatGPTFunctionProvider {

0 commit comments

Comments
 (0)