Archived
60 lines
2.5 KiB
EmacsLisp
60 lines
2.5 KiB
EmacsLisp
// lang-fi.el - Finnish NLG tests: assertion, question with -ko particle.
|
|
//
|
|
// Finnish is SOV, agglutinative, 15 grammatical cases. Questions use the
|
|
// "particle" strategy: statement order with -ko/-kö suffix on the verb.
|
|
// The realizer appends "-ko" for Finnish (see realize_question_lang).
|
|
//
|
|
// "kalaa" is the partitive form of kala (fish) — the engine produces the
|
|
// base form unless morphology-fi.el is loaded with suffix tables.
|
|
//
|
|
// Expected outputs (approximate):
|
|
// assert: "Kissa syö kalaa." (SOV order)
|
|
// question: "Kissa syö kalaa-ko?" (SOV + -ko particle on verb or sentence end)
|
|
|
|
fn test_assert() -> String {
|
|
// SOV: subject Kissa (cat), verb syö (eats), object kalaa (fish-PARTITIVE)
|
|
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, "kissa")
|
|
let form = native_list_append(form, "predicate")
|
|
let form = native_list_append(form, "syö")
|
|
let form = native_list_append(form, "patient")
|
|
let form = native_list_append(form, "kalaa")
|
|
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, "fi")
|
|
return realize(form)
|
|
}
|
|
|
|
fn test_question() -> String {
|
|
// Finnish question particle: statement order + -ko appended by realizer
|
|
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, "kissa")
|
|
let form = native_list_append(form, "predicate")
|
|
let form = native_list_append(form, "syö")
|
|
let form = native_list_append(form, "patient")
|
|
let form = native_list_append(form, "kalaa")
|
|
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, "fi")
|
|
return realize(form)
|
|
}
|
|
|
|
println(test_assert())
|
|
println(test_question())
|