// lang-zh.el - Mandarin Chinese NLG tests: assertion, question with 吗.
//
// Mandarin is SVO, isolating (no morphological inflection).  The verb surface
// form is always the base form — morph_conjugate returns base for isolating
// languages.  Questions use the intonation strategy with "?" punctuation.
//
// Expected outputs (approximate):
//   assert:   "猫 吃 鱼."    (SVO, no inflection on verb 吃)
//   question: "猫 吃 鱼?"   (intonation question — same order, ? instead of .)

fn test_assert() -> String {
    // Subject: 猫 (cat), verb: 吃 (eat), object: 鱼 (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, "猫")
    let form = native_list_append(form, "predicate")
    let form = native_list_append(form, "吃")
    let form = native_list_append(form, "patient")
    let form = native_list_append(form, "鱼")
    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, "zh")
    return realize(form)
}

fn test_question() -> String {
    // Intonation question: same SVO order, ? punctuation
    // Note: 吗 (ma) is not appended by the engine in this version —
    // the intonation strategy simply adds "?" without a particle.
    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, "猫")
    let form = native_list_append(form, "predicate")
    let form = native_list_append(form, "吃")
    let form = native_list_append(form, "patient")
    let form = native_list_append(form, "鱼")
    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, "zh")
    return realize(form)
}

println(test_assert())
println(test_question())
