From Wikipedia, the free encyclopedia

-- Unit tests for [[Module:Language]]. Click talk page to run tests.

local p = require('Module:UnitTests')

local m_Language = require('Module:Language')

local name_from_tag = require('Module:Lang/sandbox')._name_from_tag



function p:test_1_link()

	self:preprocess_equals_preprocess_many('{{#invoke:Language/sandbox|wiktlang|', '}}', '{{#invoke:Language|wiktlang|', '}}',

		{

			{"grc|δημοκρᾰτῐ́ᾱ"},

			{"ha|àzàhàr̃iyyā̀"},

			{"la|coëō"},

			{"nci|Quetzalcōātl"},

			{"ru|ру́сский язы́к"},

			{"he|שלום"},

			{"sh|ćá|ća" },														-- fake word with c-acute and tonal acute; add a real word if you know one

		}, {nowiki=1})

end





local function test_patterns_get(main)

	local data = require('Module:Language/data/sandbox')

	local language_codes = {}



	if main then

		for code, values in pairs(data"languages"]) do

			table.insert(language_codes, {code, values.name})

		end



	else

		for code, redirect_code in pairs(data"redirects"]) do

			local redirect_name

			if data"languages"][redirect_code and data"languages"][redirect_code].name then

				redirect_name = data"languages"][redirect_code].name

			else

				redirect_name = name_from_tag({code})

				if not redirect_name or redirect_name:find("error") then

					redirect_name = mw.language.fetchLanguageName(redirect_code, 'en')

				end

			end

			table.insert(language_codes, {code, redirect_name, redirect_code, redirect_name})

		end

	end



	local function comp(a, b)

		return a1 < b1

	end



	table.sort(language_codes, comp)

	return language_codes

end





function p:test_2_link()

	local wiktionary_test_patterns = test_patterns_get(true)

	local name_from_tag = require('Module:Lang')._name_from_tag

	local full_test_patterns = {}



	for i = 1, #wiktionary_test_patterns do

		local code = wiktionary_test_patternsi][1

		table.insert(full_test_patterns, {code .. "|test", code .. "|test"})

	end

	

	self:preprocess_equals_preprocess_many('{{#invoke:Language/sandbox|wiktlang|', '}}', '{{#invoke:Language|wiktlang|no_cat=yes|', '}}', full_test_patterns, {nowiki=1})

end





function p:test_3_link_redirects()

	local wiktionary_test_patterns = test_patterns_get(false)

	local name_from_tag = require('Module:Lang')._name_from_tag

	local full_test_patterns = {}



	for i = 1, #wiktionary_test_patterns do

		local code = wiktionary_test_patternsi][1

		table.insert(full_test_patterns, {code .. "|test", code .. "|test"})

	end

	

	self:preprocess_equals_preprocess_many('{{#invoke:Language/sandbox|wiktlang|', '}}', '{{#invoke:Language|wiktlang|no_cat=yes|', '}}', full_test_patterns, {nowiki=1})

end





function p:test_4_compare_language_names()

	local wiktionary_test_patterns = test_patterns_get(true)

	local name_from_tag = require('Module:Lang')._name_from_tag

	local full_test_patterns = {}



	for i = 1, #wiktionary_test_patterns do

		local code = wiktionary_test_patternsi][1

		local en_wiki_name = name_from_tag({code})

		local wiktionary_name = wiktionary_test_patternsi][2

		if wiktionary_name then

			table.insert(full_test_patterns, {code .. ': ' .. wiktionary_name, code .. ': ' .. en_wiki_name})

		end

	end



	self:preprocess_equals_many('', '', full_test_patterns, {nowiki=1})

end





function p:test_5_compare_language_names_redirects()

	local wiktionary_test_patterns = test_patterns_get(false)

	local name_from_tag = require('Module:Lang')._name_from_tag

	local full_test_patterns = {}



	for i = 1, #wiktionary_test_patterns do

		local code = wiktionary_test_patternsi][1

		local wiktionary_name = wiktionary_test_patternsi][2

		local redirect_code = wiktionary_test_patternsi][3	



		local en_wiki_name = name_from_tag({code})

		local en_wiki_redirect_name = name_from_tag({redirect_code})



		table.insert(full_test_patterns, {

				code .. ': ' .. wiktionary_name .. " / " .. redirect_code .. ": " .. wiktionary_name,

				code .. ': ' .. en_wiki_name .. " / " .. redirect_code .. ": " .. en_wiki_redirect_name,

			})

	end



	self:preprocess_equals_many('', '', full_test_patterns, {nowiki=1})

end





return p
From Wikipedia, the free encyclopedia

-- Unit tests for [[Module:Language]]. Click talk page to run tests.

local p = require('Module:UnitTests')

local m_Language = require('Module:Language')

local name_from_tag = require('Module:Lang/sandbox')._name_from_tag



function p:test_1_link()

	self:preprocess_equals_preprocess_many('{{#invoke:Language/sandbox|wiktlang|', '}}', '{{#invoke:Language|wiktlang|', '}}',

		{

			{"grc|δημοκρᾰτῐ́ᾱ"},

			{"ha|àzàhàr̃iyyā̀"},

			{"la|coëō"},

			{"nci|Quetzalcōātl"},

			{"ru|ру́сский язы́к"},

			{"he|שלום"},

			{"sh|ćá|ća" },														-- fake word with c-acute and tonal acute; add a real word if you know one

		}, {nowiki=1})

end





local function test_patterns_get(main)

	local data = require('Module:Language/data/sandbox')

	local language_codes = {}



	if main then

		for code, values in pairs(data"languages"]) do

			table.insert(language_codes, {code, values.name})

		end



	else

		for code, redirect_code in pairs(data"redirects"]) do

			local redirect_name

			if data"languages"][redirect_code and data"languages"][redirect_code].name then

				redirect_name = data"languages"][redirect_code].name

			else

				redirect_name = name_from_tag({code})

				if not redirect_name or redirect_name:find("error") then

					redirect_name = mw.language.fetchLanguageName(redirect_code, 'en')

				end

			end

			table.insert(language_codes, {code, redirect_name, redirect_code, redirect_name})

		end

	end



	local function comp(a, b)

		return a1 < b1

	end



	table.sort(language_codes, comp)

	return language_codes

end





function p:test_2_link()

	local wiktionary_test_patterns = test_patterns_get(true)

	local name_from_tag = require('Module:Lang')._name_from_tag

	local full_test_patterns = {}



	for i = 1, #wiktionary_test_patterns do

		local code = wiktionary_test_patternsi][1

		table.insert(full_test_patterns, {code .. "|test", code .. "|test"})

	end

	

	self:preprocess_equals_preprocess_many('{{#invoke:Language/sandbox|wiktlang|', '}}', '{{#invoke:Language|wiktlang|no_cat=yes|', '}}', full_test_patterns, {nowiki=1})

end





function p:test_3_link_redirects()

	local wiktionary_test_patterns = test_patterns_get(false)

	local name_from_tag = require('Module:Lang')._name_from_tag

	local full_test_patterns = {}



	for i = 1, #wiktionary_test_patterns do

		local code = wiktionary_test_patternsi][1

		table.insert(full_test_patterns, {code .. "|test", code .. "|test"})

	end

	

	self:preprocess_equals_preprocess_many('{{#invoke:Language/sandbox|wiktlang|', '}}', '{{#invoke:Language|wiktlang|no_cat=yes|', '}}', full_test_patterns, {nowiki=1})

end





function p:test_4_compare_language_names()

	local wiktionary_test_patterns = test_patterns_get(true)

	local name_from_tag = require('Module:Lang')._name_from_tag

	local full_test_patterns = {}



	for i = 1, #wiktionary_test_patterns do

		local code = wiktionary_test_patternsi][1

		local en_wiki_name = name_from_tag({code})

		local wiktionary_name = wiktionary_test_patternsi][2

		if wiktionary_name then

			table.insert(full_test_patterns, {code .. ': ' .. wiktionary_name, code .. ': ' .. en_wiki_name})

		end

	end



	self:preprocess_equals_many('', '', full_test_patterns, {nowiki=1})

end





function p:test_5_compare_language_names_redirects()

	local wiktionary_test_patterns = test_patterns_get(false)

	local name_from_tag = require('Module:Lang')._name_from_tag

	local full_test_patterns = {}



	for i = 1, #wiktionary_test_patterns do

		local code = wiktionary_test_patternsi][1

		local wiktionary_name = wiktionary_test_patternsi][2

		local redirect_code = wiktionary_test_patternsi][3	



		local en_wiki_name = name_from_tag({code})

		local en_wiki_redirect_name = name_from_tag({redirect_code})



		table.insert(full_test_patterns, {

				code .. ': ' .. wiktionary_name .. " / " .. redirect_code .. ": " .. wiktionary_name,

				code .. ': ' .. en_wiki_name .. " / " .. redirect_code .. ": " .. en_wiki_redirect_name,

			})

	end



	self:preprocess_equals_many('', '', full_test_patterns, {nowiki=1})

end





return p

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook