-- Unit tests for [[Module:Mw lang]]. Click talk page to run tests.
local p = require('Module:UnitTests')

local function compare_by_keys(a, b)
	return a[1] < b[1]
end

local function get_all_languages()
	return mw.language.fetchLanguageNames("en", "all")
end

function p:test_code_from_name()
	language_tables = {}
	for language_code, language_name in pairs(get_all_languages()) do
		local entry = {}
		table.insert(entry, language_name)
		table.insert(entry, language_code)
		table.insert(language_tables, entry)
	end

	table.sort(language_tables, compare_by_keys)

    self:preprocess_equals_preprocess_many(
    	'{{#invoke:Mw lang|code_from_name|', '}}', '', '',
		language_tables, 
		{nowiki=false}
	)
end

function p:test_name_from_code()
	language_tables = {}
	for language_code, language_name in pairs(get_all_languages()) do
		local entry = {}
		table.insert(entry, language_code)
		table.insert(entry, language_name)
		table.insert(language_tables, entry)
	end

	table.sort(language_tables, compare_by_keys)

    self:preprocess_equals_preprocess_many(
    	'{{#invoke:Mw lang|name_from_code|', '}}', '', '',
		language_tables, 
		{nowiki=false}
	)
end

return p