-- Unit tests per [[Modulo:Dati popolazione]]. Cliccare sulla pagina di discussione per eseguire i test.
local p = require("Module:UnitTests")

function p:test_ordine_di_precedenza()
	self:preprocess_equals_preprocess("{{#invoke:Dati popolazione/sandbox|main|DE-BB|12071414||valore manuale}}", "{{formatnum:{{Dati popolazione DE-BB|12071414}}}}")
	self:preprocess_equals_preprocess_many("{{#invoke:Dati popolazione/sandbox|main|", "}}", "{{Dati popolazione DE-BB|12071414|", "}}", {
		{"DE-BB|12071414|STAND|valore manuale", "STAND"},
		{"DE-BB|12071414|QUELLE|valore manuale", "QUELLE"},
	})
	self:preprocess_equals_many("{{#invoke:Dati popolazione/sandbox|main|", "}}", {
		{"|||valore manuale", "valore manuale"},
		{"|12071414||valore manuale", ""},
		{"|12071414|STAND|valore manuale", ""},
		{"|12071414|QUELLE|valore manuale", ""},
		{"DE-BB|||valore manuale", ""},
		{"DE-BB||STAND|valore manuale", ""},
		{"DE-BB||QUELLE|valore manuale", ""},
		{"valore errato|12071414||valore manuale", ""},
		{"valore errato|12071414|STAND|valore manuale", ""},
		{"valore errato|12071414|QUELLE|valore manuale", ""},
		{"DE-BB|valore errato||valore manuale", ""},
		{"DE-BB|valore errato|STAND|valore manuale", ""},
		{"DE-BB|valore errato|QUELLE|valore manuale", ""},
	})
	self:preprocess_equals_preprocess_many("{{#invoke:Dati popolazione/sandbox|main|", "}}", "{{formatnum:{{Dati popolazione ", "}}}}", {
		{"from=Q638613||||valore manuale", "DE-BB|12071414"},
		{"from=Q638613|DE-BB|||valore manuale", "DE-BB|12071414"},
		{"from=Q638613|DE-BB|12071414||valore manuale", "DE-BB|12071414"},
	})
	self:preprocess_equals_preprocess_many("{{#invoke:Dati popolazione/sandbox|main|", "}}", "{{Dati popolazione ", "}}", {
		{"from=Q638613|||QUELLE|valore manuale", "DE-BB|12071414|QUELLE"},
		{"from=Q638613|||STAND|valore manuale", "DE-BB|12071414|STAND"},
	})
end

function p:test_individuazione_template_CZ()
	self:preprocess_equals_preprocess("{{#invoke:Dati popolazione/sandbox|main|from=Q894336}}", "{{formatnum:{{Dati popolazione CZ-JC|031544299}}}}")
end

return p