Module:scripts/testcases

Wiktionary වෙතින්

1 of 15 tests failed. (refresh)

TextExpectedActual
testCharToScript:
PassedALatnLatn
PassedHaniHani
PassedώGrekGrek
PassedPolytPolyt
PassedЖCyrlCyrl
PassedѸCyrsCyrs
PassedCyrsCyrs
PassedGeorGeor
PassedGeokGeok
PassedGeokGeok
Passed!NoneNone
PassedNoneNone
TextExpectedActual
testFindbestScript:
Passedword (ඉංග්‍රීසි)LatnLatn
Passedالعربية (අරාබි)ArabArab
Passedعرب (පර්සියානු)fa-Arabfa-Arab
Script error during testing: Module:languages:690: attempt to index local 'sc' (a nil value)
stack traceback:
	[C]: ?
	Module:languages:690: in function 'findBestScript'
	Module:scripts/testcases:18: in function 'func'
	Module:UnitTests:295: in function 'iterate'
	Module:scripts/testcases:36: in function <Module:scripts/testcases:22>
	(tail call): ?
	[C]: in function 'xpcall'
	Module:UnitTests:369: in function <Module:UnitTests:328>
	(tail call): ?
	mw.lua:527: in function <mw.lua:507>
	[C]: ?
	[C]: in function 'expandTemplate'
	mw.lua:333: in function 'expandTemplate'
	Module:documentation:877: in function 'chunk'
	mw.lua:527: in function <mw.lua:507>
	[C]: ?

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
"https://si.wiktionary.org/w/index.php?title=Module:scripts/testcases&oldid=55371" වෙතින් සම්ප්‍රවේශනය කෙරිණි