Module:Language/scripts/testcases

local p = require('Module:UnitTests')

local scripts = require("Module:Language/scripts") local countScripts = scripts.countScripts local getScript = scripts.getScript local sortedPairs = require("Module:TableTools").sortedPairs

local mapIter = require("Module:fun").mapIter

local function showScripts(text) local scripts = countScripts(text) return table.concat(		mapIter(function(v, k) return k .. " (" .. v .. ")" end, sortedPairs(countScripts(text))),		", ") end

function p:checkCountScripts(example, expected) self:equals(example, showScripts(example), expected) end

function p:checkGetScript(example, expected) self:equals(example, getScript(example), expected) end

p["testcases for countScripts"] = function (self) local examples = { {			"Ста́нция Восто́к", "Cyrl (13), Zinh (2), Zyyy (7)" },		{ "Σωκράτης", "Grek (8)" }, { "中华人民共和国", "Hani (7)" }, { "অবনী বাড়ি আছো Ôboni Baŗi Achho", "Beng (12), Latn (14), Zyyy (9)" }, -- from previous revision of Abani Bari Achho }	self:iterate(examples, "checkCountScripts") end

p["testcases for getScript"] = function (self) local examples = { { "Ста́нция Восто́к", "Cyrl" }, { mw.ustring.toNFD "Ἑλλήσποντος", "Grek" }, -- decompose to get version with combining diacritics }	self:iterate(examples, "checkGetScript") end

return p