Files
Loki/internal/loki/llm_repeat_test.go
Loki de6551a153 Rebaptise AJEAN en Loki (fork, lignée conservée)
- module github.com/R0m1k3/Loki, cmd/loki, internal/loki (package loki)
- LOKI_HOME, LOKI_MODEL_DIRS, LOKI_SERVICE, LOKI_DL_CONNS ; /etc/loki ;
  units loki-engine / loki-ui ; binaire et aide CLI
- updateRepo pointe sur R0m1k3/Loki (l'auto-update ne tirera plus les
  binaires AJEAN amont)

Conservé à l'identique : le domaine ajean.link (service de tunnel amont),
les littéraux de migration 0.7.x (migrate_07.go), RELEASE_NOTES.md et
LICENSE (historique et licence de l'amont).

go build/vet/test : verts.
2026-08-14 21:33:15 +00:00

32 lines
995 B
Go

package loki
import (
"strings"
"testing"
)
// Un appel d'outil redemandé à l'identique ne doit rendre son contenu qu'UNE
// fois, et l'avertissement doit être en TÊTE (collé après un résultat de
// plusieurs milliers de caractères, il passait inaperçu et le modèle rebouclait).
func TestRepeatedCallResultEscalates(t *testing.T) {
page := strings.Repeat("contenu de la page ", 300)
first := repeatedCallResult(page, 1)
if !strings.HasPrefix(first, "[déjà fait]") {
t.Fatalf("1re redemande : l'avertissement doit ouvrir le résultat, obtenu %.40q", first)
}
if !strings.Contains(first, page) {
t.Fatal("1re redemande : le contenu doit encore être rendu")
}
for _, n := range []int{2, 3, 7} {
again := repeatedCallResult(page, n)
if strings.Contains(again, page) {
t.Fatalf("redemande n°%d : le contenu ne doit plus être renvoyé", n)
}
if !strings.HasPrefix(again, "[déjà fait]") {
t.Fatalf("redemande n°%d : avertissement manquant", n)
}
}
}