Module:Complex date/core/testcases
Lua
CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules
3 tests failed.
Name | Expected | Actual | |
---|---|---|---|
![]() |
test_ISOdate | ||
![]() |
test_Roman | ||
![]() |
test_formatnum | ||
![]() |
test_isodate2timestamp | ||
![]() |
test_oneDatePhrase | Lua error -- Module:Complex_date/core:172: attempt to index local 'dateStr' (a nil value) | |
![]() |
test_oneDatePhrase2 | Module:Complex_date/core/testcases:59: Failed to assert that nil equals expected XV век н. э. | |
![]() |
test_oneDateQScode | ||
![]() |
test_translatePhrase | Module:Complex_date/core/testcases:26: Failed to assert that nil equals expected przed part1 | |
![]() |
test_twoDatePhrase | ||
![]() |
test_twoDateQScode |
Code
local TUT = mw.title.new(mw.getCurrentFrame():getTitle()).basePageTitle -- the title under test
local cdate = require(TUT.prefixedText)-- the module to be tested
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
local ISOdate = require('Module:ISOdate')._ISOdate
cdate.init()
local function ISO_date(date1, lang, case)
local a, b = ISOdate(date1, lang, case, '', false)
return a
end
function suite:test_Roman()
local Roman = require('Module:Roman')._Numeral
self:assertSameResult( Roman(123), cdate.Roman(123))
self:assertSameResult( Roman(3456), cdate.Roman(3456))
end
function suite:test_ISOdate()
local date_str = '1999-11'
self:assertEquals( 'listopada 1999', ISO_date(date_str, 'pl', 'gen'))
self:assertEquals( 'listopadzie 1999', ISO_date(date_str, 'pl', 'loc'))
end
function suite:test_translatePhrase()
self:assertEquals( 'przed part1', cdate.translatePhrase('part1', '', 'before', 'pl'))
self:assertEquals( 'part1 and part2', cdate.translatePhrase('part1', 'part2', 'and', 'en'))
self:assertEquals( 'part1 i part2', cdate.translatePhrase('part1', 'part2', 'and', 'pl'))
self:assertEquals( 'custom', cdate.translatePhrase('part1', 'part2', 'and', 'xx'))
self:assertEquals( '', cdate.translatePhrase('part1', 'part2', 'xxx', 'en'))
end
function suite:test_oneDatePhrase()
local date1, date2
date1 = {date='1999-11-11', precision=11}
self:assertEquals( '11 listopada 1999', cdate.oneDatePhrase(date1, 'pl'))
date1 = {date='1999-11-12', adj='after', precision=11}
date2 = {date='1999-11', adj='after', precision=10}
self:assertEquals( 'po 12 listopada 1999', cdate.oneDatePhrase(date1, 'pl'))
self:assertEquals( 'po listopadzie 1999', cdate.oneDatePhrase(date2, 'pl'))
self:assertEquals( 'после 12 ноября 1999', cdate.oneDatePhrase(date1, 'ru'))
self:assertEquals( 'после ноября 1999', cdate.oneDatePhrase(date2, 'ru'))
self:assertEquals( 'after 12 November 1999', cdate.oneDatePhrase(date1, 'en'))
self:assertEquals( 'after November 1999', cdate.oneDatePhrase(date2, 'en'))
date1 = {date='1999-11', precision=10, case='loc'}
self:assertEquals( 'listopadzie 1999', cdate.oneDatePhrase(date1, 'pl'))
date1 = {date='1521', adj='after', precision=9}
self:assertEquals( 'after 1521', cdate.oneDatePhrase(date1, 'en'))
date1 = {date='345', adj='circa', precision=9, era='bc'}
self:assertEquals( 'circa 345 [[w:en:Ante Christum Natum|BC]]', cdate.oneDatePhrase(date1, 'en'))
end
function suite:test_oneDatePhrase2()
local date1 = {date='15', precision=7, era='ad', case='rom'}
self:assertEquals( 'XV век н. э.', cdate.oneDatePhrase(date1, 'ru'))
self:assertEquals( '<span style="color:red">القرن 15 [[w:en:Anno Domini|AD]]</span>', cdate.oneDatePhrase(date1, 'ar'))
-- era can also be added through "adj"
local date1 = {date='15', precision=7, adj='ad', case='rom'}
self:assertEquals( 'XV век н. э.', cdate.oneDatePhrase(date1, 'ru'))
-- case is usually for gramatic case but can also be "rom" for Roman and "ord" for ordinal numeral
-- here we explicitly call case='rom'
local date1 = {date='15', adj='after', precision=7, era='ad', case='rom'}
self:assertEquals( 'dopo il XV sec. d.C.', cdate.oneDatePhrase(date1, 'it'))
-- case is usually for gramatic case but can also be "rom" for Roman and "ord" for ordinal numeral
-- here we explicitly call case='rom'
local date1 = {date='15', adj='after', precision=7, era='ad', case='ord'}
self:assertEquals( 'after 15<sup>th</sup> century [[w:en:Anno Domini|AD]]', cdate.oneDatePhrase(date1, 'en'))
-- we should not need case='rom' as "after"
local date1 = {date='15', adj='after', precision=7, era='ad'}
self:assertEquals( 'dopo il XV sec. d.C.', cdate.oneDatePhrase(date1, 'it'))
end
function suite:test_oneDateQScode()
local date1
date1 = {date='1999-11-12', adj='after', precision=11}
self:assertEquals( '+1999-11-12T00:00:00Z/7,P1319,+1999-11-12T00:00:00Z/11', cdate.oneDateQScode(date1))
date1 = {date='1999-11', adj='before', precision=10}
self:assertEquals( '+1999-11-00T00:00:00Z/7,P1326,+1999-11-00T00:00:00Z/10', cdate.oneDateQScode(date1))
date1 = {date='1495', adj='circa', precision=9}
self:assertEquals( '+1495-00-00T00:00:00Z/9,P1480,Q5727902', cdate.oneDateQScode(date1))
date1 = {date='0300', adj='circa', precision=9, era='bc'}
self:assertEquals( '-0300-00-00T00:00:00Z/9,P1480,Q5727902', cdate.oneDateQScode(date1))
end
function suite:test_twoDateQScode()
end
function suite:test_twoDatePhrase()
end
function suite:test_isodate2timestamp()
self:assertEquals( '+1999-11-12T00:00:00Z/11', cdate.isodate2timestamp('1999-11-12', 11, nil))
self:assertEquals( '+1999-11-00T00:00:00Z/10', cdate.isodate2timestamp('1999-11', 10, nil))
self:assertEquals( '+1999-00-00T00:00:00Z/9', cdate.isodate2timestamp('1999', 9, nil))
self:assertEquals( '+1999-00-00T00:00:00Z/8', cdate.isodate2timestamp('1999', 8, nil))
self:assertEquals( '+1950-00-00T00:00:00Z/7', cdate.isodate2timestamp('20', 7, nil))
self:assertEquals( '+1500-00-00T00:00:00Z/6', cdate.isodate2timestamp('2', 6, nil))
self:assertEquals( '+1950-00-00T00:00:00Z/7', cdate.isodate2timestamp('20', 7, 'ad'))
self:assertEquals( '-1950-00-00T00:00:00Z/7', cdate.isodate2timestamp('20', 7, 'bc'))
self:assertEquals( '-1950-00-00T00:00:00Z/7', cdate.isodate2timestamp('20', 7, 'bp'))
self:assertEquals( '-0300-00-00T00:00:00Z/9', cdate.isodate2timestamp('0300', 9, 'bc'))
end
local function formatnum2(numStr, lang)
return require('Module:Formatnum').formatNum(numStr, lang, 0, true)
end
local function formatnum1(numStr, lang)
return mw.getLanguage(lang):formatNum(tonumber(numStr), { noCommafy = true })
end
function suite:test_formatnum()
self:assertEquals( '1234567890', cdate.formatnum('1234567890', 'en'))
self:assertEquals( '1234567890', formatnum1('1234567890', 'en'))
self:assertEquals( '1234567890', formatnum2('1234567890', 'en'))
self:assertEquals( formatnum2('1234567890', 'en'), cdate.formatnum('1234567890', 'en'))
self:assertEquals( formatnum2('1234567890', 'ar'), cdate.formatnum('1234567890', 'ar'))
self:assertEquals( formatnum2('1234567890', 'bn'), cdate.formatnum('1234567890', 'bn'))
self:assertEquals( formatnum2('1234567890', 'bpy'), cdate.formatnum('1234567890', 'bpy'))
self:assertEquals( formatnum2('1234567890', 'fa'), cdate.formatnum('1234567890', 'fa'))
self:assertEquals( formatnum2('1234567890', 'glk'), cdate.formatnum('1234567890', 'glk'))
self:assertEquals( formatnum2('1234567890', 'mzn'), cdate.formatnum('1234567890', 'mzn'))
self:assertEquals( formatnum2('1234567890', 'ur'), cdate.formatnum('1234567890', 'ur'))
self:assertEquals( formatnum2('1234567890', 'ckb'), cdate.formatnum('1234567890', 'ckb'))
self:assertEquals( formatnum2('1234567890', 'mzn'), cdate.formatnum('1234567890', 'mzn'))
self:assertEquals( formatnum2('1234567890', 'ks'), cdate.formatnum('1234567890', 'ks'))
self:assertEquals( formatnum2('1234567890', 'pa'), cdate.formatnum('1234567890', 'pa'))
self:assertEquals( formatnum2('1234567890', 'kn'), cdate.formatnum('1234567890', 'kn'))
self:assertEquals( formatnum2('1234567890', 'hi'), cdate.formatnum('1234567890', 'hi'))
self:assertEquals( formatnum2('1234567890', 'mr'), cdate.formatnum('1234567890', 'mr'))
self:assertEquals( formatnum2('1234567890', 'new'), cdate.formatnum('1234567890', 'new'))
self:assertEquals( formatnum2('1234567890', 'gu'), cdate.formatnum('1234567890', 'gu'))
self:assertEquals( formatnum2('1234567890', 'lo'), cdate.formatnum('1234567890', 'lo'))
self:assertEquals( formatnum2('1234567890', 'or'), cdate.formatnum('1234567890', 'or'))
self:assertEquals( formatnum2('1234567890', 'bo'), cdate.formatnum('1234567890', 'bo'))
self:assertEquals( formatnum2('1234567890', 'gu'), cdate.formatnum('1234567890', 'gu'))
self:assertEquals( formatnum2('1234567890', 'mn'), cdate.formatnum('1234567890', 'mn'))
self:assertEquals( formatnum2('1234567890', 'ta'), cdate.formatnum('1234567890', 'ta'))
self:assertEquals( formatnum2('1234567890', 'th'), cdate.formatnum('1234567890', 'th'))
self:assertEquals( formatnum2('1234567890', 'te'), cdate.formatnum('1234567890', 'te'))
self:assertEquals( formatnum2('1234567890', 'ml-old'), cdate.formatnum('1234567890', 'ml-old'))
end
return suite