Module:Size/testcases
Lua
CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules
2 tests failed.
Name | Expected | Actual | |
---|---|---|---|
![]() |
test_metadata | mass: 163.4 ct [[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Edit this at Wikidata|link=https://www.wikidata.org/wiki/Q29727315#P2067|Edit this at Wikidata]] | mass: 163.4 ct [[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Edit this at Wikidata|link=d:Q29727315#P2067|Edit this at Wikidata]] |
![]() |
test_outer | ||
![]() |
test_size_from_wikidata | ||
![]() |
test_size_with_dimension_names | ||
![]() |
test_size_with_precission | ||
![]() |
test_size_without_dimension_names | 0.8×8×80厘米 | 0.8×8×80厘米 |
Code
local TUT = mw.title.new(mw.getCurrentFrame():getTitle()).basePageTitle -- the title under test
local p = require(TUT.prefixedText)-- the module to be tested
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
function suite:test_size_without_dimension_names()
self:assertEquals( '0,8 × 8 м', p._size_old({0.8, 8}, 'm', nil, 'ru'))
local dims = {0.8, 8, 80}
self:assertEquals( '0.8 × 8 × 80 cm (0.3 × 3.1 × 31.4 in)', p._size_old(dims,'cm', nil, 'en'))
self:assertEquals( '0.8 × 8 × 80 in (2 × 20.3 × 203.2 cm)', p._size_old(dims,'in', nil, 'en'))
self:assertEquals( '0,8 × 8 × 80 фут (24,3 × 243,8 × 2438,4 см)', p._size_old(dims,'ft', nil, 'ru'))
self:assertEquals( '0,8 × 8 × 80 stóp (24,3 × 243,8 × 2438,4 cm)', p._size_old(dims,'ft', nil, 'pl'))
self:assertEquals( '0.8×8×80厘米', p._size_old(dims,'cm', nil, 'zh-hans'))
self:assertEquals( '0.8 × 8 × 80 in (2 × 20.3 × 203.2 cm)', p._size_old({'0.8', '8', '80'}, 'in', nil, 'en'))
self:assertEquals( '0.8 × 8 × 80 in (2 × 20.3 × 203.2 cm)', p._size_old({'0,8', '8', '80'}, 'in', nil, 'en'))
local dims = {1001, 1034}
self:assertEquals( '1.001 × 1.034 mm', p._size_old(dims,'mm', nil, 'de'))
self:assertEquals( '1001 × 1034 mm', p._size_old(dims,'mm', nil, 'pl'))
self:assertEquals( '1,001 × 1,034 mm (39.40 × 40.70 in)', p._size_old(dims,'mm', nil, 'en'))
-- self:assertEquals( '', p._size_old(dims,'', nil, 'en'))
end
function suite:test_size_with_precission()
local dims = {0.33333, 3.3333, 33.333}
self:assertEquals( '0,3 × 3,3 × 33,3 cm', p._size_old(dims,'cm', 1, 'de'))
self:assertEquals( '0,33 × 3,33 × 33,33 cm', p._size_old(dims,'cm', 2, 'de'))
self:assertEquals( '0,333 × 3,333 × 33,333 cm', p._size_old(dims,'cm', 3, 'de'))
end
function suite:test_size_with_dimension_names()
local prec = nil
self:assertEquals( 'wysokość: 8 stóp (243,8 cm); szerokość: 0,8 stóp (24,3 cm)', p._size({width=0.8, height=8, tagqs=false}, 'ft', prec, 'pl'))
self:assertEquals( 'Höhe: 1.234 mm; Breite: 1.000 mm', p._size({width=1000, height=1234, tagqs=false}, 'mm', prec, 'de'))
local dims = {width=0.8, height=8, length=11, thickness=11, diameter=133, tagqs=false}
local str = 'length: 11 m (12 yd); height: 8 m (26.2 ft); width: 0.8 m (31.4 in); thickness: 11 m (12 yd); diameter: 133 m (145.4 yd)'
self:assertEquals( str, p._size(dims, 'm', prec, 'en'))
local str = 'długość: 11 m; wysokość: 8 m; szerokość: 0,8 m; grubość: 11 m; średnica: 133 m'
self:assertEquals( str, p._size(dims, 'm', prec, 'pl'))
local str = '长度:11m;高度:8m;宽度:0.8m;厚度:11m;直径:133m'
-- self:assertEquals( str, p._size(dims, 'm', prec, 'zh-hans'))
end
function suite:test_size_from_wikidata()
local prec, lang = nil, 'en'
self:assertEquals('height: 426 cm (13.9 ft); width: 987 cm (10.7 yd)', p._size({wikidata='Q2636368', noicon=true, tagqs=false}, '', prec, lang))
self:assertEquals('height: 77 cm (30.3 in); width: 53 cm (20.8 in)', p._size({wikidata='Q12418', noicon=true, tagqs=false}, '', prec, lang))
self:assertEquals('diameter: 9.7 cm (3.8 in); mass: 184.7 g (6.5 oz)', p._size({wikidata='Q27783250', noicon=true, tagqs=false}, '', prec, lang))
self:assertEquals('mass: 163.4 ct', p._size({wikidata='Q29727315', noicon=true, tagqs=false}, '', prec, lang))
end
function suite:test_outer()
local mod = '{{#invoke:' .. TUT.text .. '|size| '
self:assertSameResult( mod..'1000|1234|lang=de}}', '')
self:assertSameResult( mod..'cm|0.8|8|80|lang=en}}', '0.8 × 8 × 80 cm (0.3 × 3.1 × 31.4 in)')
self:assertSameResult( '{{#invoke:Size/sandbox|size|cm|0.8|8|80|lang=en}}', '0.8 × 8 × 80 cm (0.3 × 3.1 × 31.4 in)')
self:assertSameResult( mod..'units=mm|width=1000|height=1234|lang=de|tagQS=false}}', 'Höhe: 1.234 mm; Breite: 1.000 mm')
self:assertSameResult( mod..'units=ft|width=0.8|height=8|lang=pl|tagQS=false}}', 'wysokość: 8 stóp (243,8 cm); szerokość: 0,8 stóp (24,3 cm)')
end
function suite:test_metadata()
local frame = mw.getCurrentFrame()
local mod = '{{#invoke:' .. TUT.text .. '|size| '
-- QuickStatements codes
local text = 'Höhe: 1.234 mm; Breite: 1.000 mm<div style="display: none;">dimensions QS:P2048,1234U174789</div><div style="display: none;">dimensions QS:P2049,1000U174789</div>'
local code = frame:preprocess( mod..'units=mm|width=1000|height=1234|lang=de}}' )
self:assertEquals( string.gsub(code, "[\r\n]", ""), text) -- strip end-of-line characters as they mess up the comparison
text = 'wysokość: 8 stóp (243,8 cm); szerokość: 0,8 stóp (24,3 cm)<div style="display: none;">dimensions QS:P2048,8U3710</div><div style="display: none;">dimensions QS:P2049,0.8U3710</div>'
local code = frame:preprocess( mod..'units=ft|width=0.8|height=8|lang=pl|tagQS=true}}' )
self:assertEquals( string.gsub(code, "[\r\n]", ""), text) -- strip end-of-line characters as they mess up the comparison
-- wikidata icon
text = "mass: 163.4 ct [[File:OOjs UI icon edit-ltr-progressive.svg |frameless |text-top |10px |alt=Edit this at Wikidata|link=https://www.wikidata.org/wiki/Q29727315#P2067|Edit this at Wikidata]]"
self:assertSameResult( mod..'wikidata=Q29727315|lang=en|tagQS=false}}', text)
end
return suite