Difference between revisions of "Module:TaxonItalics/testcases"

From blackwiki
Jump to navigation Jump to search
blackwiki>Erutuon
(hybrid genus)
blackwiki>Erutuon
(changed hybrid and malformed example to reflect what module actually does; HTML character references for multiplication sign)
Line 30: Line 30:
 
{ "A. e. subvar. ericoides", "''A. e.'' subvar. ''ericoides''" },
 
{ "A. e. subvar. ericoides", "''A. e.'' subvar. ''ericoides''" },
 
"Hybrid symbol",
 
"Hybrid symbol",
{ "Fragaria × ananassa", "''Fragaria'' × ''ananassa''" },
+
{
{ "× Sorbopyrus", "× ''Sorbopyrus''" },
+
"Fragaria × ananassa",
{ "× Sorbopyrus auricularis", "× ''Sorbopyrus auricularis''" },
+
[[''Fragaria <span style="font-style:normal;">×</span> ananassa'']]
 +
},
 +
{
 +
"Fragaria &times; ananassa",
 +
[[''Fragaria <span style="font-style:normal;">×</span> ananassa'']]
 +
},
 +
{
 +
"Fragaria &#215; ananassa",
 +
[[''Fragaria <span style="font-style:normal;">×</span> ananassa'']]
 +
},
 +
{
 +
"× Sorbopyrus",
 +
[[''<span style="font-style:normal;">×</span> Sorbopyrus'']]
 +
},
 +
{
 +
"× Sorbopyrus auricularis",
 +
[[''<span style="font-style:normal;">×</span> Sorbopyrus auricularis'']]
 +
},
 
"Already italicized",
 
"Already italicized",
 
{ "''Pinus'' subsp. ''Pinus''", "''Pinus'' subsp. ''Pinus''" },
 
{ "''Pinus'' subsp. ''Pinus''", "''Pinus'' subsp. ''Pinus''" },
Line 44: Line 61:
 
{
 
{
 
"Fragaria vesca subsp. vesca f. semperflorens",
 
"Fragaria vesca subsp. vesca f. semperflorens",
"Fragaria vesca subsp. vesca f. semperflorens"
+
"''Fragaria vesca subsp. vesca f. semperflorens''"
 
},
 
},
 
}
 
}

Revision as of 21:00, 18 August 2018

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

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 = {
		"Below genus",
		{ "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''" },
		{ "Banksia subser. Banksia", "''Banksia'' subser. ''Banksia''" },
		{ "Banksia subseries Banksia", "''Banksia'' subser. ''Banksia''" },
		"Below species",
		{ "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 <span style="font-style:normal;">×</span> ananassa'']]
		},
		{
			"Fragaria &times; ananassa",
			[[''Fragaria <span style="font-style:normal;">×</span> ananassa'']]
		},
		{
			"Fragaria &#215; ananassa",
			[[''Fragaria <span style="font-style:normal;">×</span> ananassa'']]
		},
		{
			"× Sorbopyrus",
			[[''<span style="font-style:normal;">×</span> Sorbopyrus'']]
		},
		{
			"× Sorbopyrus auricularis",
			[[''<span style="font-style:normal;">×</span> Sorbopyrus auricularis'']]
		},
		"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