Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Ancient Greek/typing/testcases

From Wikipedia, the free encyclopedia
local tests = require("Module:UnitTests")
local tag = mw.text.tag
local decompose = mw.ustring.toNFD
local Latin_to_Greek = require("Module:Ancient Greek/typing").to_Greek

local function tag_Greek(text)
	return tag("span", { lang = "grc" }, text)
end

local function code(text)
	return tag("code", nil, text)
end

local options = { display = tag_Greek, show_difference = true }
function tests:check(example, expected)
	self:equals(code(example),
		decompose(Latin_to_Greek(example)),
		decompose(expected),
		options)
end

function tests:test()
	local examples = {
		{ "a__i", "ᾱͅ" },
		{ "a)lhqh/s", "ἀληθής" },
		{ "a)lhqhs*", "ἀληθησ" },
		{ "a)lhqhs-", "ἀληθησ-" },
		{ "a^)nh/r", "ᾰ̓νήρ" },
		{ "Phlhi+a/dhs", "Πηληϊάδης" },
		{ "Phlhi^+a^/dhs", "Πηληῐ̈ᾰ́δης" },
		{ "Πηληϊ^ά^δης", "Πηληῐ̈ᾰ́δης" },
		{ "e)a_/n", "ἐᾱ́ν" },
		{ "ἐά_ν", "ἐᾱ́ν" },
		{ "pa=sa^", "πᾶσᾰ" },
		{ "u_(mei=s", "ῡ̔μεῖς" },
		{ "a/)^ner", "ᾰ̓́νερ" },
		{ "a/^)ner", "ᾰ̓́νερ" },
		{ "a)/^ner", "ᾰ̓́νερ" },
		{ "a)^/ner", "ᾰ̓́νερ" },
		{ "dai+/frwn", "δαΐφρων" },
		{ "dai/+frwn", "δαΐφρων" },
	}
	
	self:iterate(examples, "check")
end

return tests