Modulo:Data/test

Da Cathopedia, l'enciclopedia cattolica.
Vai alla navigazione Vai alla ricerca

La documentazione per questo modulo può essere creata in Modulo:Data/test/man

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

function p:test_diff_ymd()
	self:preprocess_equals_many("{{#invoke:Data/sandbox|diff_ymd|inizio=2016/01/01|fine=", "}}", {
		-- anno
		{ "2026/01/01", "10 anni" },
		{ "2006/01/01", "-10 anni" },
		{ "2017/01/01", "1 anno" },
		{ "2015/01/01", "-1 anno" },
		-- mesi
		{ "2016/12/01", "11 mesi" },
		{ "2015/02/01", "-11 mesi" },
		{ "2016/02/01", "1 mese" },
		{ "2015/12/01", "-1 mese" },
		-- giorni
		{ "2016/01/31", "30 giorni" },
		{ "2015/12/02", "-30 giorni" },
		{ "2016/01/11", "10 giorni" },
		{ "2015/12/22", "-10 giorni" },
		{ "2016/01/02", "1 giorno" },
		{ "2015/12/31", "-1 giorno" },
		-- mese e giorni
		{ "2016/02/02", "1 mese e 1 giorno" },
		{ "2015/11/30", "-1 mese e 1 giorno" },
		{ "2016/03/03", "2 mesi e 2 giorni" },
		{ "2015/10/30", "-2 mesi e 2 giorni" },
		{ "2016/04/04", "3 mesi e 3 giorni" },
		{ "2015/09/28", "-3 mesi e 3 giorni" },
		{ "2015/01/02", "-11 mesi e 30 giorni" },
		-- anni e giorni
		{ "2017/01/02", "1 anno e 1 giorno" },
		{ "2014/12/31", "-1 anno e 1 giorno" },
		{ "2018/01/03", "2 anni e 2 giorni" },
		{ "2013/12/30", "-2 anni e 2 giorni" },
		{ "2019/01/04", "3 anni e 3 giorni" },
		{ "2012/12/29", "-3 anni e 3 giorni" },
		-- anni e mesi
		{ "2017/02/01", "1 anno e 1 mese" },
		{ "2014/12/01", "-1 anno e 1 mese" },
		{ "2018/03/01", "2 anni e 2 mesi" },
		{ "2013/11/01", "-2 anni e 2 mesi" },
		{ "2019/04/01", "3 anni e 3 mesi" },
		{ "2012/10/01", "-3 anni e 3 mesi" },
		-- anni, mesi e giorni
		{ "2017/02/02", "1 anno, 1 mese e 1 giorno" },
		{ "2014/11/30", "-1 anno, 1 mese e 1 giorno" },
		{ "2018/03/03", "2 anni, 2 mesi e 2 giorni" },
		{ "2013/10/30", "-2 anni, 2 mesi e 2 giorni" },
		{ "2019/04/04", "3 anni, 3 mesi e 3 giorni" },
		{ "2012/09/28", "-3 anni, 3 mesi e 3 giorni" },
		-- dir
		{ "2017/02/02|dir=sì", "tra 1 anno, 1 mese e 1 giorno" },
		{ "2014/11/30|dir=sì", "1 anno, 1 mese e 1 giorno fa" },
		-- zero
		{ "2016/01/01", "0 giorni" },
		{ "2016/01/01|dir=sì", "0 giorni fa" }
	})
end

function p:test_diff()
	self:preprocess_equals_many("{{#invoke:Data/sandbox|diff|inizio=2016/01/01|fine=", "}}", {
		-- anno
		{ "2026/01/01|magnitudine=anni", "10 anni" },
		{ "2006/01/01|magnitudine=anni", "-10 anni" },
		{ "2017/01/01|magnitudine=anni", "1 anno" },
		{ "2015/01/01|magnitudine=anni", "-1 anno" },
		-- mese
		{ "2016/12/01|magnitudine=mesi", "11 mesi" },
		{ "2015/02/01|magnitudine=mesi", "-11 mesi" },
		{ "2016/02/01|magnitudine=mesi", "1 mese" },
		{ "2015/12/01|magnitudine=mesi", "-1 mese" },
		-- settimane
		{ "2016/01/08|magnitudine=settimane", "1 settimana" },
		{ "2015/12/23|magnitudine=settimane", "-1 settimana" },
		{ "2017/01/01|magnitudine=settimane", "52 settimane" },
		{ "2015/01/01|magnitudine=settimane", "-52 settimane" },
		-- giorni
		{ "2016/01/02|magnitudine=giorni", "1 giorno" },
		{ "2015/12/31|magnitudine=giorni", "-1 giorno" },
		{ "2016/04/10|magnitudine=giorni", "100 giorni" },
		{ "2015/09/23|magnitudine=giorni", "-100 giorni" },
		-- dir
		{ "2017/01/01|magnitudine=anni|dir=sì", "tra 1 anno" },
		{ "2015/01/01|magnitudine=anni|dir=sì", "1 anno fa" },
		-- zero
		{ "2016/01/01|magnitudine=anni", "0 anni" },
		{ "2015/12/31|magnitudine=mesi", "0 mesi" },
		{ "2015/12/31|magnitudine=settimane", "0 settimane" },
		{ "2016/01/01|magnitudine=giorni", "0 giorni" },
		{ "2016/01/01|magnitudine=anni|dir=sì", "0 anni fa" },
		{ "2016/01/02|magnitudine=anni|dir=sì", "tra 0 anni" },
		{ "2015/12/31|magnitudine=mesi|dir=sì", "0 mesi fa" },
		{ "2016/01/02|magnitudine=mesi|dir=sì", "tra 0 mesi" },
		{ "2015/12/31|magnitudine=settimane|dir=sì", "0 settimane fa" },
		{ "2016/01/02|magnitudine=settimane|dir=sì", "tra 0 settimane" },
		{ "2016/01/01|magnitudine=giorni|dir=sì", "0 giorni fa" }
	})
end

function p:test_diff_hms()
	self:preprocess_equals_many("{{#invoke:Data/sandbox|diff|inizio=2016/01/01 12:00:00|fine=", "}}", {
		-- ore
		{ "2016/01/02 03:00:00|magnitudine=ore", "15 ore" },
		{ "2015/12/31 21:00:00|magnitudine=ore", "-15 ore" },
		{ "2016/01/01 13:00:00|magnitudine=ore", "1 ora" },
		{ "2016/01/01 11:00:00|magnitudine=ore", "-1 ora" },
		-- minuti
		{ "2016/01/01 12:15:00|magnitudine=minuti", "15 minuti" },
		{ "2016/01/01 11:45:00|magnitudine=minuti", "-15 minuti" },
		{ "2016/01/01 22:00:00|magnitudine=minuti", "600 minuti" },
		{ "2016/01/01 02:00:00|magnitudine=minuti", "-600 minuti" },
		-- secondi
		{ "2016/01/01 12:00:15|magnitudine=secondi", "15 secondi" },
		{ "2016/01/01 11:59:45|magnitudine=secondi", "-15 secondi" },
		{ "2016/01/01 12:10:00|magnitudine=secondi", "600 secondi" },
		{ "2016/01/01 11:50:00|magnitudine=secondi", "-600 secondi" },
		-- zero
		{ "2016/01/01 12:00:00|magnitudine=ore", "0 ore" },
		{ "2016/01/01 12:00:00|magnitudine=minuti", "0 minuti" },
		{ "2016/01/01 12:00:00|magnitudine=secondi", "0 secondi" },
		{ "2016/01/01 12:00:00|magnitudine=ore|dir=sì", "0 ore fa" },
		{ "2016/01/01 12:00:00|magnitudine=minuti|dir=sì", "0 minuti fa" },
		{ "2016/01/01 12:00:00|magnitudine=secondi|dir=sì", "0 secondi fa" }
	})
end

function p:test_diff_magnitudine()
	self:preprocess_equals_many("{{#invoke:Data/sandbox|diff|inizio=2016/01/01 12:00:00|fine=", "}}", {
		-- fino a 120 secondi (esclusi) => secondi
		{ "2016/01/01 12:01:59", "119 secondi" },
		{ "2016/01/01 11:58:01", "-119 secondi" },
		-- da 2 minuti a 120 minuti (esclusi) => minuti
		{ "2016/01/01 12:02:00", "2 minuti" },
		{ "2016/01/01 11:58:00", "-2 minuti" },
		{ "2016/01/01 13:59:00", "119 minuti" },
		{ "2016/01/01 10:01:00", "-119 minuti" },
		-- da 2 ore a 48 ore (esclusi) => ore
		{ "2016/01/01 14:00:00", "2 ore" },
		{ "2016/01/01 10:00:00", "-2 ore" },
		{ "2016/01/03 11:00:00", "47 ore" },
		{ "2015/12/30 13:00:00", "-47 ore" },
		-- da 2 giorni a 2 mesi (esclusi) => giorni
		{ "2016/01/03 12:00:00", "2 giorni" },
		{ "2015/12/30 12:00:00", "-2 giorni" },
		{ "2016/02/28 12:00:00", "58 giorni" },
		{ "2015/11/02 12:00:00", "-60 giorni" },
		-- da 2 mesi a 2 anni (esclusi) => mesi
		{ "2016/03/01 12:00:00", "2 mesi" },
		{ "2015/11/01 12:00:00", "-2 mesi" },
		{ "2017/12/01 12:00:00", "23 mesi" },
		{ "2014/02/01 12:00:00", "-23 mesi" },
		-- oltre i due anni => anni
		{ "2018/01/01 12:00:00", "2 anni" },
		{ "2014/01/01 12:00:00", "-2 anni" },
		{ "2026/01/01 12:00:00", "10 anni" },
		{ "2006/01/01 12:00:00", "-10 anni" }
	})
end


function p:test_diff_magnitudine_min()
	self:preprocess_equals_many("{{#invoke:Data/sandbox|diff|inizio=2016/01/01 12:00:00|fine=", "}}", {
		-- minuti
		{ "2016/01/01 12:01:00|magnitudine min=minuti", "1 minuto" },
		{ "2016/01/01 11:59:00|magnitudine min=minuti", "-1 minuto" },
		-- ore
		{ "2016/01/01 13:00:00|magnitudine min=ore", "1 ora" },
		{ "2016/01/01 11:00:00|magnitudine min=ore", "-1 ora" },
		-- giorni
		{ "2016/01/02 12:00:00|magnitudine min=giorni", "1 giorno" },
		{ "2015/12/31 12:00:00|magnitudine min=giorni", "-1 giorno" },
		-- mesi
		{ "2016/02/01 12:00:00|magnitudine min=mesi", "1 mese" },
		{ "2015/12/01 12:00:00|magnitudine min=mesi", "-1 mese" }
	})
end

function p:test_compare()
	self:preprocess_equals_many("{{#invoke:Data/sandbox|compare|", "}}", {
		{ "data1=2016/01/01|data2=2016/01/01", "0" },
		{ "data1=2016/01/01|data2=2016/01/02", "-1" },
		{ "data1=2016/01/02|data2=2016/01/01", "1" },
		{ "data1=2016/01/01 12:00:00|data2=2016/01/01 12:00:00", "0" },
		{ "data1=2016/01/01 12:00:00|data2=2016/01/01 12:00:01", "-1" },
		{ "data1=2016/01/01 12:00:01|data2=2016/01/01 12:00:00", "1" }
	})
end

return p