Module:scripts/testcases

Hello, you have come here looking for the meaning of the word Module:scripts/testcases. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:scripts/testcases, but we will also tell you about its etymology, its characteristics and you will know how to say Module:scripts/testcases in singular and plural. Everything you need to know about the word Module:scripts/testcases you have here. The definition of the word Module:scripts/testcases will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:scripts/testcases, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.

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