Module:scripts/testcases
Appearance
- The following documentation is located at Module:scripts/testcases/documentation. [edit]
- Useful links: root page • root page’s subpages • links • transclusions • tested module • sandbox
All tests passed. (refresh)
| Text | Expected | Actual | |
|---|---|---|---|
| A | Latn | Latn | |
| 一 | Hani | Hani | |
| ώ | Grek | Grek | |
| ὦ | Polyt | Polyt | |
| Ж | Cyrl | Cyrl | |
| Ѹ | Cyrs | Cyrs | |
| ꙑ | Cyrs | Cyrs | |
| ა | Geor | Geor | |
| Ⴀ | Geok | Geok | |
| ⴀ | Geok | Geok | |
| ! | None | None | |
| 北 | None | None |
| Text | Expected | Actual | |
|---|---|---|---|
| word (English) | Latn | Latn | |
| العربية (Arabic) | Arab | Arab | |
| عرب (Persian) | fa-Arab | fa-Arab | |
| большо́й (Russian) | Cyrl | Cyrl | |
| ругала се шерпа лонцу широка му уста (Serbo-Croatian) | Cyrl | Cyrl | |
| Scripts with overlapping characters | |||
| Русь (Old East Slavic) | Cyrs | Cyrs | |
| Русь (Russian) | Cyrl | Cyrl | |
| λόγος (Ancient Greek) | Polyt | Polyt | |
| λόγος (Greek) | Grek | Grek | |
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