Modulo:Wikidata/test

Versione del 11 set 2016 alle 21:15 di Rotpunkt (discussione | contributi) (+test_wikidata_time)
-- Unit tests per [[Modulo:Wikidata]]. Cliccare sulla pagina di discussione per eseguire i test.
local p = require("Module:UnitTests")

function p:test_wikidata_getProperty()
	self:preprocess_equals_many("{{Wikidata/Sandbox|from=Q503361|", "}}", {
		-- property
		{ "P94", "Malmö fulla vapen.svg" },
		-- property non esistente => ""
		{ "P1", "" },
		-- value
		{ "P94|test", "test" },
		-- statement multipli
		{ "P47", "[[Burlöv]], [[Staffanstorp (comune)|Staffanstorp]], [[Svedala (comune)|Svedala]], [[Vellinge (comune)|Vellinge]], Copenaghen, [[Tårnby]], [[Dragør]], [[Solrød]], [[Greve (Danimarca)|Greve]] e [[Kävlinge (comune)|Kävlinge]]" },
		-- n
		{ "P47|n=1", "[[Burlöv]]" },
		{ "P47|n=2", "[[Staffanstorp (comune)|Staffanstorp]]" },
		{ "P47|n=3", "[[Svedala (comune)|Svedala]]" },
		-- rank
		{ "P131|rank=preferred", "[[Contea della Scania]]" },
		-- rank best, ritorna il preferred
		{ "P131|rank=best", "[[Contea della Scania]]" },
		-- rank best, in mancanza di preferred ritorna normal
		{ "P94|rank=best", "Malmö fulla vapen.svg" },
		-- rank + n
		{ "P131|rank=preferred|n=1", "[[Contea della Scania]]" },
		{ "P131|rank=preferred|n=2", "" },
		-- rank non esistente + n => stringa vuota
		{ "P47|rank=preferred|n=1", "" },
		-- qualifier
		{ "P131|qualifier=P580", "[[Contea della Scania]]" },
		-- qualifier + qualifiervalue
		{ "P131|qualifier=P580|qualifiervalue=1º gennaio 2007", "[[Contea della Scania]]" },
		-- qualifier + qualifiertype
		{ "P131|qualifier=P580|qualifiertype=latest", "[[Contea della Scania]]" },
		-- noqualifier
		{ "P131|noqualifier=P582", "[[Contea della Scania]]" },
		{ "P190|noqualifier=P580", "[[Kaliningrad]]" },
		-- qualifieroptnovalue
		{ "P131|qualifieroptnovalue=P582|qualifiervalue=31 dicembre 2006|rank=normal", "" },

		-- datavalue.type = wikibase-entityid (con label e sitelink mancanti in italiano => label en)
		{ "P361", "Malmö metropolitan area" },
		-- datavalue.type = wikibase-entityid (con label ma sitelink mancante in italiano => stringa)
		{ "P47|n=5", "Copenaghen" },
		-- datavalue.type = wikibase-entityid (con sitelink ma label mancante in italiano => [[sitelink]])
		-- todo
		-- datavalue.type = wikibase-entityid (con label e sitelink in italiano => [[sitelink|label]])
		{ "P31", "[[Comuni della Svezia|comune svedese]]" },
		-- datavalue.type = string
		{ "P1566", "2692965" },
		-- datavalue.type = globecoordinate
		{ "P625", "55.583333333333, 13.033333333333" },
		-- datavalue.type = monolingualtext
		{ "P1813", "Malmö" },

		-- separator
		{ "P47|separator=/", "[[Burlöv]]/[[Staffanstorp (comune)|Staffanstorp]]/[[Svedala (comune)|Svedala]]/[[Vellinge (comune)|Vellinge]]/Copenaghen/[[Tårnby]]/[[Dragør]]/[[Solrød]]/[[Greve (Danimarca)|Greve]] e [[Kävlinge (comune)|Kävlinge]]" },
		-- conjunction
		{ "P47|conjunction=+", "[[Burlöv]], [[Staffanstorp (comune)|Staffanstorp]], [[Svedala (comune)|Svedala]], [[Vellinge (comune)|Vellinge]], Copenaghen, [[Tårnby]], [[Dragør]], [[Solrød]], [[Greve (Danimarca)|Greve]]+[[Kävlinge (comune)|Kävlinge]]" },
		-- separator e conjunction
		{ "P47|separator=/|conjunction=+", "[[Burlöv]]/[[Staffanstorp (comune)|Staffanstorp]]/[[Svedala (comune)|Svedala]]/[[Vellinge (comune)|Vellinge]]/Copenaghen/[[Tårnby]]/[[Dragør]]/[[Solrød]]/[[Greve (Danimarca)|Greve]]+[[Kävlinge (comune)|Kävlinge]]" },
		-- pattern
		{ "P94|pattern=$1: il nome del file è $1", "Malmö fulla vapen.svg: il nome del file è Malmö fulla vapen.svg" },
		-- pattern + value
		{ "P94|Test.png|pattern=$1: il nome del file è $1", "Test.png: il nome del file è Test.png" },
		-- pattern con utilizzo di %
		{ "P94|simbolo %20|pattern=test: $1", "test: simbolo %20" },
		-- pattern con più statement
		{ "P47|pattern=($1)", "([[Burlöv]]), ([[Staffanstorp (comune)|Staffanstorp]]), ([[Svedala (comune)|Svedala]]), ([[Vellinge (comune)|Vellinge]]), (Copenaghen), ([[Tårnby]]), ([[Dragør]]), ([[Solrød]]), ([[Greve (Danimarca)|Greve]]) e ([[Kävlinge (comune)|Kävlinge]])" },
		-- list
		{ "P94|list=1", "<ul><li>Malmö fulla vapen.svg</li></ul>" },
		{ "P47|list=1", "<ul><li>[[Burlöv]]</li><li>[[Staffanstorp (comune)|Staffanstorp]]</li><li>[[Svedala (comune)|Svedala]]</li><li>[[Vellinge (comune)|Vellinge]]</li><li>Copenaghen</li><li>[[Tårnby]]</li><li>[[Dragør]]</li><li>[[Solrød]]</li><li>[[Greve (Danimarca)|Greve]]</li><li>[[Kävlinge (comune)|Kävlinge]]</li></ul>" },
		{ "P94|list=1|rank=deprecated", "" },
		-- orderedlist
		{ "P94|orderedlist=1", "<ol><li>Malmö fulla vapen.svg</li></ol>" },
		{ "P94|orderedlist=1|rank=deprecated", "" },
		-- coord=latitude
		{ "P625|coord=latitude", "55.583333333333" },
		-- coord=longitude
		{ "P625|coord=longitude", "13.033333333333" },
		-- coord=globe
		{ "P625|coord=globe", "http://www.wikidata.org/entity/Q2" },
		-- formatting=raw con type wikibase-entityid 
		{ "P36|formatting=raw", "Q2211" },
		-- showprop
		{ "P17|showprop=P298", "SWE" }
})
end

function p:test_wikidata_language()
	self:preprocess_equals_many("{{Wikidata/Sandbox|from=Q30|", "}}", {
		{ "P1813|includelang=en", "USA" },
		{ "P1813|includelang=en,pt", "USA e EUA" },
		{ "P1813|excludelang=en,sr,ro,ru,ka", "EUA e USA" }
	})
end

function p:test_wikidata_time()
	self:preprocess_equals_many("{{Wikidata/Sandbox|from=Q38|", "}}", {
		{ "P571", "2 giugno 1946" },
		{ "P571|time=year", "1946" },
		{ "P571|time=month", "giugno" },
		{ "P571|time=day", "2" },
		{ "P571|time=precision", "11" },
		{ "P571|time=calendarmodel", "http://www.wikidata.org/entity/Q1985727" },
		{ "P571|formatting=raw", "+1946-06-02T00:00:00Z" }
	})
end

function p:test_wikidata_qualifiervalue()
	self:preprocess_equals_many("{{Wikidata/Sandbox|from=Q38|", "}}", {
		-- qualifier + qualifiervalue (item)
		{ "P47|qualifier=P805|qualifiervalue=Q1991288", "[[Francia]]" }
	})
end

function p:test_wikidata_showqualifiers()
	self:preprocess_equals_many("{{Wikidata/Sandbox|from=Q38|", "}}", {
		{ "P38|showqualifiers=P580|rank=normal", "[[Lira italiana|lira italiana]] (2 giugno 1946)" },
		-- qualifier multipli
		{ "P38|showqualifiers=P580,P582|rank=normal", "[[Lira italiana|lira italiana]] (2 giugno 1946, 28 febbraio 2002)" },
		-- qualifier non esistenti
		{ "P38|showqualifiers=P580x,P582x|rank=normal", "[[Lira italiana|lira italiana]]" }
	})
end

function p:test_wikidata_getQualifier()
	self:preprocess_equals_many("{{WikidataQ/Sandbox|from=Q503361|", "}}", {
		-- qualifier non esistente => ""
		{ "P131|P1", "" },
		-- value
		{ "P131|P582|test", "test" },
		-- datavalue.type=time
		{ "P131|P580", "1º gennaio 2007" },
		{ "P131|P582|rank=normal", "31 dicembre 2006" },
		-- datavalue.type=time e formatting=raw
		{ "P131|P580|formatting=raw", "+2007-01-01T00:00:00Z" },
		-- datavalue.type=time e time=precision
		{ "P131|P580|time=precision", "11" },
		-- datavalue.type=time e time=calendarmodel
		{ "P131|P580|time=calendarmodel", "http://www.wikidata.org/entity/Q1985727" },
		-- pattern
		{ "P131|P582|rank=normal|pattern=($1)", "(31 dicembre 2006)" }
	})
end

function p:test_wikidata_indexOf()
	self:preprocess_equals_many("{{WikidataIdx/Sandbox|from=Q503361|", "}}", {
		{ "P47|Q186662", "1" },
		{ "P47|Q504609", "2" },
		{ "P47|Q515706", "3" },
		-- valore non esistente
		{ "P47|test", "-1" },
		-- proprietà non esistente
		{ "P1|Q186662", "-1" },
	})
end

function p:test_wikidata_N()
	self:preprocess_equals_many("{{WikidataN/Sandbox|from=Q503361|", "}}", {
		{ "P1", "0" },
		{ "P94", "1" },
		{ "P131", "1" },
		{ "P47", "10" },
		-- selezione per rank e qualifier
		{ "P131|rank=normal", "1" },
		{ "P190|qualifier=P580|qualifiervalue=1990", "1" }
	})
end

function p:test_wikidata_getLabel()
	self:preprocess_equals_many("{{WikidataLabel/Sandbox|", "}}", {
		-- property
		{ "P17", "paese" },
		-- item
		{ "Q503361", "Malmö" }
	})
end

function p:test_wikidata_getLink()
	self:preprocess_equals_many("{{WikidataLink/Sandbox|", "}}", {
		-- sitelink e label => [[sitelink|label]]
		{ "Q503361", "[[Malmö (comune)|Malmö]]" },
		-- solo sitelink => [[sitelink]]
		-- { "", "" },
		-- solo label => label
		{ "Q504125", "Copenaghen" },
		-- senza label e sitelink => label en
		{ "Q20031746", "Ketchapp" }
	})
end

function p:test_wikidata_getDatatype()
	self:preprocess_equals_many("{{WikidataTipo/Sandbox|", "}}", {
		{ "P10", "file multimediale su Commons" },
		{ "P625", "coordinate geografiche" },
		{ "P1448", "testo monolingua" },
		{ "P1082", "quantità" },
		{ "P229", "stringa" },
		{ "P569", "data e ora" },
		{ "P856", "URL" },
		{ "P214", "identificatore esterno" },
		{ "P17", "elemento" },
		{ "P1646", "proprietà" },
		{ "P2534", "espressione matematica" }
	})
end

function p:test_wikidata_instanceOf()
	self:preprocess_equals_many("{{WikidataIstanza/Sandbox|from=Q503361|", "}}", {
		{ "Q127448", "1" },
		{ "Q747074", "" }
	})
end

function p:test_wikidata_extlink()
	self:preprocess_equals_many("{{Wikidata/Sandbox|from=Q8038|extlink=1|", "}}", {
		{ "P856", "[https://www.gimp.org www.gimp.org]" },
		{ "P856|http://www.mediawiki.org", "[http://www.mediawiki.org www.mediawiki.org]" },
		{ "P856|test", "test" },
		{ "P856|[http://www.mediawiki.org test]", "[http://www.mediawiki.org test]" }
	})
end

function p:test_wikidata_convert()
	self:preprocess_equals_many("{{Wikidata/Sandbox|", "}}", {
		-- lunghezza
		{ "from=Q12418|P2049|unit=millimetro", "530" },
		{ "from=Q12418|P2049|unit=centimetro", "53" },
		{ "from=Q12418|P2049|unit=piede", "1.738845144357" },
		{ "from=Q12418|P2049|unit=iarda", "0.57961504811899" },
		{ "from=Q12418|P2049|unit=metro", "0.53" },
		{ "from=Q12418|P2049|unit=chilometro", "0.00053" },
		{ "from=Q12418|P2049|unit=miglio", "0.00032932673188579" },
		{ "from=Q12418|P2049|unit=miglio nautico", "0.00028617710583153" },
		-- area
		{ "from=Q643|P2053|unit=metro quadrato", "74000000000" },
		{ "from=Q643|P2053|unit=chilometro quadrato", "74000" },
		{ "from=Q643|P2053|unit=miglio quadro", "28571.559732141" },
		-- solo showunit (simbolo unità ottenuto da Wikidata)
		{ "from=Q12418|P2049|showunit=1", "53 cm" },
		-- solo showunit e gradi d'arco (non utilizza lo spazio)
		{ "from=Q2|P2248|showunit=1", "114.20783°" },
		-- unit + showunit (simbolo unità ottenuto dal modulo Conversione)
		{ "from=Q12418|P2049|unit=centimetro|showunit=1", "53 cm" },
		-- showunitlink
		{ "from=Q12418|P2049|showunit=1|showunitlink=1", "53 [[Centimetro|cm]]" },
		{ "from=Q12418|P2049|unit=centimetro|showunit=1|showunitlink=1", "53 [[metro|cm]]" },
		-- formatduration
		{ "from=Q111|P2147|formatduration=1", "1 giorno, 37 minuti e 22 secondi" },
	})
end

function p:test_wikidata_formatnum()
	self:preprocess_equals_many("{{Wikidata/Sandbox|formatnum=1|", "}}", {
		-- dal modulo stesso
		{ "from=Q643|P2053", "74\194\160000" },
		{ "from=Q5830|P2050", "79,8" },
		-- dal modulo stesso con simbolo unità di misura
		{ "from=Q5830|P2050|showunit=1", "79,8 m" },		
		-- tramite il modulo:Conversione
		{ "from=Q5830|P2050|unit=cm", "7\194\160980" },
		{ "from=Q5830|P2050|unit=km", "0,0798" },
	})
end

function p:test_wikidata_rounding()
	self:preprocess_equals_many("{{Wikidata/Sandbox|formatnum=1|", "}}", {
		-- dal modulo stesso
		{ "from=Q3710|P2370|rounding=0", "0" },
		{ "from=Q3710|P2370|rounding=1", "0,3" },
		{ "from=Q3710|P2370|rounding=2", "0,3" },
		{ "from=Q3710|P2370|rounding=3", "0,305" },
		{ "from=Q3710|P2370|rounding=4", "0,3048" },
		-- dal modulo stesso con simbolo unità di misura
		{ "from=Q3710|P2370|rounding=0|showunit=1", "0 m" },
		{ "from=Q3710|P2370|rounding=1|showunit=1", "0,3 m" },
		{ "from=Q3710|P2370|rounding=2|showunit=1", "0,3 m" },
		{ "from=Q3710|P2370|rounding=3|showunit=1", "0,305 m" },
		{ "from=Q3710|P2370|rounding=4|showunit=1", "0,3048 m" },
		-- tramite il modulo:Conversione
		{ "from=Q3710|P2370|rounding=0|unit=cm", "30" },
		{ "from=Q3710|P2370|rounding=1|unit=cm", "30,5" },
		{ "from=Q3710|P2370|rounding=2|unit=cm", "30,48" }
	})
end

return p