MCPcopy Create free account
hub / github.com/astercloud/aster / TestPreferenceManager_ConflictMerge

Function TestPreferenceManager_ConflictMerge

pkg/memory/preference_test.go:261–301  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

259}
260
261func TestPreferenceManager_ConflictMerge(t *testing.T) {
262 config := DefaultPreferenceManagerConfig()
263 config.ConflictStrategy = ConflictMerge
264 manager := NewPreferenceManager(config)
265
266 // 添加第一个偏好
267 pref1 := &Preference{
268 UserID: "user-1",
269 Category: CategoryUI,
270 Key: "theme",
271 Value: "dark",
272 Strength: 0.6,
273 Confidence: 0.8,
274 }
275 if err := manager.AddPreference(context.Background(), pref1); err != nil {
276 t.Fatalf("AddPreference failed: %v", err)
277 }
278
279 // 添加冲突的偏好
280 pref2 := &Preference{
281 UserID: "user-1",
282 Category: CategoryUI,
283 Key: "theme",
284 Value: "dark",
285 Strength: 0.8,
286 Confidence: 0.9,
287 }
288 if err := manager.AddPreference(context.Background(), pref2); err != nil {
289 t.Fatalf("AddPreference failed: %v", err)
290 }
291
292 // 验证强度被合并
293 result, _ := manager.GetPreference(context.Background(), "user-1", CategoryUI, "theme")
294 if result.Strength != 0.7 { // (0.6 + 0.8) / 2
295 t.Errorf("Strength = %.2f, want 0.70", result.Strength)
296 }
297
298 if result.AccessCount != 1 {
299 t.Errorf("AccessCount = %d, want 1", result.AccessCount)
300 }
301}
302
303func TestPreferenceManager_GetTopPreferences(t *testing.T) {
304 manager := NewPreferenceManager(DefaultPreferenceManagerConfig())

Callers

nothing calls this directly

Calls 4

AddPreferenceMethod · 0.95
GetPreferenceMethod · 0.95
NewPreferenceManagerFunction · 0.85

Tested by

no test coverage detected