package langdetect import "testing" // TestDetect ist tischgesteuert: Eingabetext → erwartete Sprache. // Der Default "de" gilt für leeren, unentscheidbaren und gemischten // Text ohne englische Mehrheit. func TestDetect(t *testing.T) { cases := []struct { name string text string want string }{ {"leer", "", "de"}, {"nur whitespace", " \n\t ", "de"}, {"nur interpunktion", "!!! ??? ...", "de"}, {"deutsch satz", "Der Build wurde erfolgreich abgeschlossen und das Deployment ist fertig.", "de"}, {"deutsch frage mit was", "Was macht er?", "de"}, {"deutsch umlaute", "Größe früh Ärzteübung — schön daß es klappt", "de"}, {"ß alleine", "weiß", "de"}, {"englisch satz", "The build has finished and the deployment is done.", "en"}, {"englisch imperativ", "Please wait until the tests are green.", "en"}, {"englisch kurz", "done", "en"}, {"gemischt englisch dominiert", "the build is done and ready for you", "en"}, {"gemischt deutsch dominiert", "Der build ist done und fertig für dich", "de"}, {"gemischt gleichstand", "der the", "de"}, {"unklare sprache", "Build 2026-10-18 14:22 UTC", "de"}, {"agenten-typisch en", "Task completed. Please review the changes and approve.", "en"}, {"agenten-typisch de", "Aufgabe abgeschlossen. Bitte prüfen und freigeben.", "de"}, } for _, tc := range cases { t.Run(tc.name, func(t *testing.T) { if got := Detect(tc.text); got != tc.want { t.Errorf("Detect(%q) = %q, want %q", tc.text, got, tc.want) } }) } }