Module:TaxonItalics/testcases
Appearance
![]() | This is the test cases page for the module Module:TaxonItalics. Results of the test cases. |
local p = require('Module:UnitTests')
local function clean(input)
local orig = input
local result = input:gsub("''( ?)(.-)( ?)''", "%1''%2''%3")
if orig ~= result then
mw.log(orig, result)
end
return result
end
function p:test_italicizeTaxonName()
local examples = {
{ "Pinus subg. Pinus", "''Pinus'' subg. ''Pinus''" },
{ "Pinus subgenus Pinus", "''Pinus'' subg. ''Pinus''" },
{ "P. subg. Pinus", "''P.'' subg. ''Pinus''" },
{ "Pinus sect. Pinus", "''Pinus'' sect. ''Pinus''" },
{ "Pinus section Pinus", "''Pinus'' sect. ''Pinus''" },
{ "P. sect. Pinus", "''P.'' sect. ''Pinus''" },
{ "Pinus subsect. Pinus", "''Pinus'' subsect. ''Pinus''" },
{ "P. subsect. Pinus", "''P.'' subsect. ''Pinus''" },
{ "Quercus series Virentes", "''Quercus'' ser. ''Virentes''" },
{ "Acer tataricum subsp. ginnala", "''Acer tataricum'' subsp. ''ginnala''" },
{ "Aster ericoides var. ericoides", "''Aster ericoides'' var. ''ericoides''" },
{ "A. ericoides varietas ericoides", "''A. ericoides'' var. ''ericoides''" },
{ "A. e. subvar. ericoides", "''A. e.'' subvar. ''ericoides''" },
"Hybrid symbol",
{ "Fragaria × ananassa", "''Fragaria'' × ''ananassa''" },
"Already italicized",
{ "''Pinus'' subsp. ''Pinus''", "''Pinus'' subsp. ''Pinus''" },
{ "''Pinus sylvestris''", "''Pinus sylvestris''" },
{ "<i>Pinus</i> subsp. <i>Pinus</i>", "''Pinus'' subsp. ''Pinus''" },
{ "<i>Pinus sylvestris</i>", "''Pinus sylvestris''" },
"Easy examples",
{ "Pinus", "''Pinus''" },
{ "Pinus sylvestris", "''Pinus sylvestris''" },
"Incorrect strings",
{
"Fragaria vesca subsp. vesca f. semperflorens",
"Fragaria vesca subsp. vesca f. semperflorens"
},
}
local italicizeTaxonName = require "MOdule:TaxonItalics".italicizeTaxonName
self:iterate(examples,
function (self, input, expected)
self:equals(input, clean(italicizeTaxonName(input)), expected)
end)
end
return p