Module:Statement/testcases

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
Lua
CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules

Documentation for this module may be created at Module:Statement/testcases/doc

Code

local statementModule = require( 'Module:Statement' )
local ScribuntoUnit = require( 'Module:ScribuntoUnit' )
local suite = ScribuntoUnit:new()

local somevalueReturn = function() end
local novalueReturn = function() end

function suite:testMainStringXhosa()
	local wikitext, hasOther, string = statementModule.string( 'M2314827', 'P898' )
	self:assertEquals( '[ᵏǁʰóːsa]', wikitext )
	self:assertEquals( false, hasOther )
	self:assertEquals( '[ᵏǁʰóːsa]', string )
end

function suite:testMainStringXhosaFromFullEntity()
	local entity = mw.wikibase.getEntity( 'M2314827' )
	local wikitext, hasOther, string = statementModule.string( entity, 'P898' )
	self:assertEquals( '[ᵏǁʰóːsa]', wikitext )
	self:assertEquals( false, hasOther )
	self:assertEquals( '[ᵏǁʰóːsa]', string )
end

function suite:testMainUrl()
	local url, hasOther = statementModule.url( 'M85023113', 'P973' )
	self:assertEquals( 'https://lib.digitalnc.org/record/35438', url )
	self:assertEquals( false, hasOther )
end

function suite:testMainEntityIdBi()
	local entityId, hasOther, entityType = statementModule.entityId( 'M80857538', 'P180' )
	self:assertEquals( 'Q1426529', entityId )
	self:assertEquals( true, hasOther )
	self:assertEquals( 'item', entityType )
end

function suite:testMainEntityIdBiFromWikidata()
	local entityId, hasOther, entityType = statementModule.entityId( 'Q1426529', 'P1268' )
	self:assertEquals( 'Q43200', entityId )
	self:assertEquals( false, hasOther )
	self:assertEquals( 'item', entityType )
end

function suite:testMainEntityIdSomevalue()
	local entityId, hasOther, entityType = statementModule.entityId( 'M89928027', 'P170', somevalueReturn, novalueReturn )
	self:assertEquals( somevalueReturn, entityId )
	self:assertEquals( false, hasOther )
	self:assertEquals( nil, entityType )
end

function suite:testMainEntityIdNovalue()
	local entityId, hasOther, entityType = statementModule.entityId( 'M323610', 'P180', somevalueReturn, novalueReturn )
	self:assertEquals( novalueReturn, entityId )
	self:assertEquals( false, hasOther )
	self:assertEquals( nil, entityType )
end

function suite:testMainMonolingualTextBr()
	local wikitext, hasOther, text, language = statementModule.monolingualText( 'M106910810', 'P9533' )
	self:assertEquals( '<span lang="br" dir="ltr">c&#39;hoari</span>', wikitext )
	self:assertEquals( false, hasOther )
	self:assertEquals( "c'hoari", text )
	self:assertEquals( 'br', language:getCode() )
end

function suite:testMainMonolingualTextHe()
	local wikitext, hasOther, text, language = statementModule.monolingualText( 'M110839429', 'P9533' )
	self:assertEquals( '<span lang="he" dir="rtl">שלום</span>', wikitext )
	self:assertEquals( false, hasOther )
	self:assertEquals( 'שלום', text )
	self:assertEquals( 'he', language:getCode() )
end

function suite:testMainTimeInception()
	local timestamp, hasOther, precision, calendar = statementModule.time( 'M38570', 'P571' )
	self:assertEquals( '+2004-01-02T00:00:00Z', timestamp )
	self:assertEquals( false, hasOther )
	self:assertEquals( 11, precision )
	self:assertEquals( 'Q1985727', calendar )
end

function suite:testMainDateDay()
	local date, hasOther, precision, calendar, timestamp = statementModule.date( 'M38570', 'P571' )
	self:assertEquals( '2004-01-02', date )
	self:assertEquals( false, hasOther )
	self:assertEquals( 11, precision )
	self:assertEquals( 'Q1985727', calendar )
	self:assertEquals( '+2004-01-02T00:00:00Z', timestamp )
end

function suite:testMainDateMonth()
	local date, hasOther, precision, calendar, timestamp = statementModule.date( 'M17811375', 'P571' )
	self:assertEquals( '1972-04', date )
	self:assertEquals( false, hasOther )
	self:assertEquals( 10, precision )
	self:assertEquals( 'Q1985727', calendar )
	self:assertEquals( '+1972-04-24T00:00:00Z', timestamp )
end

function suite:testMainDateYear()
	local date, hasOther, precision, calendar, timestamp = statementModule.date( 'M7342752', 'P571' )
	self:assertEquals( '1814', date )
	self:assertEquals( false, hasOther )
	self:assertEquals( 9, precision )
	self:assertEquals( 'Q1985727', calendar )
	self:assertEquals( '+1814-01-01T00:00:00Z', timestamp )
end

function suite:testMainDateDecade()
	local date, hasOther, precision, calendar, timestamp = statementModule.date( 'M6366343', 'P571' )
	self:assertEquals( '1727', date )
	self:assertEquals( false, hasOther )
	self:assertEquals( 8, precision )
	self:assertEquals( 'Q1985727', calendar )
	self:assertEquals( '+1727-00-00T00:00:00Z', timestamp )
end

function suite:testQualStringWikimediaUsername()
	local wikitext, hasOtherStatement, hasOtherQualifier, string = statementModule.stringQualifier( 'M573277', 'P170', 'P4174' )
	self:assertEquals( 'Can&#39;t sleep, clown will eat me', wikitext )
	self:assertEquals( false, hasOtherStatement )
	self:assertEquals( false, hasOtherQualifier )
	self:assertEquals( "Can't sleep, clown will eat me", string )
end

function suite:testQualUrl()
	local url, hasOtherStatement, hasOtherQualifier = statementModule.urlQualifier( 'M79977121', 'P170', 'P2699' )
	self:assertEquals( 'https://www.flickr.com/people/24662369@N07', url )
	self:assertEquals( false, hasOtherStatement )
	self:assertEquals( false, hasOtherQualifier )
end

function suite:testQualEntityIdPhotographer()
	local entityId, hasOtherStatement, hasOtherQualifier, entityType = statementModule.entityIdQualifier( 'M80857538', 'P170', 'P3831' )
	self:assertEquals( 'Q33231', entityId )
	self:assertEquals( false, hasOtherStatement )
	self:assertEquals( false, hasOtherQualifier )
	self:assertEquals( 'item', entityType )
end

function suite:testQualMonolingualTextInscription()
	local wikitext, hasOtherStatement, hasOtherQualifier, text, language = statementModule.monolingualTextQualifier( 'M107006882', 'P180', 'P1684' )
	self:assertEquals( '<span lang="en" dir="ltr">It’s the BI-ble, not the Straight-ble.</span>', wikitext )
	self:assertEquals( false, hasOtherStatement )
	self:assertEquals( false, hasOtherQualifier )
	self:assertEquals( 'It’s the BI-ble, not the Straight-ble.', text )
	self:assertEquals( 'en', language:getCode() )
end

function suite:testQualMonolingualTextInscriptionMultiple()
	local wikitext, hasOtherStatement, hasOtherQualifier, text, language = statementModule.monolingualTextQualifier( 'M440563', 'P180', 'P1684' )
	self:assertEquals( '<span lang="de" dir="ltr">Aurich</span>', wikitext )
	self:assertEquals( false, hasOtherStatement )
	self:assertEquals( true, hasOtherQualifier )
	self:assertEquals( 'Aurich', text )
	self:assertEquals( 'de', language:getCode() )
end

function suite:testQualTimeValuedImage()
	local timestamp, hasOtherStatement, hasOtherQualifier, precision, calendar = statementModule.timeQualifier( 'M38570', 'P6731', 'P580' )
	self:assertEquals( '+2008-07-08T00:00:00Z', timestamp )
	self:assertEquals( false, hasOtherStatement )
	self:assertEquals( false, hasOtherQualifier )
	self:assertEquals( 11, precision )
	self:assertEquals( 'Q1985727', calendar )
end

function suite:testQualDateMonth()
	local date, hasOtherStatement, hasOtherQualifier, precision, calendar, timestamp = statementModule.dateQualifier( 'M97052174', 'P180', 'P585' )
	self:assertEquals( '1925-01', date )
	self:assertEquals( true, hasOtherStatement )
	self:assertEquals( false, hasOtherQualifier )
	self:assertEquals( 10, precision )
	self:assertEquals( 'Q1985727', calendar )
	self:assertEquals( '+1925-01-00T00:00:00Z', timestamp )
end

function suite:testQualDateYear()
	local date, hasOtherStatement, hasOtherQualifier, precision, calendar, timestamp = statementModule.dateQualifier( 'M111087121', 'P180', 'P585' )
	self:assertEquals( '1935', date )
	self:assertEquals( true, hasOtherStatement )
	self:assertEquals( false, hasOtherQualifier )
	self:assertEquals( 9, precision )
	self:assertEquals( 'Q1985727', calendar )
	self:assertEquals( '+1935-00-00T00:00:00Z', timestamp )
end

function suite:testQualDateDecade()
	local date, hasOtherStatement, hasOtherQualifier, precision, calendar, timestamp = statementModule.dateQualifier( 'M91487680', 'P180', 'P585' )
	self:assertEquals( '1410', date )
	self:assertEquals( true, hasOtherStatement )
	self:assertEquals( false, hasOtherQualifier )
	self:assertEquals( 8, precision )
	self:assertEquals( 'Q1985786', calendar )
	self:assertEquals( '+1410-00-00T00:00:00Z', timestamp )
end

function suite:testQualDateBCE()
	local date, hasOtherStatement, hasOtherQualifier, precision, calendar, timestamp = statementModule.dateQualifier( 'M102941076', 'P180', 'P585' )
	self:assertEquals( '-0700', date )
	self:assertEquals( false, hasOtherStatement )
	self:assertEquals( false, hasOtherQualifier )
	self:assertEquals( 8, precision )
	self:assertEquals( 'Q1985786', calendar )
	self:assertEquals( '-0700-00-00T00:00:00Z', timestamp )
end

return suite