9949b309b1
The check asks whether anyone else was named before "он". Time words were not stoplisted, so "сегодня он не ел" read "сегодня" as the person being talked about and passed — which is the recorded break with a word in front of it, and nudges open with those words constantly. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CGeSZxh1DCtRxmFVSYVGvJ
27 lines
849 B
Go
27 lines
849 B
Go
package eval
|
|
|
|
import "testing"
|
|
|
|
func TestAddressTimeWordDoesNotBlind(t *testing.T) {
|
|
// A nudge that opens with a time word must still be caught. Without the
|
|
// time words in the stoplist, "сегодня" was read as the third party.
|
|
for _, s := range []string{
|
|
"сегодня он не ел 11 дней",
|
|
"вчера он не пил воду",
|
|
"опять он забыл про таблетки",
|
|
} {
|
|
if r := checkAddress(s); r.Pass {
|
|
t.Errorf("checkAddress(%q) passed, want a third-person failure", s)
|
|
}
|
|
}
|
|
// Still must not fire when a third party really is named.
|
|
for _, s := range []string{
|
|
"сегодня сервис упал, он не отвечает",
|
|
"ты не пил воду четыре часа",
|
|
} {
|
|
if r := checkAddress(s); !r.Pass {
|
|
t.Errorf("checkAddress(%q) failed: %s", s, r.Detail)
|
|
}
|
|
}
|
|
}
|