انتقل إلى المحتوى

وحدة:string/isutf8/testcases

من ويكاموس، القاموس الحر
local tests = require("Module:UnitTests")
local isutf8 = require("Module:string/isutf8")

function tests:check_isutf8(str, expected)
	tests:equals(str, isutf8(str), expected)
end

function tests:test_gcd()
	local examples = {
		{"κόσμε", true},
		{"\000", true},
		{" ", true},
		{"\194\128", true},
		{"ࠀ", true},
		{"𐀀", true},
		{"\248\136\128\128\128", false},
		{"\252\132\128\128\128\128", false},
		{"\127", true},
		{"߿", true},
		{"\239\191\191", true},
		{"\247\191\191\191", false},
		{"\251\191\191\191\191", false},
		{"\253\191\191\191\191\191", false},
		{"\237\159\191", true},
		{"\238\128\128", true},
		{"\239\191\189", true},
		{"\244\143\191\191", true},
		{"\244\144\128\128", false},
		{"\128", false},
		{"\191", false},
		{"\128\191", false},
		{"\128\191\128", false},
		{"\128\191\128\191", false},
		{"\128\191\128\191\128", false},
		{"\128\191\128\191\128\191", false},
		{"\128\191\128\191\128\191\128", false},
		{"\128\129\130\131\132\133\134\135\136\137\138\139\140\141\142\143\144\145\146\147\148\149\150\151\152\153\154\155\156\157\158\159\160\161\162\163\164\165\166\167\168\169\170\171\172\173\174\175\176\177\178\179\180\181\182\183\184\185\186\187\188\189\190\191", false},
		{"\192 \193 \194 \195 \196 \197 \198 \199 \200 \201 \202 \203 \204 \205 \206 \207 \208 \209 \210 \211 \212 \213 \214 \215 \216 \217 \218 \219 \220 \221 \222 \223 ", false},
		{"\224 \225 \226 \227 \228 \229 \230 \231 \232 \233 \234 \235 \236 \237 \238 \239 ", false},
		{"\240 \241 \242 \243 \244 \245 \246 \247 ", false},
		{"\248 \249 \250 \251 ", false},
		{"\252 \253 ", false},
		{"\192", false},
		{"\224\128", false},
		{"\240\128\128", false},
		{"\248\128\128\128", false},
		{"\252\128\128\128\128", false},
		{"\223", false},
		{"\239\191", false},
		{"\247\191\191", false},
		{"\251\191\191\191", false},
		{"\253\191\191\191\191", false},
		{"\192\224\128\240\128\128\248\128\128\128\252\128\128\128\128\223\239\191\247\191\191\251\191\191\191\253\191\191\191\191", false},
		{"\254", false},
		{"\255", false},
		{"\254\254\255\255", false},
		{"\192\175", false},
		{"\224\128\175", false},
		{"\240\128\128\175", false},
		{"\248\128\128\128\175", false},
		{"\252\128\128\128\128\175", false},
		{"\193\191", false},
		{"\224\159\191", false},
		{"\240\143\191\191", false},
		{"\248\135\191\191\191", false},
		{"\252\131\191\191\191\191", false},
		{"\192\128", false},
		{"\224\128\128", false},
		{"\240\128\128\128", false},
		{"\248\128\128\128\128", false},
		{"\252\128\128\128\128\128", false},
		{"\237\160\128", false},
		{"\237\173\191", false},
		{"\237\174\128", false},
		{"\237\175\191", false},
		{"\237\176\128", false},
		{"\237\190\128", false},
		{"\237\191\191", false},
		{"\237\160\128\237\176\128", false},
		{"\237\160\128\237\191\191", false},
		{"\237\173\191\237\176\128", false},
		{"\237\173\191\237\191\191", false},
		{"\237\174\128\237\176\128", false},
		{"\237\174\128\237\191\191", false},
		{"\237\175\191\237\176\128", false},
		{"\237\175\191\237\191\191", false},
		{"\239\191\190", true},
		{"\239\191\191", true},
		{"\239\183\144\239\183\145\239\183\146\239\183\147\239\183\148\239\183\149\239\183\150\239\183\151\239\183\152\239\183\153\239\183\154\239\183\155\239\183\156\239\183\157\239\183\158\239\183\159\239\183\160\239\183\161\239\183\162\239\183\163\239\183\164\239\183\165\239\183\166\239\183\167\239\183\168\239\183\169\239\183\170\239\183\171\239\183\172\239\183\173\239\183\174\239\183\175", true},
		{"\239\191\190\239\191\191\240\159\191\190\240\159\191\191\240\175\191\190\240\175\191\191\240\191\191\190\240\191\191\191\241\143\191\190\241\143\191\191\241\159\191\190\241\159\191\191\241\175\191\190\241\175\191\191\241\191\191\190\241\191\191\191\242\143\191\190\242\143\191\191\242\159\191\190\242\159\191\191\242\175\191\190\242\175\191\191\242\191\191\190\242\191\191\191\243\143\191\190\243\143\191\191\243\159\191\190\243\159\191\191\243\175\191\190\243\175\191\191\243\191\191\190\243\191\191\191\244\143\191\190\244\143\191\191", true},
	}

	self:iterate(examples, "check_isutf8")
end

return tests