Module:Wd/testcases

From blackwiki
< Module:Wd
Revision as of 09:54, 9 November 2019 by blackwiki>Thayts
Jump to navigation Jump to search

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

--  Unit tests for [[Module:Wd]]. Click talk page to run tests.
local p = require('Module:UnitTests')
local wd = require('Module:Wd')
local wdib = require('Module:WikidataIB')

function p:test_live()
	self:preprocess_equals('{{#invoke:wd|property|Q55|P395}}', wdib._getValue{'P395',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd|property|P395}}', '')
	self:preprocess_equals('{{#invoke:wd|property|eid=Q55|P395}}', wdib._getValue{'P395',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd|property|edit|Q55|P395}}', wdib._getValue{'P395',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'} .. '&nbsp;[[File:OOjs UI icon edit-ltr-progressive.svg|frameless|text-top|10px|alt=Edit this on Wikidata|link=https://www.wikidata.org/wiki/Q55?uselang=en#P395|Edit this on Wikidata]]')
	self:preprocess_equals('{{#invoke:wd|property|edit@end|Q55|P395}}', wdib._getValue{'P395',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'} .. '<span style="float:right">[[File:OOjs UI icon edit-ltr-progressive.svg|frameless|text-top|10px|alt=Edit this on Wikidata|link=https://www.wikidata.org/wiki/Q55?uselang=en#P395|Edit this on Wikidata]]</span>')
	self:preprocess_equals('{{#invoke:wd|property|normal+|Q55|P1082}}', wdib._getValue{'P1082',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd|properties|normal+|Q55|P1082}}', table.concat({wdib._getValue{'P1082',qid='Q55',noicon='true',osd='no',rank='p',fwd='ALL'}, wdib._getValue{'P1082',qid='Q55',noicon='true',osd='no',rank='n',fwd='ALL'}}, ', '))
	self:preprocess_equals('{{#invoke:wd|properties|qualifier|normal+|Q55|P1082|P585|format=%p[ (%q)][%s][%r]}}', table.concat({wdib._getValue{'P1082',qid='Q55',qual='P585',noicon='true',osd='no',df='dmy',rank='p',fwd='ALL'}, wdib._getValue{'P1082',qid='Q55',qual='P585',noicon='true',osd='no',df='dmy',rank='n',fwd='ALL'}}, ', '))
	self:preprocess_equals('{{#invoke:wd|property|Q55|P1082}}', wdib._getValue{'P1082',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd|property|Q55|P1082|punc=.}}', wdib._getValue{'P1082',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}..'.')
	self:preprocess_equals('{{#invoke:wd|qualifier|normal+|Q55|P1082|P585}}', table.concat({wdib._getValue{'P1082',qid='Q55',qual='P585',qo='true',sep='; ',noicon='true',osd='no',df='dmy',rank='p',fwd='ALL'}, wdib._getValue{'P1082',qid='Q55',qual='P585',qo='true',sep='; ',noicon='true',osd='no',df='dmy',rank='n',fwd='ALL'}}, '; '))
	self:preprocess_equals('{{#invoke:wd|qualifier|normal+|single|Q55|P1082|P585}}', wdib._getValue{'P1082',qid='Q55',qual='P585',qo='true',noicon='true',osd='no',df='dmy',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd|qualifier|normal+|single|mdy|Q55|P1082|P585}}', wdib._getValue{'P1082',qid='Q55',qual='P585',qo='true',noicon='true',osd='no',df='mdy',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd|properties|normal+|Q55|P1081|punc=,}}', ({mw.ustring.gsub(table.concat({wdib._getValue{'P1081',qid='Q55',noicon='true',osd='no',rank='p',fwd='ALL'}, wdib._getValue{'P1081',qid='Q55',noicon='true',osd='no',rank='n',fwd='ALL'}}, ', ')..',', '([.]%d%d),', '%10,')})[1])
	self:preprocess_equals('{{#invoke:wd|properties|normal+|sourced|Q55|P1081|punc=,}}', ({mw.ustring.gsub(table.concat({wdib._getValue{'P1081',qid='Q55',noicon='true',rank='p',fwd='ALL'}, wdib._getValue{'P1081',qid='Q55',noicon='true',rank='n',fwd='ALL'}}, ', ')..',', '([.]%d%d),', '%10,')})[1])
	self:preprocess_equals('{{#invoke:wd|qualifier|Q55|P2855|P518}}', ({string.gsub(wdib._getValue{'P2855',qid='Q55',qual='P518',qo='true',linked='false',noicon='true',osd='no',fwd='ALL'}, '^([^,]+).*$', '%1', 1)})[1])
	self:preprocess_equals('{{#invoke:wd|qualifiers|Q55|P2855|P518}}', wdib._getValue{'P2855',qid='Q55',qual='P518',qo='true',linked='false',noicon='true',osd='no',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd|properties|qualifiers|Q55|P2855|P518|format=%p[ (%q)][%s][%r]}}', ({string.gsub(wdib._getValue{'P2855',qid='Q55',qual='P518',linked='false',noicon='true',osd='no',fwd='ALL'}, ' percent', '%%')})[1])
	self:preprocess_equals('{{#invoke:wd|properties|qualifiers|Q55|P2855|P518|sep=_+_|sep%s=|sep%q=_/_|format=%p[ (%q)][%s][%r]}}', ({string.gsub(wdib._getValue{'P2855',qid='Q55',qual='P518',sep='" + "',qsep='" / "',linked='false',noicon='true',osd='no',fwd='ALL'}, ' percent', '%%')})[1])
	self:preprocess_equals('{{#invoke:wd|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582|format=%p[ (%q)][%s][%r]}}', table.concat({wdib._getValue{'P35',qid='Q55',qual='P580,P582',qsep='"; "',linked='false',noicon='true',osd='no',df='dmy',rank='p',fwd='ALL'}, wdib._getValue{'P35',qid='Q55',qual='P580,P582',qsep='"; "',linked='false',noicon='true',osd='no',df='dmy',rank='n',fwd='ALL'}}, ', '))
	self:preprocess_equals('{{#invoke:wd|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582|sep%q=_–_|format=%p[ (%q)][%s][%r]}}', table.concat({wdib._getValue{'P35',qid='Q55',qual='P580,P582',qsep='" – "',linked='false',noicon='true',osd='no',df='dmy',rank='p',fwd='ALL'}, wdib._getValue{'P35',qid='Q55',qual='P580,P582',qsep='" – "',linked='false',noicon='true',osd='no',df='dmy',rank='n',fwd='ALL'}}, ', '))
	self:preprocess_equals('{{#invoke:wd|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582|format=%p[ (%q1[ – %q2])][%s][%r]}}', table.concat({wdib._getValue{'P35',qid='Q55',qual='P580,P582',qsep='" – "',linked='false',noicon='true',osd='no',df='dmy',rank='p',fwd='ALL'}, wdib._getValue{'P35',qid='Q55',qual='P580,P582',qsep='" – "',linked='false',noicon='true',osd='no',df='dmy',rank='n',fwd='ALL'}}, ', '))
	self:preprocess_equals('{{#invoke:wd|properties|qualifier|raw|qualifier|normal+|Q55|P35|Q29574|P580|P582|format=%p[ (%q1[ – %q2])][%s][%r]}}', 'Beatrix of the Netherlands (1980-04-30 – 30 April 2013)')
	self:preprocess_equals('{{#invoke:wd|properties|qualifiers|normal+|current|Q55|P38|P518|format=%p[ (%q)][%s][%r]}}', ({string.gsub(({string.gsub(table.concat({wdib._getValue{'P38',qid='Q55',qual='P518',linked='false',noicon='true',osd='no',rank='p',fwd='ALL'}, wdib._getValue{'P38',qid='Q55',qual='P518',linked='false',noicon='true',osd='no',rank='n',fwd='ALL'}}, ', '), 'Dutch guilder[^,]*', '', 1)})[1], ', ,', ',', 1)})[1])
	self:preprocess_equals('{{#invoke:wd|properties|linked|normal+|Q55|P38|format=%p[ (%q)][%s][%r]}}', ({string.gsub(table.concat({wdib._getValue{'P38',qid='Q55',noicon='true',osd='no',rank='p',fwd='ALL'}, wdib._getValue{'P38',qid='Q55',noicon='true',osd='no',rank='n',fwd='ALL'}}, ', '), '([^|]+)|%1', '%1')})[1])
	self:preprocess_equals('{{#invoke:wd|properties|linked|short|normal+|Q55|P38|format=%p[ (%q)][%s][%r]}}', ({string.gsub(table.concat({wdib._getValue{'P38',qid='Q55',sn='true',noicon='true',osd='no',rank='p',fwd='ALL'}, wdib._getValue{'P38',qid='Q55',sn='true',noicon='true',osd='no',rank='n',fwd='ALL'}}, ', '), '([^|]+)|%1', '%1')})[1])
	self:preprocess_equals('{{#invoke:wd|qualifiers|normal+|current|Q55|P38|Q4917|P518}}', wdib.getQualifierValue{args={'P38',qid='Q55',qual='P518',pval='Q4917',linked='false',noicon='true',osd='no',fwd='ALL'}})
	self:preprocess_equals('{{#invoke:wd|properties|normal+|current|Q55|P38|P518=Q27561}}', wdib.getValueByQual{args={'P38',qid='Q55',qualID='P518',qvalue='Q27561',linked='false',noicon='true',osd='no',fwd='ALL'}})
	self:preprocess_equals('{{#invoke:wd|properties|normal+|former|Q55|P38}}', 'Dutch guilder')
	self:preprocess_equals('{{#invoke:wd|properties|raw|normal+|former|Q55|P38}}', 'Q788472')
	self:preprocess_equals('{{#invoke:wd|properties|raw|linked|normal+|former|Q55|P38}}', '[[d:Q788472|Q788472]]')
	self:preprocess_equals('{{#invoke:wd|property|Q55|P1549}}', wdib._getValue{'P1549',qid='Q55',noicon='true',osd='no',rank='best',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd|property|multilanguage|Q55|P1549|P407=Q36846}}', wdib.getValueByQual{args={'P1549',qid='Q55',qualID='P407',qvalue='Q36846',noicon='true',osd='no',fwd='ALL'}})
	self:preprocess_equals('{{#invoke:wd|property|Q55|P2884}}', wdib._getValue{'P2884',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd|property|raw|Q55|P2884}}', wdib._getValue{'P2884',qid='Q55',su='false',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd|property|unit|Q55|P2884}}', ({string.gsub(wdib._getValue{'P2884',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, '^[^ ]+ (.+)$', '%1', 1)})[1])
	self:preprocess_equals('{{#invoke:wd|property|unit|linked|Q55|P2884}}', '[[' .. ({string.gsub(({string.gsub(wdib._getValue{'P2884',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, '^[^ ]+ (.+)$', '%1|%1', 1)})[1], '^.', string.upper, 1)})[1] .. ']]')
	self:preprocess_equals('{{#invoke:wd|property|unit|raw|Q55|P2884}}', 'Q25250')
	self:preprocess_equals('{{#invoke:wd|property|Q55|P625}}', ({string.gsub(({string.gsub(({string.gsub(wdib._getValue{'P625',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, "′", "'", 2)})[1], '″', '"', 2)})[1], ' ', ', ', 1)})[1])
	self:preprocess_equals('{{#invoke:wd|property|linked|Q55|P625}}', '[https://tools.wmflabs.org/geohack/geohack.php?language=en&params=' ..  ({mw.ustring.gsub(wdib._getValue{'P625',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, '[°′″ ]', '_')})[1] .. '_globe:earth ' .. ({string.gsub(({string.gsub(({string.gsub(wdib._getValue{'P625',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, "′", "'", 2)})[1], '″', '"', 2)})[1], ' ', ', ', 1)})[1] .. ']')
	self:preprocess_equals('{{#invoke:wd|property|raw|Q55|P625}}', ({mw.ustring.gsub(wdib._getValue{'P625',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, '[°′″ ]', '/')})[1])
	self:preprocess_equals('{{#invoke:wd|property|Q55|coord}}', ({string.gsub(({string.gsub(({string.gsub(wdib._getValue{'P625',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, "′", "'", 2)})[1], '″', '"', 2)})[1], ' ', ', ', 1)})[1])
	self:preprocess_equals('{{#invoke:wd|property|linked|Q55|P41}}', '[[c:File:' .. wdib._getValue{'P41',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'} .. '|' .. wdib._getValue{'P41',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'} .. ']]')
	self:preprocess_equals('{{#invoke:wd|property|raw|Q55|P41}}', wdib._getValue{'P41',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd|property|raw|Q915684|P2534}}', '\\frac{n^2 - 1}{n^2 + 2} = \\frac{4 \\pi}{3} N \\alpha')
	self:preprocess_equals('{{#invoke:wd|property|linked|Q6256|P3896}}', '[[c:' .. mw.getCurrentFrame():callParserFunction{name='#property:P3896',args={from='Q6256'}} .. '|' .. mw.getCurrentFrame():callParserFunction{name='#property:P3896',args={from='Q6256'}} .. ']]')
	self:preprocess_equals('{{#invoke:wd|label|Q4917}}', wdib.getLabel{args={'Q4917'}})
	self:preprocess_equals('{{#invoke:wd|label|linked|Q4917}}', ({string.gsub(wdib.getLink{args={'Q4917'}}, ':([^|]+)|%1', '%1', 1)})[1])
	self:preprocess_equals('{{#invoke:wd|label|P38}}', wdib.getLabel{args={'P38'}})
	self:preprocess_equals('{{#invoke:wd|label|linked|P38}}', '[[d:Property:P38|' .. wdib.getLabel{args={'P38'}} .. ']]')
	self:preprocess_equals('{{#invoke:wd|label|Q776}}', wdib.getLabel{args={'Q776'}})
	self:preprocess_equals('{{#invoke:wd|label|linked|Q776}}', ({string.gsub(wdib.getLink{args={'Q776'}}, '%[%[:', '[[', 1)})[1])
	self:preprocess_equals('{{#invoke:wd|label}}', '')
	self:preprocess_equals('{{#invoke:wd|label|raw}}', '')
	self:preprocess_equals('{{#invoke:wd|title|Q776}}', wdib.getSiteLink{args={qid='Q776'}})
	self:preprocess_equals('{{#invoke:wd|title|linked|Q776}}', '[[' .. wdib.getSiteLink{args={qid='Q776'}} .. ']]')
	self:preprocess_equals('{{#invoke:wd|title}}', '')
	self:preprocess_equals('{{#invoke:wd|description|Q55}}', wdib.getDescription{args={qid='Q55','wikidata'}})
	self:preprocess_equals('{{#invoke:wd|description}}', '')
	self:preprocess_equals('{{#invoke:wd|alias|Q55}}', ({string.gsub(wdib.getAliases{args={qid='Q55',noicon='true',fwd='ALL'}}, '^([^,]+).*$', '%1', 1)})[1])
	self:preprocess_equals('{{#invoke:wd|aliases|Q55}}', wdib.getAliases{args={qid='Q55',noicon='true',fwd='ALL'}})
	self:preprocess_equals('{{#invoke:wd|alias|linked|Q55}}', '[[' .. wdib.getSiteLink{args={qid='Q55'}} .. '|' .. ({string.gsub(wdib.getAliases{args={qid='Q55',noicon='true',fwd='ALL'}}, '^([^,]+).*$', '%1', 1)})[1] .. ']]')
	self:preprocess_equals('{{#invoke:wd|alias}}', '')
	self:preprocess_equals('{{#invoke:wd|badges|Q2}}', 'featured article')
	self:preprocess_equals('{{#invoke:wd|badges|raw|Q2}}', 'Q17437796')
	self:preprocess_equals('{{#invoke:wd|badges}}', '')
end

function p:test_sandbox()
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q55|P395}}', wdib._getValue{'P395',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|P395}}', '')
	self:preprocess_equals('{{#invoke:wd/sandbox|property|eid=Q55|P395}}', wdib._getValue{'P395',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|edit|Q55|P395}}', wdib._getValue{'P395',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'} .. '&nbsp;[[File:OOjs UI icon edit-ltr-progressive.svg|frameless|text-top|10px|alt=Edit this on Wikidata|link=https://www.wikidata.org/wiki/Q55?uselang=en#P395|Edit this on Wikidata]]')
	self:preprocess_equals('{{#invoke:wd/sandbox|property|edit@end|Q55|P395}}', wdib._getValue{'P395',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'} .. '<span style="float:right">[[File:OOjs UI icon edit-ltr-progressive.svg|frameless|text-top|10px|alt=Edit this on Wikidata|link=https://www.wikidata.org/wiki/Q55?uselang=en#P395|Edit this on Wikidata]]</span>')
	self:preprocess_equals('{{#invoke:wd/sandbox|property|normal+|Q55|P1082}}', wdib._getValue{'P1082',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|normal+|Q55|P1082}}', table.concat({wdib._getValue{'P1082',qid='Q55',noicon='true',osd='no',rank='p',fwd='ALL'}, wdib._getValue{'P1082',qid='Q55',noicon='true',osd='no',rank='n',fwd='ALL'}}, ', '))
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifier|normal+|Q55|P1082|P585|format=%p[ (%q)][%s][%r]}}', table.concat({wdib._getValue{'P1082',qid='Q55',qual='P585',noicon='true',osd='no',df='dmy',rank='p',fwd='ALL'}, wdib._getValue{'P1082',qid='Q55',qual='P585',noicon='true',osd='no',df='dmy',rank='n',fwd='ALL'}}, ', '))
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q55|P1082}}', wdib._getValue{'P1082',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q55|P1082|punc=.}}', wdib._getValue{'P1082',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}..'.')
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifier|normal+|Q55|P1082|P585}}', table.concat({wdib._getValue{'P1082',qid='Q55',qual='P585',qo='true',sep='; ',noicon='true',osd='no',df='dmy',rank='p',fwd='ALL'}, wdib._getValue{'P1082',qid='Q55',qual='P585',qo='true',sep='; ',noicon='true',osd='no',df='dmy',rank='n',fwd='ALL'}}, '; '))
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifier|normal+|single|Q55|P1082|P585}}', wdib._getValue{'P1082',qid='Q55',qual='P585',qo='true',noicon='true',osd='no',df='dmy',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifier|normal+|single|mdy|Q55|P1082|P585}}', wdib._getValue{'P1082',qid='Q55',qual='P585',qo='true',noicon='true',osd='no',df='mdy',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|normal+|Q55|P1081|punc=,}}', ({mw.ustring.gsub(table.concat({wdib._getValue{'P1081',qid='Q55',noicon='true',osd='no',rank='p',fwd='ALL'}, wdib._getValue{'P1081',qid='Q55',noicon='true',osd='no',rank='n',fwd='ALL'}}, ', ')..',', '([.]%d%d),', '%10,')})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|normal+|sourced|Q55|P1081|punc=,}}', ({mw.ustring.gsub(table.concat({wdib._getValue{'P1081',qid='Q55',noicon='true',rank='p',fwd='ALL'}, wdib._getValue{'P1081',qid='Q55',noicon='true',rank='n',fwd='ALL'}}, ', ')..',', '([.]%d%d),', '%10,')})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifier|Q55|P2855|P518}}', ({string.gsub(wdib._getValue{'P2855',qid='Q55',qual='P518',qo='true',linked='false',noicon='true',osd='no',fwd='ALL'}, '^([^,]+).*$', '%1', 1)})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifiers|Q55|P2855|P518}}', wdib._getValue{'P2855',qid='Q55',qual='P518',qo='true',linked='false',noicon='true',osd='no',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifiers|Q55|P2855|P518|format=%p[ (%q)][%s][%r]}}', ({string.gsub(wdib._getValue{'P2855',qid='Q55',qual='P518',linked='false',noicon='true',osd='no',fwd='ALL'}, ' percent', '%%')})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifiers|Q55|P2855|P518|sep=_+_|sep%s=|sep%q=_/_|format=%p[ (%q)][%s][%r]}}', ({string.gsub(wdib._getValue{'P2855',qid='Q55',qual='P518',sep='" + "',qsep='" / "',linked='false',noicon='true',osd='no',fwd='ALL'}, ' percent', '%%')})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582|format=%p[ (%q)][%s][%r]}}', table.concat({wdib._getValue{'P35',qid='Q55',qual='P580,P582',qsep='"; "',linked='false',noicon='true',osd='no',df='dmy',rank='p',fwd='ALL'}, wdib._getValue{'P35',qid='Q55',qual='P580,P582',qsep='"; "',linked='false',noicon='true',osd='no',df='dmy',rank='n',fwd='ALL'}}, ', '))
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582|sep%q=_–_|format=%p[ (%q)][%s][%r]}}', table.concat({wdib._getValue{'P35',qid='Q55',qual='P580,P582',qsep='" – "',linked='false',noicon='true',osd='no',df='dmy',rank='p',fwd='ALL'}, wdib._getValue{'P35',qid='Q55',qual='P580,P582',qsep='" – "',linked='false',noicon='true',osd='no',df='dmy',rank='n',fwd='ALL'}}, ', '))
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582|format=%p[ (%q1[ – %q2])][%s][%r]}}', table.concat({wdib._getValue{'P35',qid='Q55',qual='P580,P582',qsep='" – "',linked='false',noicon='true',osd='no',df='dmy',rank='p',fwd='ALL'}, wdib._getValue{'P35',qid='Q55',qual='P580,P582',qsep='" – "',linked='false',noicon='true',osd='no',df='dmy',rank='n',fwd='ALL'}}, ', '))
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifier|raw|qualifier|normal+|Q55|P35|Q29574|P580|P582|format=%p[ (%q1[ – %q2])][%s][%r]}}', 'Beatrix of the Netherlands (1980-04-30 – 30 April 2013)')
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifiers|normal+|current|Q55|P38|P518|format=%p[ (%q)][%s][%r]}}', ({string.gsub(({string.gsub(table.concat({wdib._getValue{'P38',qid='Q55',qual='P518',linked='false',noicon='true',osd='no',rank='p',fwd='ALL'}, wdib._getValue{'P38',qid='Q55',qual='P518',linked='false',noicon='true',osd='no',rank='n',fwd='ALL'}}, ', '), 'Dutch guilder[^,]*', '', 1)})[1], ', ,', ',', 1)})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|linked|normal+|Q55|P38|format=%p[ (%q)][%s][%r]}}', ({string.gsub(table.concat({wdib._getValue{'P38',qid='Q55',noicon='true',osd='no',rank='p',fwd='ALL'}, wdib._getValue{'P38',qid='Q55',noicon='true',osd='no',rank='n',fwd='ALL'}}, ', '), '([^|]+)|%1', '%1')})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|linked|short|normal+|Q55|P38|format=%p[ (%q)][%s][%r]}}', ({string.gsub(table.concat({wdib._getValue{'P38',qid='Q55',sn='true',noicon='true',osd='no',rank='p',fwd='ALL'}, wdib._getValue{'P38',qid='Q55',sn='true',noicon='true',osd='no',rank='n',fwd='ALL'}}, ', '), '([^|]+)|%1', '%1')})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifiers|normal+|current|Q55|P38|Q4917|P518}}', wdib.getQualifierValue{args={'P38',qid='Q55',qual='P518',pval='Q4917',linked='false',noicon='true',osd='no',fwd='ALL'}})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|normal+|current|Q55|P38|P518=Q27561}}', wdib.getValueByQual{args={'P38',qid='Q55',qualID='P518',qvalue='Q27561',linked='false',noicon='true',osd='no',fwd='ALL'}})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|normal+|former|Q55|P38}}', 'Dutch guilder')
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|raw|normal+|former|Q55|P38}}', 'Q788472')
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|raw|linked|normal+|former|Q55|P38}}', '[[d:Q788472|Q788472]]')
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q55|P1549}}', wdib._getValue{'P1549',qid='Q55',noicon='true',osd='no',rank='best',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|multilanguage|Q55|P1549|P407=Q36846}}', wdib.getValueByQual{args={'P1549',qid='Q55',qualID='P407',qvalue='Q36846',noicon='true',osd='no',fwd='ALL'}})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q55|P2884}}', wdib._getValue{'P2884',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|raw|Q55|P2884}}', wdib._getValue{'P2884',qid='Q55',su='false',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|unit|Q55|P2884}}', ({string.gsub(wdib._getValue{'P2884',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, '^[^ ]+ (.+)$', '%1', 1)})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|property|unit|linked|Q55|P2884}}', '[[' .. ({string.gsub(({string.gsub(wdib._getValue{'P2884',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, '^[^ ]+ (.+)$', '%1|%1', 1)})[1], '^.', string.upper, 1)})[1] .. ']]')
	self:preprocess_equals('{{#invoke:wd/sandbox|property|unit|raw|Q55|P2884}}', 'Q25250')
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q55|P625}}', ({string.gsub(({string.gsub(({string.gsub(wdib._getValue{'P625',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, "′", "'", 2)})[1], '″', '"', 2)})[1], ' ', ', ', 1)})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|property|linked|Q55|P625}}', '[https://tools.wmflabs.org/geohack/geohack.php?language=en&params=' ..  ({mw.ustring.gsub(wdib._getValue{'P625',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, '[°′″ ]', '_')})[1] .. '_globe:earth ' .. ({string.gsub(({string.gsub(({string.gsub(wdib._getValue{'P625',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, "′", "'", 2)})[1], '″', '"', 2)})[1], ' ', ', ', 1)})[1] .. ']')
	self:preprocess_equals('{{#invoke:wd/sandbox|property|raw|Q55|P625}}', ({mw.ustring.gsub(wdib._getValue{'P625',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, '[°′″ ]', '/')})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q55|coord}}', ({string.gsub(({string.gsub(({string.gsub(wdib._getValue{'P625',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'}, "′", "'", 2)})[1], '″', '"', 2)})[1], ' ', ', ', 1)})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|property|linked|Q55|P41}}', '[[c:File:' .. wdib._getValue{'P41',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'} .. '|' .. wdib._getValue{'P41',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'} .. ']]')
	self:preprocess_equals('{{#invoke:wd/sandbox|property|raw|Q55|P41}}', wdib._getValue{'P41',qid='Q55',noicon='true',osd='no',rank='best',maxvals='1',fwd='ALL'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|raw|Q915684|P2534}}', '\\frac{n^2 - 1}{n^2 + 2} = \\frac{4 \\pi}{3} N \\alpha')
	self:preprocess_equals('{{#invoke:wd/sandbox|property|linked|Q6256|P3896}}', '[[c:' .. mw.getCurrentFrame():callParserFunction{name='#property:P3896',args={from='Q6256'}} .. '|' .. mw.getCurrentFrame():callParserFunction{name='#property:P3896',args={from='Q6256'}} .. ']]')
	self:preprocess_equals('{{#invoke:wd/sandbox|label|Q4917}}', wdib.getLabel{args={'Q4917'}})
	self:preprocess_equals('{{#invoke:wd/sandbox|label|linked|Q4917}}', ({string.gsub(wdib.getLink{args={'Q4917'}}, ':([^|]+)|%1', '%1', 1)})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|label|P38}}', wdib.getLabel{args={'P38'}})
	self:preprocess_equals('{{#invoke:wd/sandbox|label|linked|P38}}', '[[d:Property:P38|' .. wdib.getLabel{args={'P38'}} .. ']]')
	self:preprocess_equals('{{#invoke:wd/sandbox|label|Q776}}', wdib.getLabel{args={'Q776'}})
	self:preprocess_equals('{{#invoke:wd/sandbox|label|linked|Q776}}', ({string.gsub(wdib.getLink{args={'Q776'}}, '%[%[:', '[[', 1)})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|label}}', '')
	self:preprocess_equals('{{#invoke:wd/sandbox|label|raw}}', '')
	self:preprocess_equals('{{#invoke:wd/sandbox|title|Q776}}', wdib.getSiteLink{args={qid='Q776'}})
	self:preprocess_equals('{{#invoke:wd/sandbox|title|linked|Q776}}', '[[' .. wdib.getSiteLink{args={qid='Q776'}} .. ']]')
	self:preprocess_equals('{{#invoke:wd/sandbox|title}}', '')
	self:preprocess_equals('{{#invoke:wd/sandbox|description|Q55}}', wdib.getDescription{args={qid='Q55','wikidata'}})
	self:preprocess_equals('{{#invoke:wd/sandbox|description}}', '')
	self:preprocess_equals('{{#invoke:wd/sandbox|alias|Q55}}', ({string.gsub(wdib.getAliases{args={qid='Q55',noicon='true',fwd='ALL'}}, '^([^,]+).*$', '%1', 1)})[1])
	self:preprocess_equals('{{#invoke:wd/sandbox|aliases|Q55}}', wdib.getAliases{args={qid='Q55',noicon='true',fwd='ALL'}})
	self:preprocess_equals('{{#invoke:wd/sandbox|alias|linked|Q55}}', '[[' .. wdib.getSiteLink{args={qid='Q55'}} .. '|' .. ({string.gsub(wdib.getAliases{args={qid='Q55',noicon='true',fwd='ALL'}}, '^([^,]+).*$', '%1', 1)})[1] .. ']]')
	self:preprocess_equals('{{#invoke:wd/sandbox|alias}}', '')
	self:preprocess_equals('{{#invoke:wd/sandbox|badges|Q2}}', 'featured article')
	self:preprocess_equals('{{#invoke:wd/sandbox|badges|raw|Q2}}', 'Q17437796')
	self:preprocess_equals('{{#invoke:wd/sandbox|badges}}', '')
end

function p:test_sandbox_vs_live()
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q55|P395}}', wd._property{'Q55','P395'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|P395}}', '')
	self:preprocess_equals('{{#invoke:wd/sandbox|property|eid=Q55|P395}}', wd._property{eid='Q55','P395'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|edit|Q55|P395}}', wd._property{'edit','Q55','P395'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|edit@end|Q55|P395}}', wd._property{'edit@end','Q55','P395'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|normal+|Q55|P1082}}', wd._property{'normal+','Q55','P1082'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|normal+|Q55|P1082}}', wd._properties{'normal+','Q55','P1082'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifier|normal+|Q55|P1082|P585}}', wd._properties{'qualifier','normal+','Q55','P1082','P585'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifier|references|normal+|Q55|P1082|P585}}', wd._properties{'qualifier','references','normal+','Q55','P1082','P585'})
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifier|normal+|Q55|P1082|P585}}', wd._qualifier{'normal+','Q55','P1082','P585'})
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifier|normal+|single|Q55|P1082|P585}}', wd._qualifier{'normal+','single','Q55','P1082','P585'})
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifier|Q55|P1082|16829289|P585}}', wd._qualifier{'Q55','P1082','16829289','P585'})
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifier|mdy|Q55|P1082|16829289|P585}}', wd._qualifier{'mdy','Q55','P1082','16829289','P585'})
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifier|raw|Q55|P1082|16829289|P585}}', wd._qualifier{'raw','Q55','P1082','16829289','P585'})
	self:preprocess_equals('{{#invoke:wd/sandbox|references|Q55|P1082|16829289}}', wd._references{'Q55','P1082','16829289'})
	self:preprocess_equals('{{#invoke:wd/sandbox|references|raw|Q55|P1082|16829289}}', wd._references{'raw','Q55','P1082','16829289'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|references|normal+|Q55|P1081}}', wd._properties{'references','normal+','Q55','P1081'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|references|normal+|sourced|Q55|P1081}}', wd._properties{'references','normal+','sourced','Q55','P1081'})
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifier|Q55|P2855|P518}}', wd._qualifier{'Q55','P2855','P518'})
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifiers|Q55|P2855|P518}}', wd._qualifiers{'Q55','P2855','P518'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifiers|Q55|P2855|P518}}', wd._properties{'qualifiers','Q55','P2855','P518'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifiers|Q55|P2855|P518|sep=_+_|sep%s=|sep%q=_/_}}', wd._properties{'qualifiers','Q55','P2855','P518',sep='_+_',['sep%s']='',['sep%q']='_/_'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582}}', wd._properties{'qualifier','qualifier','normal+','Q55','P35','P580','P582'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582|sep%q=_–_}}', wd._properties{'qualifier','qualifier','normal+','Q55','P35','P580','P582',['sep%q']='_–_'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582|format=%p[ <span style="font-size:85\\%">(%q1[ – %q2])</span>][%s][%r]}}', wd._properties{'qualifier','qualifier','normal+','Q55','P35','P580','P582',format='%p[ <span style="font-size:85\\%">(%q1[ – %q2])</span>][%s][%r]'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifier|qualifier|normal+|Q55|P35|P580|P582|format=%p[ <span style="font-size:85\\%">([<![]--%q2]since [%q2--[]>]%q1[ – %q2])</span>][%s][%r]}}', wd._properties{'qualifier','qualifier','normal+','Q55','P35','P580','P582',format='%p[ <span style="font-size:85\\%">([<![]--%q2]since [%q2--[]>]%q1[ – %q2])</span>][%s][%r]'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifier|raw|qualifier|normal+|Q55|P35|Q29574|P580|P582|format=%p[ <span style="font-size:85\\%">(%q1[ – %q2])</span>][%s][%r]}}', wd._properties{'qualifier','raw','qualifier','normal+','Q55','P35','Q29574','P580','P582',format='%p[ <span style="font-size:85\\%">(%q1[ – %q2])</span>][%s][%r]'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifiers|normal+|current|Q55|P38|P518}}', wd._properties{'qualifiers','normal+','current','Q55','P38','P518'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|linked|qualifiers|normal+|current|Q55|P38|P518}}', wd._properties{'linked','qualifiers','normal+','current','Q55','P38','P518'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|qualifiers|linked|normal+|current|Q55|P38|P518}}', wd._properties{'qualifiers','linked','normal+','current','Q55','P38','P518'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|linked|short|qualifiers|linked|normal+|current|Q55|P38|P518}}', wd._properties{'linked','short','qualifiers','linked','normal+','current','Q55','P38','P518'})
	self:preprocess_equals('{{#invoke:wd/sandbox|qualifiers|normal+|current|Q55|P38|Q4917|P518}}', wd._qualifiers{'normal+','current','Q55','P38','Q4917','P518'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|normal+|current|Q55|P38|P518=Q27561}}', wd._properties{'normal+','current','Q55','P38',P518='Q27561'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|normal+|former|Q55|P38}}', wd._properties{'normal+','former','Q55','P38'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|raw|normal+|former|Q55|P38}}', wd._properties{'raw','normal+','former','Q55','P38'})
	self:preprocess_equals('{{#invoke:wd/sandbox|properties|raw|linked|normal+|former|Q55|P38}}', wd._properties{'raw','linked','normal+','former','Q55','P38'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q55|P1549}}', wd._property{'Q55','P1549'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|multilanguage|Q55|P1549|P407=Q36846}}', wd._property{'multilanguage','Q55','P1549',P407='Q36846'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q55|P2884}}', wd._property{'Q55','P2884'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|linked|Q55|P2884}}', wd._property{'linked','Q55','P2884'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|raw|Q55|P2884}}', wd._property{'raw','Q55','P2884'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|unit|Q55|P2884}}', wd._property{'unit','Q55','P2884'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|unit|raw|Q55|P2884}}', wd._property{'unit','raw','Q55','P2884'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q55|P625}}', wd._property{'Q55','P625'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|linked|Q55|P625}}', wd._property{'linked','Q55','P625'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|raw|Q55|P625}}', wd._property{'raw','Q55','P625'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q55|coord}}', wd._property{'Q55','coord'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|linked|Q55|P41}}', wd._property{'linked','Q55','P41'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|raw|Q55|P41|format=\\[\\[File:%p {{!}} thumb {{!}} left\\]\\]}}', wd._property{'raw','Q55','P41',format='\\[\\[File:%p {{!}} thumb {{!}} left\\]\\]'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|Q915684|P2534}}', wd._property{'Q915684','P2534'})
	self:preprocess_equals('{{#invoke:wd/sandbox|property|linked|Q6256|P3896}}', wd._property{'linked','Q6256','P3896'})
	self:preprocess_equals('{{#invoke:wd/sandbox|label|Q4917}}', wd._label{'Q4917'})
	self:preprocess_equals('{{#invoke:wd/sandbox|label|short|linked|Q4917}}', wd._label{'short','linked','Q4917'})
	self:preprocess_equals('{{#invoke:wd/sandbox|label|P38}}', wd._label{'P38'})
	self:preprocess_equals('{{#invoke:wd/sandbox|label|linked|P38}}', wd._label{'linked','P38'})
	self:preprocess_equals('{{#invoke:wd/sandbox|label|Q776}}', wd._label{'Q776'})
	self:preprocess_equals('{{#invoke:wd/sandbox|label|linked|Q776}}', wd._label{'linked','Q776'})
	self:preprocess_equals('{{#invoke:wd/sandbox|label}}', '')
	self:preprocess_equals('{{#invoke:wd/sandbox|label|raw}}', '')
	self:preprocess_equals('{{#invoke:wd/sandbox|title|Q776}}', wd._title{'Q776'})
	self:preprocess_equals('{{#invoke:wd/sandbox|title|linked|Q776}}', wd._title{'linked','Q776'})
	self:preprocess_equals('{{#invoke:wd/sandbox|title}}', '')
	self:preprocess_equals('{{#invoke:wd/sandbox|description|Q55}}', wd._description{'Q55'})
	self:preprocess_equals('{{#invoke:wd/sandbox|description}}', '')
	self:preprocess_equals('{{#invoke:wd/sandbox|alias|Q55}}', wd._alias{'Q55'})
	self:preprocess_equals('{{#invoke:wd/sandbox|aliases|Q55}}', wd._aliases{'Q55'})
	self:preprocess_equals('{{#invoke:wd/sandbox|alias|linked|Q55}}', wd._alias{'linked','Q55'})
	self:preprocess_equals('{{#invoke:wd/sandbox|alias}}', '')
	self:preprocess_equals('{{#invoke:wd/sandbox|badges|Q2}}', wd._badges{'Q2'})
	self:preprocess_equals('{{#invoke:wd/sandbox|badges|raw|Q2}}', wd._badges{'raw','Q2'})
	self:preprocess_equals('{{#invoke:wd/sandbox|badges}}', '')
end

return p