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

Function TestPreferenceManager_GetStats

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

Source from the content-addressed store, hash-verified

416}
417
418func TestPreferenceManager_GetStats(t *testing.T) {
419 manager := NewPreferenceManager(DefaultPreferenceManagerConfig())
420
421 // 添加多个偏好
422 prefs := []*Preference{
423 {UserID: "user-1", Category: CategoryUI, Key: "theme", Value: "dark", Strength: 0.9, Confidence: 0.9},
424 {UserID: "user-1", Category: CategoryUI, Key: "font", Value: "mono", Strength: 0.5, Confidence: 0.8},
425 {UserID: "user-1", Category: CategoryLanguage, Key: "lang", Value: "zh", Strength: 0.3, Confidence: 1.0},
426 }
427
428 for _, pref := range prefs {
429 if err := manager.AddPreference(context.Background(), pref); err != nil {
430 t.Fatalf("AddPreference failed: %v", err)
431 }
432 }
433
434 stats := manager.GetStats("user-1")
435
436 if stats.TotalPreferences != 3 {
437 t.Errorf("TotalPreferences = %d, want 3", stats.TotalPreferences)
438 }
439
440 if stats.CategoryDistribution[CategoryUI] != 2 {
441 t.Errorf("UI preferences = %d, want 2", stats.CategoryDistribution[CategoryUI])
442 }
443
444 if stats.HighStrengthCount != 1 {
445 t.Errorf("HighStrengthCount = %d, want 1", stats.HighStrengthCount)
446 }
447
448 if stats.MediumStrengthCount != 1 {
449 t.Errorf("MediumStrengthCount = %d, want 1", stats.MediumStrengthCount)
450 }
451
452 if stats.LowStrengthCount != 1 {
453 t.Errorf("LowStrengthCount = %d, want 1", stats.LowStrengthCount)
454 }
455
456 expectedAverage := (0.9 + 0.5 + 0.3) / 3
457 if stats.AverageStrength < expectedAverage-0.01 || stats.AverageStrength > expectedAverage+0.01 {
458 t.Errorf("AverageStrength = %.2f, want ~%.2f", stats.AverageStrength, expectedAverage)
459 }
460}
461
462func TestPreferenceExtractor_ExtractFromMessage(t *testing.T) {
463 manager := NewPreferenceManager(DefaultPreferenceManagerConfig())

Callers

nothing calls this directly

Calls 4

AddPreferenceMethod · 0.95
GetStatsMethod · 0.95
NewPreferenceManagerFunction · 0.85

Tested by

no test coverage detected