Modul:scripts/testcases

Üdvözlöm, Ön a Modul:scripts/testcases szó jelentését keresi. A DICTIOUS-ban nem csak a Modul:scripts/testcases szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a Modul:scripts/testcases szót egyes és többes számban mondani. Minden, amit a Modul:scripts/testcases szóról tudni kell, itt található. A Modul:scripts/testcases szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. AModul:scripts/testcases és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.

1 teszt sikertelen. (frissítés)

Szöveg Várt Tényleges
testCharToScript:
Sikeres A Latn Latn
Sikeres Hani Hani
Sikeres ώ Grek Grek
Sikeres polytonic polytonic
Sikeres Ж Cyrl Cyrl
Sikeres Ѹ Cyrs Cyrs
Sikeres Cyrs Cyrs
Sikeres Geor Geor
Sikeres Geok Geok
Sikeres Geok Geok
Sikeres ! None None
Sikeres None None
Szöveg Várt Tényleges
testFindbestScript:
Sikeres word (angol) Latn Latn
Sikertelen العربية (arab) Arab fa-Arab
Sikeres عرب (perzsa) fa-Arab fa-Arab
Sikeres большо́й (orosz) Cyrl Cyrl
Sikeres ругала се шерпа лонцу широка му уста (szerbhorvát) Cyrl Cyrl
Scripts with overlapping characters
Sikeres Русь (óorosz) Cyrs Cyrs
Sikeres Русь (orosz) Cyrl Cyrl
Sikeres Велика Британија (szerbhorvát) Cyrl Cyrl
Sikeres velika Brìtānija (szerbhorvát) Latn Latn
Sikeres λόγος (ógörög) polytonic polytonic
Sikeres λόγος (görög) 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() .. ")",
		m_scripts.findBestScript(example, lang):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" },
		{ "Велика Британија", "sh", "Cyrl" },
		{ "velika Brìtānija", "sh", "Latn" },
		{ "λόγος", "grc", "polytonic" },
		{ "λόγος", "el", "Grek" },
	}
	
	tests:iterate(examples, "checkFindBestScript")
end

function tests:testCharToScript()
	local U = mw.ustring.char
	local examples = {
		{ "A", "Latn" },
		{ "一", "Hani" },
		{ "ώ", "Grek" },
		{ "ὦ", "polytonic" },
		{ "Ж", "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