// lang-sw.el - Swahili NLG tests: SVO assertion with verb agreement prefix. // // Swahili is SVO, agglutinative, noun-class system. Subject agreement is // marked as a prefix on the verb: paka (cat, class M-WA) takes "a-" prefix. // "anakula" = a (3sg M-WA agreement) + na (present tense) + kula (eat). // // Questions use the intonation strategy — same SVO order with "?" punctuation. // // The verb surface form "anakula" is supplied as a pre-inflected form because // Swahili noun-class agreement is not yet in the morphology engine; when // morphology-sw.el loads full tables it will conjugate from "kula" + agreement. // // Expected outputs (approximate): // assert: "Paka anakula samaki." (SVO with verb agreement prefix) // question: "Paka anakula samaki?" (intonation — same order, ?) fn test_assert() -> String { // SVO: subject=Paka (cat), verb=anakula (he/she-PRES-eat), object=samaki (fish) let form: [String] = native_list_empty() let form = native_list_append(form, "intent") let form = native_list_append(form, "assert") let form = native_list_append(form, "agent") let form = native_list_append(form, "paka") let form = native_list_append(form, "predicate") let form = native_list_append(form, "anakula") let form = native_list_append(form, "patient") let form = native_list_append(form, "samaki") let form = native_list_append(form, "location") let form = native_list_append(form, "") let form = native_list_append(form, "tense") let form = native_list_append(form, "present") let form = native_list_append(form, "aspect") let form = native_list_append(form, "simple") let form = native_list_append(form, "lang") let form = native_list_append(form, "sw") return realize(form) } fn test_question() -> String { // Intonation question: SVO order unchanged, ? punctuation let form: [String] = native_list_empty() let form = native_list_append(form, "intent") let form = native_list_append(form, "question") let form = native_list_append(form, "agent") let form = native_list_append(form, "paka") let form = native_list_append(form, "predicate") let form = native_list_append(form, "anakula") let form = native_list_append(form, "patient") let form = native_list_append(form, "samaki") let form = native_list_append(form, "location") let form = native_list_append(form, "") let form = native_list_append(form, "tense") let form = native_list_append(form, "present") let form = native_list_append(form, "aspect") let form = native_list_append(form, "simple") let form = native_list_append(form, "lang") let form = native_list_append(form, "sw") return realize(form) } println(test_assert()) println(test_question())