Modulo:Conversione/test

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
-- Unit tests per il [[Modulo:Conversione]]. Cliccare sulla pagina di discussione per eseguire i test.
local p = require('Modulo:UnitTests')

function p:test_reference_unit()
	self:preprocess_equals_many('{{#invoke:Conversione/sandbox|main|', '}}', {
		-- lunghezza
		{ '1|millimetre|metre', '0.001' },
		{ '1|centimetre|metre', '0.01' },
		{ '1|inch|metre', '0.0254' },
		{ '1|foot|metre', '0.3048' },
		{ '1|yard|metre', '0.9144' },
		{ '1|metre|metre', '1' },
		{ '1|kilometre|metre', '1000' },
		{ '1|mile|metre', '1609.344' },
		{ '1|nautical mile|metre', '1852' },
		-- area
		{ '1|square metre|square metre', '1' },
		{ '1|hectare|square metre', '10000' },
		{ '1|square kilometre|square metre', '1000000' },
		{ '1|square mile|square metre', '2589988.110336' },
		{ '1|acre|square metre', '4046.8564224' },
		-- velocità
		{ '1|kilometre per hour|metre per second', '0.27777777777778' },
		{ '1|knot|metre per second', '0.51444444444444' },
		{ '1|metre per second|metre per second', '1' },
		-- peso
		{ '1|ounce|gram', '28.349523125' },
		{ '1|pound|gram', '453.59237' },
		{ '1|gram|gram', '1' },
		{ '1|kilogram|gram', '1000' },
		{ '1|tonne|gram', '1000000' },
		-- pressione
		{ '1|pascal|pascal', '1' },
		{ '1|millimeter of mercury|pascal', '133.322387415' },
		{ '1|pound per square inch|pascal', '6894.7572931684' },
		{ '1|bar|pascal', '100000' },
		{ '1|atmosphere|pascal', '101325' },
		-- portata
		{ '1|cubic metre per second|cubic metre per second', '1' },
		{ '1|cubic feet per second|cubic metre per second', '0.028316846592' },
		-- tempo
		{ '1|second|second', '1' },
		{ '1|minute|second', '60' },
		{ '1|hour|second', '3600' },
		-- angolo
		{ '1|degree|degree', '1' },
		{ '1|radiant|degree', '57.295779513082' },
		-- temperatura
		{ '1|degree Celsius|kelvin', '274.15' },
		{ '1|degree Fahrenheit|kelvin', '255.92777777778' },
		{ '1|kelvin|kelvin', '1' }
	})
end

function p:test_alias()
	self:preprocess_equals_many('{{#invoke:Conversione/sandbox|main|', '}}', {
		-- lunghezza
		{ '1|millimetro|metro', '0.001' },
		{ '1|centimetro|metro', '0.01' },
		{ '1|pollice|metro', '0.0254' },
		{ '1|piede|metro', '0.3048' },
		{ '1|iarda|metro', '0.9144' },
		{ '1|metro|metro', '1' },
		{ '1|chilometro|metro', '1000' },
		{ '1|miglio|metro', '1609.344' },
		{ '1|miglio nautico|metro', '1852' },
		-- area
		{ '1|metro quadrato|metro quadrato', '1' },
		{ '1|ettaro|metro quadrato', '10000' },
		{ '1|chilometro quadrato|metro quadrato', '1000000' },
		{ '1|miglio quadro|metro quadrato', '2589988.110336' },
		{ '1|acro|metro quadrato', '4046.8564224' },
		-- velocità
		{ '1|chilometro orario|metro al secondo', '0.27777777777778' },
		{ '1|nodo|metro al secondo', '0.51444444444444' },
		{ '1|metro al secondo|metro al secondo', '1' },
		-- peso
		{ '1|oncia|grammo', '28.349523125' },
		{ '1|libbra|grammo', '453.59237' },
		{ '1|grammo|grammo', '1' },
		{ '1|chilogrammo|grammo', '1000' },
		{ '1|tonnellata|grammo', '1000000' },
		-- pressione
		{ '1|millimetro di mercurio|pascal', '133.322387415' },
		{ '1|libbra per pollice quadrato|pascal', '6894.7572931684' },
		{ '1|atmosfera|pascal', '101325' },
		-- portata
		{ '1|metro cubo al secondo|metro cubo al secondo', '1' },
		{ '1|piede cubo al secondo|metro cubo al secondo', '0.028316846592' },
		-- tempo
		{ '1|secondo|secondo', '1' },
		{ '1|minuto|secondo', '60' },
		{ '1|ora|secondo', '3600' },
		-- angolo
		{ '1|grado d\'arco|grado d\'arco', '1' },
		{ '1|radiante|grado d\'arco', '57.295779513082' },
		-- temperatura
		{ '1|grado Celsius|kelvin', '274.15' },
		{ '1|grado Fahrenheit|kelvin', '255.92777777778' },
		{ '1|kelvin|kelvin', '1' }
	})
end

function p:test_alias_unit()
	self:preprocess_equals_many('{{#invoke:Conversione/sandbox|main|', '}}', {
		-- lunghezza
		{ '1|mm|m', '0.001' },
		{ '1|cm|m', '0.01' },
		{ '1|in|m', '0.0254' },
		{ '1|ft|m', '0.3048' },
		{ '1|yd|m', '0.9144' },
		{ '1|m|m', '1' },
		{ '1|km|m', '1000' },
		{ '1|mi|m', '1609.344' },
		{ '1|nmi|m', '1852' },
		-- area
		{ '1|sqm|sqm', '1' },
		{ '1|ha|sqm', '10000' },
		{ '1|sqkm|sqm', '1000000' },
		{ '1|sqmi|sqm', '2589988.110336' },
		{ '1|ac|sqm', '4046.8564224' },
		-- velocità
		{ '1|km/h|m/s', '0.27777777777778' },
		{ '1|kn|m/s', '0.51444444444444' },
		{ '1|m/s|m/s', '1' },
		-- peso
		{ '1|oz|g', '28.349523125' },
		{ '1|lb|g', '453.59237' },
		{ '1|g|g', '1' },
		{ '1|kg|g', '1000' },
		{ '1|t|g', '1000000' },
		-- pressione
		{ '1|Pa|Pa', '1' },
		{ '1|mmHg|Pa', '133.322387415' },
		{ '1|psi|Pa', '6894.7572931684' },
		{ '1|bar|Pa', '100000' },
		{ '1|atm|Pa', '101325' },
		-- portata
		{ '1|m3/s|m3/s', '1' },
		{ '1|cuft/s|m3/s', '0.028316846592' },
		-- tempo
		{ '1|s|s', '1' },
		{ '1|min|s', '60' },
		{ '1|h|s', '3600' },
		-- angolo
		{ '1|°|°', '1' },
		{ '1|rad|°', '57.295779513082' },
		-- temperatura
		{ '1|°C|K', '274.15' },
		{ '1|°F|K', '255.92777777778' },
		{ '1|K|K', '1' }
	})
end

function p:test_showunit()
	self:preprocess_equals_many('{{#invoke:Conversione/sandbox|main|showunit=1|', '}}', {
		-- lunghezza
		{ '1|millimetro', '1 mm' },
		{ '1|centimetro', '1 cm' },
		{ '1|pollice', '1 in' },
		{ '1|piede', '1 ft' },
		{ '1|iarda', '1 yd' },
		{ '1|metro', '1 m' },
		{ '1|chilometro', '1 km' },
		{ '1|miglio', '1 mi' },
		{ '1|miglio nautico', '1 nmi' },
		-- area
		{ '1|metro quadrato', '1 m<sup>2</sup>' },
		{ '1|ettaro', '1 ha' },
		{ '1|chilometro quadrato', '1 km<sup>2</sup>' },
		{ '1|miglio quadro', '1 mi<sup>2</sup>' },
		{ '1|acro', '1 ac' },
		-- velocità
		{ '1|chilometro orario', '1 km/h' },
		{ '1|nodo', '1 kn' },
		{ '1|metro al secondo', '1 m/s' },
		-- peso
		{ '1|oncia', '1 oz' },
		{ '1|libbra', '1 lb' },
		{ '1|grammo', '1 g' },
		{ '1|chilogrammo', '1 kg' },
		{ '1|tonnellata', '1 t' },
		-- pressione
		{ '1|pascal', '1 Pa' },
		{ '1|millimetro di mercurio', '1 mmHg' },
		{ '1|libbra per pollice quadrato', '1 psi' },
		{ '1|bar', '1 bar' },
		{ '1|atmosfera', '1 atm' },
		-- portata
		{ '1|metro cubo al secondo', '1 m<sup>3</sup>/s' },
		{ '1|piede cubo al secondo', '1 cu&nbsp;ft/s' },
		-- tempo
		{ '1|secondo', '1 s' },
		{ '1|minuto', '1 min' },
		{ '1|ora', '1 h' },
		-- angolo
		{ '1|grado d\'arco', '1°' },
		{ '1|radiante', '1 rad' },
		-- temperatura
		{ '1|grado Celsius', '1 °C' },
		{ '1|grado Fahrenheit', '1 °F' },
		{ '1|kelvin', '1 K' }
	})
end

function p:test_showunitlong()
	self:preprocess_equals_many('{{#invoke:Conversione/sandbox|main|showunitlong=1|', '}}', {
		-- lunghezza
		{ '1|millimetro', '1 millimetro' },
		{ '1|centimetro', '1 centimetro' },
		{ '1|pollice', '1 pollice' },
		{ '1|piede', '1 piede' },
		{ '1|iarda', '1 iarda' },
		{ '1|metro', '1 metro' },
		{ '1|chilometro', '1 chilometro' },
		{ '1|miglio', '1 miglio' },
		{ '1|miglio nautico', '1 miglio nautico' },
		-- area
		{ '1|metro quadrato', '1 metro quadrato' },
		{ '1|ettaro', '1 ettaro' },
		{ '1|chilometro quadrato', '1 chilometro quadrato' },
		{ '1|miglio quadro', '1 miglio quadro' },
		{ '1|acro', '1 acro' },
		-- velocità
		{ '1|chilometro orario', '1 chilometro orario' },
		{ '1|nodo', '1 nodo' },
		{ '1|metro al secondo', '1 metro al secondo' },
		-- peso
		{ '1|oncia', '1 oncia' },
		{ '1|libbra', '1 libbra' },
		{ '1|grammo', '1 grammo' },
		{ '1|chilogrammo', '1 chilogrammo' },
		{ '1|tonnellata', '1 tonnellata' },
		-- pressione
		{ '1|pascal', '1 pascal' },
		{ '1|millimetro di mercurio', '1 millimetro di mercurio' },
		{ '1|libbra per pollice quadrato', '1 libbra per pollice quadrato' },
		{ '1|bar', '1 bar' },
		{ '1|atmosfera', '1 atmosfera' },
		-- portata
		{ '1|metro cubo al secondo', '1 metro cubo al secondo' },
		{ '1|piede cubo al secondo', '1 piede cubo al secondo' },
		-- tempo
		{ '1|secondo', '1 secondo' },
		{ '1|minuto', '1 minuto' },
		{ '1|ora', '1 ora' },
		-- angolo
		{ '1|grado d\'arco', '1 grado d\'arco' },
		{ '1|radiante', '1 radiante' },
		-- temperatura
		{ '1|grado Celsius', '1 grado Celsius' },
		{ '1|grado Fahrenheit', '1 grado Fahrenheit' },
		{ '1|kelvin', '1 kelvin' }
	})
end

function p:test_showunitlong_plural()
	self:preprocess_equals_many('{{#invoke:Conversione/sandbox|main|showunitlong=1|', '}}', {
		-- lunghezza
		{ '2|millimetro', '2 millimetri' },
		{ '2|centimetro', '2 centimetri' },
		{ '2|pollice', '2 pollici' },
		{ '2|piede', '2 piedi' },
		{ '2|iarda', '2 iarde' },
		{ '2|metro', '2 metri' },
		{ '2|chilometro', '2 chilometri' },
		{ '2|miglio', '2 miglia' },
		{ '2|miglio nautico', '2 miglia nautiche' },
		-- area
		{ '2|metro quadrato', '2 metri quadrati' },
		{ '2|ettaro', '2 ettari' },
		{ '2|chilometro quadrato', '2 chilometri quadrati' },
		{ '2|miglio quadro', '2 miglia quadre' },
		{ '2|acro', '2 acri' },
		-- velocità
		{ '2|chilometro orario', '2 chilometri orari' },
		{ '2|nodo', '2 nodi' },
		{ '2|metro al secondo', '2 metri al secondo' },
		-- peso
		{ '2|oncia', '2 once' },
		{ '2|libbra', '2 libbre' },
		{ '2|grammo', '2 grammi' },
		{ '2|chilogrammo', '2 chilogrammi' },
		{ '2|tonnellata', '2 tonnellate' },
		-- pressione
		{ '2|pascal', '2 pascal' },
		{ '2|millimetro di mercurio', '2 millimetri di mercurio' },
		{ '2|libbra per pollice quadrato', '2 libbre per pollice quadrato' },
		{ '2|bar', '2 bar' },
		{ '2|atmosfera', '2 atmosfere' },
		-- portata
		{ '2|metro cubo al secondo', '2 metri cubi al secondo' },
		{ '2|piede cubo al secondo', '2 piedi cubi al secondo' },
		-- tempo
		{ '2|secondo', '2 secondi' },
		{ '2|minuto', '2 minuti' },
		{ '2|ora', '2 ore' },
		-- angolo
		{ '2|grado d\'arco', '2 gradi d\'arco' },
		{ '2|radiante', '2 radianti' },
		-- temperatura
		{ '2|grado Celsius', '2 gradi Celsius' },
		{ '2|grado Fahrenheit', '2 gradi Fahrenheit' },
		{ '2|kelvin', '2 kelvin' }
	})
end

function p:test_showunitlink()
	self:preprocess_equals_many('{{#invoke:Conversione/sandbox|main|showunit=1|showunitlink=1|', '}}', {
		-- lunghezza
		{ '1|millimetro', '1 [[metro|mm]]' },
		{ '1|centimetro', '1 [[metro|cm]]' },
		{ '1|pollice', '1 [[pollice (unità di misura)|in]]' },
		{ '1|piede', '1 [[piede (unità di misura)|ft]]' },
		{ '1|iarda', '1 [[iarda|yd]]' },
		{ '1|metro', '1 [[metro|m]]' },
		{ '1|chilometro', '1 [[chilometro|km]]' },
		{ '1|miglio', '1 [[miglio (unità di misura)|mi]]' },
		{ '1|miglio nautico', '1 [[miglio nautico|nmi]]' },
		-- area
		{ '1|metro quadrato', '1 [[metro quadrato|m<sup>2</sup>]]' },
		{ '1|ettaro', '1 [[ettaro|ha]]' },
		{ '1|chilometro quadrato', '1 [[chilometro quadrato|km<sup>2</sup>]]' },
		{ '1|miglio quadro', '1 [[miglio quadro|mi<sup>2</sup>]]' },
		{ '1|acro', '1 [[acro|ac]]' },
		-- velocità
		{ '1|chilometro orario', '1 [[chilometro orario|km/h]]' },
		{ '1|nodo', '1 [[nodo (unità di misura)|kn]]' },
		{ '1|metro al secondo', '1 [[metro al secondo|m/s]]' },
		-- peso
		{ '1|oncia', '1 [[oncia (unità di misura)|oz]]' },
		{ '1|libbra', '1 [[libbra|lb]]' },
		{ '1|grammo', '1 [[grammo|g]]' },
		{ '1|chilogrammo', '1 [[chilogrammo|kg]]' },
		{ '1|tonnellata', '1 [[tonnellata|t]]' },
		-- pressione
		{ '1|pascal', '1 [[pascal (unità di misura)|Pa]]' },
		{ '1|millimetro di mercurio', '1 [[torr|mmHg]]' },
		{ '1|libbra per pollice quadrato', '1 [[psi (unità di misura)|psi]]' },
		{ '1|bar', '1 [[bar (unità di misura)|bar]]' },
		{ '1|atmosfera', '1 [[atmosfera (unità di misura)|atm]]' },
		-- portata
		{ '1|metro cubo al secondo', '1 [[metro cubo al secondo|m<sup>3</sup>/s]]' },
		{ '1|piede cubo al secondo', '1 [[metro cubo al secondo|cu&nbsp;ft/s]]' },
		-- tempo
		{ '1|secondo', '1 [[secondo|s]]' },
		{ '1|minuto', '1 [[minuto|min]]' },
		{ '1|ora', '1 [[ora|h]]' },
		-- angolo
		{ '1|grado d\'arco', '1[[grado d\'arco|°]]' },
		{ '1|radiante', '1 [[radiante|rad]]' },
		-- temperatura
		{ '1|grado Celsius', '1 [[grado Celsius|°C]]' },
		{ '1|grado Fahrenheit', '1 [[grado Fahrenheit|°F]]' },
		{ '1|kelvin', '1 [[kelvin|K]]' }
	})
end

function p:test_rounding()
	self:preprocess_equals_many('{{#invoke:Conversione/sandbox|main|', '}}', {
		{ '1|metro|piede', '3.2808398950131' },
		{ '1|metro|piede|rounding=3', '3.281' },
		{ '1|metro|piede|rounding=2', '3.28' },
		{ '1|metro|piede|rounding=1', '3.3' },
		{ '1|metro|piede|rounding=0', '3' },
	})
end

function p:test_formatnum()
	self:preprocess_equals_many('{{#invoke:Conversione/sandbox|main|', '}}', {
		{ '1|mm|m|formatnum=1', '0,001' },
		{ '1|m|mm|formatnum=1', '1\194\160000' },
		{ '1|mm|m|formatnum=1|showunit=1', '0,001 m' },
		{ '1|m|ft|formatnum=1|showunit=1|rounding=3', '3,281 ft' }
	})
end

function p:test_temperature()
	self:preprocess_equals_many('{{#invoke:Conversione/sandbox|main|', '}}', {
		{ '0|K|°C', '-273.15' },
		{ '1|K|°C', '-272.15' },
		{ '0|K|°F', '-459.67' },
		{ '1|K|°F', '-457.87' },
		{ '0|°C|K', '273.15' },
		{ '1|°C|K', '274.15' },
		{ '0|°C|°F', '32' },
		{ '1|°C|°F', '33.8' },
		{ '0|°F|K', '255.37222222222' },
		{ '1|°F|K', '255.92777777778' },
		{ '0|°F|°C', '-17.777777777778' },
		{ '1|°F|°C', '-17.222222222222' }
	})
end

return p