Modulo:Conversione/test

Versione del 2 ott 2015 alle 10:43 di Rotpunkt (discussione | contributi) (aggiunta temperatura)
-- 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|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' },
		-- 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|grammo', '0.028349523125' },
		{ '1|pound|grammo', '0.45359237' },
		{ '1|gram|gram', '1' },
		{ '1|kilogram|gram', '1000' },
		{ '1|tonne|gram', '1000000' },
		-- 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|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' },
		-- 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', '0.028349523125' },
		{ '1|libbra|grammo', '0.45359237' },
		{ '1|grammo|grammo', '1' },
		{ '1|chilogrammo|grammo', '1000' },
		{ '1|tonnellata|grammo', '1000000' },
		-- 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|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' },
		-- velocità
		{ '1|km/h|m/s', '0.27777777777778' },
		{ '1|kn|m/s', '0.51444444444444' },
		{ '1|m/s|m/s', '1' },
		-- peso
		{ '1|oz|g', '0.028349523125' },
		{ '1|lb|g', '0.45359237' },
		{ '1|g|g', '1' },
		{ '1|kg|g', '1000' },
		{ '1|t|g', '1000000' },
		-- 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|main|showunit=true|', '}}', {
		-- 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>' },
		-- 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' },
		-- temperatura
		{ '1|grado Celsius', '1 °C' },
		{ '1|grado Fahrenheit', '1 °F' },
		{ '1|kelvin', '1 K' }
	})
end

function p:test_showunit_long()
	self:preprocess_equals_many('{{#invoke:Conversione|main|showunit=long|', '}}', {
		-- 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' },
		-- 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' },
		-- temperatura
		{ '1|grado Celsius', '1 grado Celsius' },
		{ '1|grado Fahrenheit', '1 grado Fahrenheit' },
		{ '1|kelvin', '1 kelvin' }
	})
end

function p:test_showunit_long_plural()
	self:preprocess_equals_many('{{#invoke:Conversione|main|showunit=long|', '}}', {
		-- 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' },
		-- 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' },
		-- temperatura
		{ '2|grado Celsius', '2 gradi Celsius' },
		{ '2|grado Fahrenheit', '2 gradi Fahrenheit' },
		{ '2|kelvin', '2 kelvin' }
	})
end

function p:test_showlink()
	self:preprocess_equals_many('{{#invoke:Conversione|main|showunit=true|showlink=true|', '}}', {
		-- 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>]]' },
		-- 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]]' },
		-- temperatura
		{ '1|grado Celsius', '1 [[grado Celsius|°C]]' },
		{ '1|grado Fahrenheit', '1 [[grado Fahrenheit|°F]]' },
		{ '1|kelvin', '1 [[kelvin|K]]' }
	})
end

function p:test_showlink_custom()
	self:preprocess_equals_many('{{#invoke:Conversione|main|showunit=true|showlink=test|', '}}', {
		{ '1|metro', '1 [[test|m]]' },
		{ '1|grammo', '1 [[test|g]]' },
	})
end

function p:test_rounding()
	self:preprocess_equals_many('{{#invoke:Conversione|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_temperature()
	self:preprocess_equals_many('{{#invoke:Conversione|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