Jump to content

Module:scripts/testcases

From Wiktionary, the free dictionary

All tests passed. (refresh)

TextExpectedActual
testCharToScript:
PassedALatnLatn
PassedHaniHani
PassedώGrekGrek
PassedPolytPolyt
PassedЖCyrlCyrl
PassedѸCyrsCyrs
PassedCyrsCyrs
PassedGeorGeor
PassedGeokGeok
PassedGeokGeok
Passed!NoneNone
PassedNoneNone
TextExpectedActual
testFindbestScript:
Passedword (English)LatnLatn
Passedالعربية (Arabic)ArabArab
Passedعرب (Persian)fa-Arabfa-Arab
Passedбольшо́й (Russian)CyrlCyrl
Passedругала се шерпа лонцу широка му уста (Serbo-Croatian)CyrlCyrl
Scripts with overlapping characters
PassedРусь (Old East Slavic)CyrsCyrs
PassedРусь (Russian)CyrlCyrl
Passedλόγος (Ancient Greek)PolytPolyt
Passedλόγος (Greek)GrekGrek
local tests = require("Module:UnitTests")  local m_scripts = require("Module:scripts") local m_script_utils = require("Module:script utilities") local getLangByCode = require("Module:languages").getByCode  local function tag(text, lang, scCode) return m_script_utils.tag_text(text, lang, m_scripts.getByCode(scCode)) end  local function tagScript(char, sc) return string.format('<span class="%s">%s</span>', sc, char) end  function tests:checkFindBestScript(example, langCode, expected) local lang = getLangByCode(langCode) self:equals(tag(example, lang, expected) .. " (" .. lang:getCanonicalName() .. ")", lang:findBestScript(example):getCode(), expected) end  function tests:testFindbestScript() local examples = { { "word", "en", "Latn" }, { "العربية", "ar", "Arab" }, { "عرب", "fa", "fa-Arab" }, { "большо́й", "ru", "Cyrl" }, { "ругала се шерпа лонцу широка му уста", "sh", "Cyrl" }, "Scripts with overlapping characters", { "Русь", "orv", "Cyrs" }, { "Русь", "ru", "Cyrl" }, { "λόγος", "grc", "Polyt" }, { "λόγος", "el", "Grek" }, }  tests:iterate(examples, "checkFindBestScript") end  function tests:testCharToScript() local U = mw.ustring.char local examples = { { "A", "Latn" }, { "一", "Hani" }, { "ώ", "Grek" }, { "ὦ", "Polyt" }, { "Ж", "Cyrl" }, { "Ѹ", "Cyrs" }, { "ꙑ", "Cyrs" }, { "ა", "Geor" }, { "Ⴀ", "Geok" }, { "ⴀ", "Geok" }, { "!", "None" }, { U(0x2F82B), "None" }, }  self:iterate( examples, function (self, char, expected) local sc = m_scripts.charToScript(char) self:equals( tagScript(char, sc), sc, expected ) end) end  return tests