Модуль:WDBase/testcases: различия между версиями
Перейти к навигации
Перейти к поиску
Буквица>D6194c-1cc м исправление |
Karaby (обсуждение | вклад) м 1 версия импортирована |
||
(нет различий)
| |||
Текущая версия от 15:38, 27 июля 2025
Для документации этого модуля может быть создана страница Модуль:WDBase/testcases/doc
local suite = require('Модуль:ScribuntoUnit'):new()
local base = require('Модуль:WDBase')
local saganBook = 'Q2482106'
local secondEntity = 'Q11574'
local minuteEntity = 'Q7727'
local mammalianKidneyEntity = 'Q113996097'
local entityWithOrderedAuthors = 'Q59330138'
local P_AUTHOR = 'P50'
local P_UNIT_SYMBOL = 'P5061'
local P_CONV_TO_SI_UNIT = 'P2370'
local P_PUBLICATION_DATE = 'P577'
function suite:test_statements()
local statements = base.statements(saganBook, P_AUTHOR)
self:assertTrue(table.getn(statements) > 0)
local statements = base.statements(saganBook, 'P1855')
self:assertEquals(nil, statements)
end
function suite:test_dateFromDatavalue()
local statements
local data
statements = base.statements('Q73118986', P_PUBLICATION_DATE)
local datavalue = statements[1].mainsnak.datavalue
local date = base.dateFromDatavalue(datavalue)
self:assertEquals(2000, date.year)
self:assertEquals(11, date.month)
self:assertEquals(01, date.day)
self:assertEquals(nil, date.hour)
self:assertEquals(nil, date.minute)
self:assertEquals(nil, date.second)
end
function suite:test_dataByStatement()
local statements
local data
statements = base.statements(saganBook, P_AUTHOR)
data = base.dataByStatement(statements[1], 'en')
self:assertEquals('table', type(data))
self:assertEquals('Q410', data.entity)
self:assertEquals('Carl Sagan', data.value)
self:assertEquals(nil, data.unitEntity, 'Unit entity for P_AUTHOR is not expected.')
statements = base.statements(secondEntity, P_UNIT_SYMBOL)
self:assertTrue(table.getn(statements) > 1, 'More unit symbols expected.')
data = base.dataByStatement(statements[1], 'ru')
self:assertEquals(nil, data.entity, 'Entity for P_UNIT_SYMBOL is not expected.')
self:assertEquals('с', data.value)
self:assertEquals(nil, data.unitEntity, 'Unit entity for P_UNIT_SYMBOL is not expected.')
statements = base.statements(minuteEntity, P_CONV_TO_SI_UNIT)
self:assertEquals(1, table.getn(statements))
data = base.dataByStatement(statements[1])
self:assertEquals(nil, data.entity, 'Entity for P_CONV_TO_SI_UNIT is not expected.')
self:assertEquals(60, data.value)
self:assertEquals(secondEntity, data.unitEntity)
end
function suite:test_wikilink()
local link
link = base.wikilink(mammalianKidneyEntity)
self:assertEquals(link, '[[Почка млекопитающего]]')
link = base.wikilink(mammalianKidneyEntity, 'Почка')
self:assertEquals(link, '[[Почка млекопитающего|Почка]]')
end
function suite:test_statementsByProperties()
local statements = base.statementsByProperties(entityWithOrderedAuthors, { 'P50', 'P2093' })
self:assertEquals(6, table.getn(statements))
local data
data = base.dataByStatement(statements[4])
self:assertEquals('Q59679212', data.entity)
data = base.dataByStatement(statements[5])
self:assertEquals(nil, data.entity)
self:assertTrue(data.value ~= nil)
data = base.dataByStatement(statements[6])
self:assertEquals('Q38643747', data.entity)
end
function suite:test_text()
local articleEntity = 'Q59330138'
local text = base.text(articleEntity, 'P1476', 'ru')
local lang = base.text(articleEntity, 'P407', 'ru')
self:assertEquals(text, 'Systematic review or scoping review? Guidance for authors when choosing between a systematic or scoping review approach')
self:assertEquals(lang, 'английский язык')
end
function suite:test_value()
local articleEntity = 'Q59330138'
local text = base.value(articleEntity, 'P1476', 'ru')
local lang = base.value(articleEntity, 'P407', 'ru')
self:assertEquals(text, 'Systematic review or scoping review? Guidance for authors when choosing between a systematic or scoping review approach')
self:assertEquals(lang, 'Q1860')
end
function suite:test_tryFilterStatementsByLang()
local englishEntity = 'Q1860'
local statements = base.statements(englishEntity, 'P1813')
self:assertTrue(table.getn(statements) > 1)
local statements = base.tryFilterStatementsByLang(statements, 'ru')
self:assertEquals(1, table.getn(statements))
self:assertEquals('английский', base.textByStatement(statements[1]))
end
function suite:test_tryFilterSnaksByLang()
local englishEntity = 'Q1860'
local statements = base.statements(englishEntity, 'P1813')
self:assertTrue(table.getn(statements) > 1)
local snaks = {}
for i, statement in ipairs(statements) do
snaks[i] = statement.mainsnak
end
local snaks = base.tryFilterSnaksByLang(snaks, 'ru')
self:assertEquals(1, table.getn(snaks))
self:assertEquals('английский', base.valueBySnak(snaks[1]))
end
function suite:test_filterStatementsByUnit()
local encyclopediaEntity = 'Q1768199'
local volumeEntity = 'Q1238720'
local statements = base.statements(encyclopediaEntity, 'P2635')
self:assertEquals(1, table.getn(statements))
statements = base.filterStatementsByUnit(statements, volumeEntity)
self:assertEquals(1, table.getn(statements))
local count, unitEntity = base.valueByStatement(statements[1])
self:assertEquals(35, tonumber(count))
self:assertEquals(volumeEntity, unitEntity)
end
function suite:test_searchStatementByValue()
local englishEntity = 'Q1860'
local statements = base.statements(englishEntity, 'P17')
self:assertTrue(table.getn(statements) > 1)
local statement = base.searchStatementByValue(statements, 'Q30')
self:assertTrue(statement ~= nil)
self:assertEquals('США', base.textByStatement(statement))
end
function suite:test_resolveParent()
local parentEntity = base.resolveParent('Q114676884')
self:assertEquals(saganBook, parentEntity)
parentEntity = base.resolveParent(saganBook)
self:assertEquals(nil, parentEntity)
end
function suite:test_instanceOf()
local editionEntity = 'Q3331189'
local entity = base.instanceOf('Q114676884', 'P31', { 'Q3331189' })
self:assertEquals(editionEntity, entity)
entity = base.instanceOf('Q114676884', 'P31', { 'Q5292', 'Q5293' })
self:assertEquals(nil, entity)
end
return suite