模組:Language/scripts/testcases

可在模組:Language/scripts/testcases/doc建立此模組的說明文件

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