-- 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' },
-- il più basso è e
{ 'accuratezza=e|scrittura=a|fonti=a|immagini=a', 'BOZZA' },
{ 'accuratezza=a|scrittura=e|fonti=a|immagini=a', 'W' },
{ 'accuratezza=a|scrittura=a|fonti=e|immagini=a', 'F' },
{ 'accuratezza=a|scrittura=a|fonti=a|immagini=e', 'IMMAGINI' }
})
end
return p