[agent/codex:gpt-5.4-mini] Read ~/spec/code/core/go/i18n/RFC.md fully. Find ONE feature... #78

Merged
Virgil merged 1 commit from agent/read---spec-code-core-go-i18n-rfc-md-ful into dev 2026-04-02 01:58:21 +00:00
3 changed files with 50 additions and 7 deletions

View file

@ -132,9 +132,6 @@ func flattenWithGrammar(prefix string, data map[string]any, out map[string]Messa
if gerund, ok := v["gerund"].(string); ok {
forms.Gerund = gerund
}
if forms.Past == "" || forms.Gerund == "" {
continue
}
grammar.Verbs[core.Lower(verbName)] = forms
continue
}

View file

@ -208,11 +208,15 @@ func TestFlattenWithGrammar(t *testing.T) {
if _, ok := grammar.Verbs["publish_draft"]; ok {
t.Error("verb should be stored under explicit base, not JSON key")
}
if _, ok := grammar.Verbs["partial_past"]; ok {
t.Error("incomplete verb entry with only past should be skipped")
if v, ok := grammar.Verbs["partial_past"]; !ok {
t.Error("incomplete verb entry with only past should be extracted")
} else if v.Past != "partialed" || v.Gerund != "" {
t.Errorf("partial_past forms = %+v, want Past only", v)
}
if _, ok := grammar.Verbs["partial_gerund"]; ok {
t.Error("incomplete verb entry with only gerund should be skipped")
if v, ok := grammar.Verbs["partial_gerund"]; !ok {
t.Error("incomplete verb entry with only gerund should be extracted")
} else if v.Past != "" || v.Gerund != "partialing" {
t.Errorf("partial_gerund forms = %+v, want Gerund only", v)
}
if _, ok := messages["gram.verb.partial_past"]; ok {
t.Error("gram.verb.partial_past should not be flattened into messages")

View file

@ -348,6 +348,48 @@ func TestServiceSubjectCountPlurals(t *testing.T) {
}
}
func TestServiceLoadJSONPartialVerbForms(t *testing.T) {
svc, err := New()
if err != nil {
t.Fatalf("New() failed: %v", err)
}
const lang = "zz"
prevDefault := Default()
prevGrammar := GetGrammarData(lang)
SetDefault(svc)
t.Cleanup(func() {
SetDefault(prevDefault)
SetGrammarData(lang, prevGrammar)
})
svc.currentLang = lang
if err := svc.loadJSON(lang, []byte(`{
"gram": {
"verb": {
"render": { "past": "rendered" },
"stream": { "gerund": "streaming" }
}
}
}`)); err != nil {
t.Fatalf("loadJSON() failed: %v", err)
}
if v, ok := GetGrammarData(lang).Verbs["render"]; !ok || v.Past != "rendered" || v.Gerund != "" {
t.Fatalf("partial past verb not loaded correctly: %+v", v)
}
if v, ok := GetGrammarData(lang).Verbs["stream"]; !ok || v.Past != "" || v.Gerund != "streaming" {
t.Fatalf("partial gerund verb not loaded correctly: %+v", v)
}
if got := PastTense("render"); got != "rendered" {
t.Fatalf("PastTense(render) = %q, want %q", got, "rendered")
}
if got := Gerund("stream"); got != "streaming" {
t.Fatalf("Gerund(stream) = %q, want %q", got, "streaming")
}
}
func TestServiceTemplatesSupportGrammarFuncs(t *testing.T) {
svc, err := New()
if err != nil {