Modulo:Progetti interessati/test

-- Unit tests per il [[Modulo:Monitoraggio]]. Cliccare sulla pagina di discussione per eseguire i test.
local p = require('Modulo:UnitTests')

function p:test_livello()
	self:preprocess_equals_many('{{#invoke:Monitoraggio|livello|', '}}', {
		-- mancano tutte le valutazioni
		{ '', '' },
		-- se manca accuratezza, ma ce ne è almeno 1 o più degli altri => 0.5
		{ 'scrittura=a', '0.5' },
		{ 'fonti=b', '0.5' },
		{ 'immagini=c', '0.5' },
		{ 'scrittura=a|immagini=b|fonti=c', '0.5' },
		-- se c'è accuratezza, ma manca scrittura, a prescindere dai restanti due => 0.4
		{ 'accuratezza=a', '0.4' },
		{ 'accuratezza=a|fonti=b', '0.4' },
		{ 'accuratezza=a|fonti=b|immagini=c', '0.4' },
		-- se ci sono sia accuratezza che scrittura, ma manca fonti, a prescindere da immagini => 0.3
		{ 'accuratezza=a|scrittura=b', '0.3' },
		{ 'accuratezza=a|scrittura=b|immagini=c', '0.3' },
		-- se ci sono accuratezza, scrittura, fonti e manca immagine => 0.2
		{ 'accuratezza=a|scrittura=b|fonti=c', '0.2' },
		
		-- sono presenti tutti e quattro:
		-- tutti con valore a
		{ 'accuratezza=a|scrittura=a|fonti=a|immagini=a', '4' },
		-- il più basso è b
		{ 'accuratezza=b|scrittura=a|fonti=a|immagini=a', '3' },
		{ 'accuratezza=a|scrittura=b|fonti=a|immagini=b', '3' },
		-- il più basso è c
		{ 'accuratezza=c|scrittura=a|fonti=a|immagini=a', '2' },
		{ 'accuratezza=a|scrittura=c|fonti=a|immagini=c', '2' },
		-- il più basso è d
		{ 'accuratezza=d|scrittura=a|fonti=a|immagini=a', '1' },
		{ 'accuratezza=a|scrittura=d|fonti=a|immagini=d', '1' }
	})
end

return p