Module:kk-Cyrl-Arab-translit/testcases

-- Unit tests for Module:kk-Cyrl-Arab-translit. Refresh page to run tests. local tests = require('Module:UnitTests') local m_translit = require('Module:kk-Cyrl-Arab-translit')

local full_link = require('Module:links').full_link local tagged = require('Module:script utilities').tag_text local kk = require('Module:languages').getByCode('kk')

local rlm = require("Module:string/char")(0x200F) -- right-to-left mark --[=[ characters that are difficult for me to type as I dont have a kk-Arab keyboard. Needed as I prefer to manually type examples, rather than copy and paste, to avoid incorrect characters ]=] local e = require("Module:string/char")(0x06D5) local u = require("Module:string/char")(0x06C7) local ng = require("Module:string/char")(0x06AD) local hamza_a = require("Module:string/char")(0x0675) local hamza_u = require("Module:string/char")(0x0677) local hamza_i = require("Module:string/char")(0x0678) local hamza_o = require("Module:string/char")(0x0676) local hamza = require("Module:string/char")(0x0674)

local function link(word) return full_link{ term = word, lang = kk, tr = "-" } end

local function nolink(word) return tagged(word, kk) end

local options = {show_difference = true }

--TO DO function tests:do_test_translit(cyrl, arab) self:equals(link(cyrl), link(m_translit.tr(cyrl, 'kk', 'Cyrl')), link(arab)) end

function tests:do_test_nolink(cyrl, arab) self:equals(nolink(cyrl), nolink(m_translit.tr(cyrl, 'kk', 'Cyrl')), nolink(arab)) end

function tests:test_translit_kk_cyrl_arab local nolink = { { "Барлық адамдар тумысынан азат және қадір-қасиеті мен құқықтары тең болып дүниеге келеді. Адамдарға ақыл-парасат, ар-ождан берілген, сондықтан олар бір-бірімен туыстық, бауырмалдық қарым-қатынас жасаулары тиіс." , "بارلىق ادامدار تۋمىسىنان ازات جانە ٴقادىر-قاسيەتى مەن قۇقىقتارى تەڭ بولىپ دۇنيەگە كەلەدى. ادامدارعا اقىل-پاراسات، ار-وجدان بەرىلگەن، سوندىقتان ولار ٴبىر-بىرىمەن تۋىستىق، باۋىرمالدىق قارىم-قاتىناس جاساۋلارى ٴتيىس." },	}	local examples = { { "адамдар", "ادامدار" }, { "-са", "ـسا" }, --should this use kashida or a normal dash { "-се", "ـس" .. e }, { "Алтай", "التاي" }, { "Алматы", "الماتى" }, { "Қазақстан", "قازاقستان" }, { "қазақша", "قازاقشا" }, { "таңғажайып", "تا" .. ng .. "عاجايىپ" }, { "Әзірбайжан", hamza_a .. "زىربايجان" }, { "Үрімжі", hamza_u .. "رىمجى" }, { "Ыстамбұл", "ىستامب" .. u .. "ل" }, { "түйіс", hamza .. "ت" .. u .. "يىس" }, { "түйір", hamza .. "ت" .. u .. "يىر"}, -- gaaf, kaaf and 'e' should cancel hamza { "Әзербайжан", "از" .. e .. "ربايجان" }, { "түйістер", "ت" .. u .. "يىست" .. e .. "ر" }, { "түйірлер", "ت" .. u .. "يىرل" .. e.. "ر"}, { "Гүржістан", "گ" .. u .. "رجىستان"}, { "Айбек", "ايب" .. e .. "ك" }, }	self:iterate(nolink, "do_test_nolink") self:iterate(examples, "do_test_translit") end

return tests