Module:EFloras/testcases

From Wikipedia, the free encyclopedia
local p = require("Module:UnitTests")
local eFloras = require "Module:eFloras"

function p:test_italicize()
	local examples = {
		{ "Symphyotrichum novae-angliae", "<i>Symphyotrichum novae-angliae</i>" },
		{ "Mummenhoffia alliaceae", "<i>Mummenhoffia alliaceae</i>" },
		{ "Rubus aliceae", "<i>Rubus aliceae</i>" },
		{ "Cypripedium reginae", "<i>Cypripedium reginae</i>" },
		{ "Aster ericoides var. ericoides", "<i>Aster ericoides</i> var. <i>ericoides</i>" },
		{
			"Fragaria vesca subsp. vesca f. semperflorens",
			"<i>Fragaria vesca</i> subsp. <i>vesca</i> f. <i>semperflorens</i>"
		},
		{ "Fragaria × ananassa", "<i>Fragaria</i> × <i>ananassa</i>" },
		{ "Populus sect. Tacamahaca", "<i>Populus</i> sect. <i>Tacamahaca</i>" },
		{ "Populus Sect. Tacamahaca", "<i>Populus</i> Sect. <i>Tacamahaca</i>" },
		{ "Rosaceae", "Rosaceae" },
		{ "Fumarioideae", "Fumarioideae" },
		{ "Astereae", "Astereae" },
		{ "Asterinae", "Asterinae" },
		"Ignores italics and bolding",
		{
			"Fragaria vesca'' subsp. ''vesca'' f. ''semperflorens",
			"<i>Fragaria vesca</i> subsp. <i>vesca</i> f. <i>semperflorens</i>"
		},
		{
			"'''''Fragaria vesca'' subsp. ''vesca'' f. ''semperflorens'''''",
			"<i>Fragaria vesca</i> subsp. <i>vesca</i> f. <i>semperflorens</i>"
		},
		"Returns unparsable input unchanged",
		{ "Fragaria vesca L.", "Fragaria vesca L." },
		{ "''Cypripedium reginae'' Walter", "''Cypripedium reginae'' Walter" },
		{
			"''Cypripedium parviflorum'' Salisb. var. ''pubescens'' (Willd.) Knight",
			"''Cypripedium parviflorum'' Salisb. var. ''pubescens'' (Willd.) Knight"
		},
		{ "Prunus virginiana L. 1753 not DuRoi 1771", "Prunus virginiana L. 1753 not DuRoi 1771" },
		{ "{{{1}}}", "{{{1}}}" },
		{ "Blah blah!! @x?* edf", "Blah blah!! @x?* edf" },
	}
	
	local options -- = { nowiki = true }
	
	self:iterate(
		examples,
		function (self, input, expected)
			self:equals(input, eFloras.italicize(input), expected, options)
		end)
end

return p