You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gnosygnu_xowa/home/wiki/Diagnostics/Scribunto/All.html

2886 lines
64 KiB

<!DOCTYPE html>
<html dir="ltr">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<title>Diagnostics/Scribunto/All - XOWA</title>
<link rel="shortcut icon" href="https://gnosygnu.github.io/xowa/xowa_logo.png" />
<link rel="stylesheet" href="https://gnosygnu.github.io/xowa/xowa_common.css" type="text/css">
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject skin-vector action-submit vector-animateLayout" spellcheck="false">
<div id="mw-page-base" class="noprint"></div>
<div id="mw-head-base" class="noprint"></div>
<div id="content" class="mw-body">
<h1 id="firstHeading" class="firstHeading"><span>Diagnostics/Scribunto/All</span></h1>
<div id="bodyContent" class="mw-body-content">
<div id="siteSub">From XOWA: the free, open-source, offline wiki application</div>
<div id="contentSub"></div>
<div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr">
<ul>
<li>
Note: This is not a comprehensive testing of all functions. (i.e.: there are some working functions that are not listed below)
</li>
</ul>
<h2>
<span class="mw-headline" id="Basic">Basic</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/Basic" id="xolnki_2" title="Module:Diagnostics/Basic">Module:Diagnostics/Basic</a>
</li>
<li>
Tests basic Scribunto functionality
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
Init; Load; executeFunctionChunk
</td>
<td>
{{#invoke:Diagnostics/Basic|print}}
</td>
<td>
print
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
new line behavior
</td>
<td>
{{#invoke:Diagnostics/Basic|new_line}}
</td>
<td>
a
<p>
b
</p>
<p>
<br>
</p>
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="Lua_Common">Lua Common</span>
</h2>
<ul>
<li>
Calls code in
<ul>
<li>
<a href="/wiki/Module:Diagnostics/LuaCommon" id="xolnki_3" title="Module:Diagnostics/LuaCommon">Module:Diagnostics/LuaCommon</a>
</li>
<li>
<a href="/wiki/Template:Diagnostics/LuaCommon/getFrameTitle_parent" id="xolnki_4" title="Template:Diagnostics/LuaCommon/getFrameTitle parent">Template:Diagnostics/LuaCommon/getFrameTitle parent</a>
</li>
<li>
<a href="/wiki/Template:Diagnostics/LuaCommon/preprocess_args_parent" id="xolnki_5" title="Template:Diagnostics/LuaCommon/preprocess args parent">Template:Diagnostics/LuaCommon/preprocess args parent</a>
</li>
</ul>
</li>
<li>
Tests compatibility for <b>LuaCommon.php</b> and <b>mw.lua</b>
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
getExpandedArgument
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|getExpandedArgument_number_2 |val_1|val_2}}
</td>
<td>
arg_1 is 'val_1'; arg_2 is 'val_2'
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
getExpandedArgument_byOrdinal
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|getExpandedArgument_by_ordinal |key_1=val_1|val_2}}
</td>
<td>
[1] is 'val_2'
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
getAllExpandedArguments
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|getAllExpandedArguments |val_1|val_2|val_3}}
</td>
<td>
1:val_1;2:val_2;3:val_3;
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
getAllExpandedArgs;key_is_int
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|getAllExpandedArguments_int_key|1=a}}
</td>
<td>
a
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
preprocess;redundant_keys
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|preprocess_ifeq_as_yn |val_1|val_1|when_true_val=y1|when_false_val=n1|when_true_val=y2}}
</td>
<td>
y2
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
expandTemplate
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|expandTemplate|val_1|val_2}}
</td>
<td>
arg_1 is val_1; arg_2 is val_2
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
expandTemplate; PHP bool; true -&gt; 1 false -&gt; ""
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|expandTemplate_bool}}
</td>
<td>
bool_true is "1"; bool_false is "";
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
callParserFunction
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|callParserFunction|urlencode|abc}}
</td>
<td>
abc
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
isSubsting;false
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|isSubsting}}
</td>
<td>
false
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
isSubsting;true
</td>
<td>
{{safesubst:#invoke:Diagnostics/LuaCommon|isSubsting}}
</td>
<td>
true
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
getFrameTitle_current
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|getFrameTitle_current}}
</td>
<td>
Module:Diagnostics/LuaCommon
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
getFrameTitle_parent
</td>
<td>
{{Diagnostics/LuaCommon/getFrameTitle_parent}}
</td>
<td>
Template:Diagnostics/LuaCommon/getFrameTitle parent
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
getFrameTitle_parent.upper
</td>
<td>
{{diagnostics/LuaCommon/getFrameTitle_parent}}
</td>
<td>
Template:Diagnostics/LuaCommon/getFrameTitle parent
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
newChildFrame.title
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|newChildFrame_titled}}
</td>
<td>
title:Title0; arg1:v1
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
newChildFrame.title
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|newChildFrame_untitled}}
</td>
<td>
title:Module:Diagnostics/LuaCommon; arg1:v1
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
preprocess_args;frame is current
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|preprocess_args_current|match|y|n}}
</td>
<td>
y
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
preprocess_args;frame is parent
</td>
<td>
{{Diagnostics/LuaCommon/preprocess_args_parent|match|y|n}}
</td>
<td>
y
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
preprocess calling Module functions should not call them twice; fails if onceonce
</td>
<td>
{{#invoke:Diagnostics/LuaCommon|preprocess_nested_main}}
</td>
<td>
once
<p>
<br>
</p>
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="Ustring_Library">Ustring Library</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/UstringLibrary" id="xolnki_6" title="Module:Diagnostics/UstringLibrary">Module:Diagnostics/UstringLibrary</a>
</li>
<li>
Tests compatibility for <b>UstringLibrary.php</b> and <b>mw.ustring.lua</b>
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
match (via trim)
</td>
<td>
{{#invoke:Diagnostics/UstringLibrary|match| a b c |^%s*(.-)%s*$}}
</td>
<td>
a b c
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
match error; only regx passed
</td>
<td>
{{#invoke:Diagnostics/UstringLibrary|match_error__regx_only}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
gsub;replacement is string
</td>
<td>
{{#invoke:Diagnostics/UstringLibrary|gsub_string|abcabc|[a]|A}}
</td>
<td>
AbcAbc
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
gsub;replacement is table
</td>
<td>
{{#invoke:Diagnostics/UstringLibrary|gsub_table}}
</td>
<td>
AbCAbC
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
gsub;replacement is function (lua); basic
</td>
<td>
{{#invoke:Diagnostics/UstringLibrary|gsub_function_lua_basic}}
</td>
<td>
AbcAbc
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
gsub;replacement is function (lua); grouping
</td>
<td>
{{#invoke:Diagnostics/UstringLibrary|gsub_function_lua_grouping}}
</td>
<td>
AbcAbc
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
gsub;balanced group;<br>
(will fail on Java 1.6, but not on Java 1.7+)
</td>
<td>
{{#invoke:Diagnostics/UstringLibrary|gsub_string |(a)|%b()|c}}
</td>
<td>
c
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
gsub;regex with %W;<br>
(will fail on Java 1.6, but not on Java 1.7+)
</td>
<td>
{{#invoke:Diagnostics/UstringLibrary|gsub_string|[a]|[%W]|-}}
</td>
<td>
-a-
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
gmatch_init and gmatch_callback (via gmatch)
</td>
<td>
{{#invoke:Diagnostics/UstringLibrary|gmatch|abcabc|a(b)}}
</td>
<td>
b,;b,;
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
gsub; non-ASCII<br>
(will print unrecognizable character)
</td>
<td>
{{#invoke:Diagnostics/UstringLibrary|gsub_string|bß|[a]ß|c}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="Uri_Library">Uri Library</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/UriLibrary" id="xolnki_7" title="Module:Diagnostics/UriLibrary">Module:Diagnostics/UriLibrary</a>
</li>
<li>
Tests compatibility for <b>UriLibrary.php</b> and <b>mw.uri.lua</b>
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
anchorEncode
</td>
<td>
{{#invoke:Diagnostics/UriLibrary|anchorEncode|[irc://a b c]}}
</td>
<td>
b_c
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
localUrl
</td>
<td>
{{#invoke:Diagnostics/UriLibrary|localUrl|a&amp;b! c}}
</td>
<td>
/wiki/A%26b!_c
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
fullUrl
</td>
<td>
{{#invoke:Diagnostics/UriLibrary|fullUrl|a&amp;b! c}}
</td>
<td>
//home/wiki/A%26b!_c
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
defaultUrl
</td>
<td>
{{#invoke:Diagnostics/UriLibrary|defaultUrl}}
</td>
<td>
//home/wiki/Diagnostics/Scribunto/All
<p>
<br>
</p>
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="Language_Library">Language Library</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/LanguageLibrary" id="xolnki_8" title="Module:Diagnostics/LanguageLibrary">Module:Diagnostics/LanguageLibrary</a>
</li>
<li>
Tests compatibility for <b>LanguageLibrary.php</b> and <b>mw.language.lua</b>
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
getContLangCode (by getContentLanguage)
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|getContLangCode}}
</td>
<td>
en
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
isKnownLanguageTag; true
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|isKnownLanguageTag|en}}
</td>
<td>
true
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
isKnownLanguageTag; false
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|isKnownLanguageTag|xyz}}
</td>
<td>
false
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
isValidCode; true
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|isValidCode|en}}
</td>
<td>
true
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
isValidCode; false
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|isValidCode|a[b}}
</td>
<td>
false
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
isValidBuiltInCode; true
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|isValidBuiltInCode|en}}
</td>
<td>
true
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
isValidBuiltInCode; false
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|isValidBuiltInCode|a#b}}
</td>
<td>
false
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
fetchLanguageName; code only
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|fetchLanguageName|en|en}}
</td>
<td>
English
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
fetchLanguageNames_get
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|fetchLanguageNames_get|fr}}
</td>
<td>
français
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
new
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|new_lang_code|fr}}
</td>
<td>
fr
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
formatNum; en
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|formatNum|1234}}
</td>
<td>
1,234
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
parseFormatteNum; en
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|parseFormattedNum|1,234}}
</td>
<td>
1,234
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
formatDate via pcall; y;
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|formatDate_valid|Y-m-d|2014-03-25}}
</td>
<td>
y
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
formatDate via pcall; n;
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|formatDate_valid|Y-m-d|fail}}
</td>
<td>
n
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
convertGrammar
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|convertGrammar|fi|talo|elative}}
</td>
<td>
talosta
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
isRTL; en
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|isRTL|en}}
</td>
<td>
false
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
isRTL; ar
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|isRTL|ar}}
</td>
<td>
true
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
format_durations_hms
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|format_durations_hms|123}}
</td>
<td>
2 minutes and 3 seconds
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
get_duration_intervals_hms
</td>
<td>
{{#invoke:Diagnostics/LanguageLibrary|get_duration_intervals_hms|123}}
</td>
<td>
,2,3
<p>
<br>
</p>
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="Site_Library">Site Library</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/SiteLibrary" id="xolnki_9" title="Module:Diagnostics/SiteLibrary">Module:Diagnostics/SiteLibrary</a>
</li>
<li>
Tests compatibility for <b>SiteLibrary.php</b> and <b>mw.site.lua</b>
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
siteName
</td>
<td>
{{#invoke:Diagnostics/SiteLibrary|siteName}}
</td>
<td>
home
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
ns_name
</td>
<td>
{{#invoke:Diagnostics/SiteLibrary|ns_associated|Help}}
</td>
<td>
Help talk
<p>
<br>
</p>
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="Title_Library">Title Library</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/TitleLibrary" id="xolnki_10" title="Module:Diagnostics/TitleLibrary">Module:Diagnostics/TitleLibrary</a>
</li>
<li>
Tests compatibility for <b>TitleLibrary.php</b> and <b>mw.title.lua</b>
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
newTitle
</td>
<td>
{{#invoke:Diagnostics/TitleLibrary|newTitle|Main_Page}}
</td>
<td>
Main Page
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
newTitle; namespace arg
</td>
<td>
{{#invoke:Diagnostics/TitleLibrary|newTitle|Contents|Help}}
</td>
<td>
Help:Contents
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
makeTitle
</td>
<td>
{{#invoke:Diagnostics/TitleLibrary|makeTitle|Help|Contents|Overview|home}}
</td>
<td>
home:Help:Contents#Overview
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
fullUrl
</td>
<td>
{{#invoke:Diagnostics/TitleLibrary|fullUrl|Help|Contents}}
</td>
<td>
//home/wiki/Help:Contents
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
getCurrentTitle
</td>
<td>
{{#invoke:Diagnostics/TitleLibrary|getCurrentTitle}}
</td>
<td>
Diagnostics/Scribunto/All
<p>
<br>
</p>
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="Text_Library">Text Library</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/TextLibrary" id="xolnki_11" title="Module:Diagnostics/TextLibrary">Module:Diagnostics/TextLibrary</a>
</li>
<li>
Tests compatibility for <b>TextLibrary.php</b> and <b>mw.text.lua</b>
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
init_text_for_wiki (via listToText)
</td>
<td>
{{#invoke:Diagnostics/TextLibrary|listToText|a|b|c}}
</td>
<td>
a, b and c
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
unstrip
</td>
<td>
{{#invoke:Diagnostics/TextLibrary|unstrip|abc}}
</td>
<td>
abc
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
getEntityTable (via decode)
</td>
<td>
{{#invoke:Diagnostics/TextLibrary|decode|gt;}}
</td>
<td>
&gt;
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="HTML_Library">HTML Library</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/HtmlLibrary" id="xolnki_12" title="Module:Diagnostics/HtmlLibrary">Module:Diagnostics/HtmlLibrary</a>
</li>
<li>
Tests compatibility for <b>mw.html.lua</b>
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
create
</td>
<td>
{{#invoke:Diagnostics/HtmlLibrary|create_span}}
</td>
<td>
span
<p>
<br>
</p>
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="Hash_Library">Hash Library</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/HashLibrary" id="xolnki_13" title="Module:Diagnostics/HashLibrary">Module:Diagnostics/HashLibrary</a>
</li>
<li>
Tests compatibility for <b>mw.hash.lua</b>
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
listAlgorithms
</td>
<td>
{{#invoke:Diagnostics/HashLibrary|listAlgorithms|md2|tiger128,3|adler32|fnv132|haval128,3}}
</td>
<td>
md2;tiger-128;adler32;fnv132;haval128,3;
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
hash.bouncycastle.md2
</td>
<td>
{{#invoke:Diagnostics/HashLibrary|hashValue|md2|}}
</td>
<td>
4e8ddff3650292ab5a4108c3aa47940b
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
hash.jacksum.tiger128,3
</td>
<td>
{{#invoke:Diagnostics/HashLibrary|hashValue|tiger128,3|}}
</td>
<td>
1714a472eee57d30040412bfcc55032a
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
hash.jre.adler32
</td>
<td>
{{#invoke:Diagnostics/HashLibrary|hashValue|adler32|}}
</td>
<td>
90860b20
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
hash.jre.fnv132
</td>
<td>
{{#invoke:Diagnostics/HashLibrary|hashValue|fnv132|}}
</td>
<td>
819dafd8
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
hash.gnu_crypto.haval128,3
</td>
<td>
{{#invoke:Diagnostics/HashLibrary|hashValue|haval128,3|}}
</td>
<td>
dc502247fb3eb8376109eda32d361d82
<p>
<br>
</p>
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="Message_Library">Message Library</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/MessageLibrary" id="xolnki_14" title="Module:Diagnostics/MessageLibrary">Module:Diagnostics/MessageLibrary</a>
</li>
<li>
Tests compatibility for <b>MessageLibrary.php</b> and <b>mw.message.lua</b>
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
init_message_for_lang (via getDefaultLanguage)
</td>
<td>
{{#invoke:Diagnostics/MessageLibrary|getDefaultLanguage}}
</td>
<td>
en
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
plain
</td>
<td>
{{#invoke:Diagnostics/MessageLibrary|plain|mainpage}}
</td>
<td>
Main Page
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
plain; params
</td>
<td>
{{#invoke:Diagnostics/MessageLibrary|plain|redirectedfrom|A}}
</td>
<td>
(Redirected from A)
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
exists; true
</td>
<td>
{{#invoke:Diagnostics/MessageLibrary|check|exists|sun}}
</td>
<td>
true
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
exists; false
</td>
<td>
{{#invoke:Diagnostics/MessageLibrary|check|exists|sunx}}
</td>
<td>
false
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
isBlank; false
</td>
<td>
{{#invoke:Diagnostics/MessageLibrary|check|isBlank|sun}}
</td>
<td>
false
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
isDisabled; false
</td>
<td>
{{#invoke:Diagnostics/MessageLibrary|check|isDisabled|sun}}
</td>
<td>
false
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
inLanguage
</td>
<td>
{{#invoke:Diagnostics/MessageLibrary|plain_inLanguage|fr|sun}}
</td>
<td>
Dim.
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
rawMessage_toString
</td>
<td>
{{#invoke:Diagnostics/MessageLibrary|plain_rawMessage|a$1c|b}}
</td>
<td>
abc
<p>
<br>
</p>
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="Wikibase_Library">Wikibase Library</span>
</h2>
<ul>
<li>
Wikidata needs to be installed for these tests to work
</li>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/WikibaseLibrary" id="xolnki_15" title="Module:Diagnostics/WikibaseLibrary">Module:Diagnostics/WikibaseLibrary</a>
</li>
<li>
Tests compatibility for <b>WikibaseLibrary.php</b> and <b>mw.wikibase.lua</b>
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: red;'>fail:<br>
'</span>
<pre>
<span style='color: red;'>'<br>
'Earth
'</span>
</pre>
</td>
<td>
getEntity
</td>
<td>
{{#invoke:Diagnostics/WikibaseLibrary|label|q2}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
</table>
<p>
<br>
</p>
<h2>
<span class="mw-headline" id="Luaj">Luaj</span>
</h2>
<ul>
<li>
Applies to the Luaj engine (as opposed to the Lua engine)
</li>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/Luaj" id="xolnki_16" title="Module:Diagnostics/Luaj">Module:Diagnostics/Luaj</a>
</li>
<li>
Tests changes to the luaj_xowa.jar
</li>
<li>
Further notes available at <a href="/wiki/App/Xtn/Mediawiki/Scribunto/Luaj" id="xolnki_17" title="App/Xtn/Mediawiki/Scribunto/Luaj">App/Xtn/Mediawiki/Scribunto/Luaj</a>
</li>
</ul>
<h3>
<span class="mw-headline" id="2.0.3_errors_fixed_in_3.0">2.0.3 errors fixed in 3.0</span>
</h3>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.format fails for bad format; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_format_2|%d:%02.f|3|4}}
</td>
<td>
3:04
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
os.time does not handle dates before 1970 on Windows; fails with false on Windows<br>
NOTE: always fails on Windows with the lua engine
</td>
<td>
{{#invoke:Diagnostics/Luaj|os_time|1234|05|06}}
</td>
<td>
true
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
pairs.next fails when setting val to null; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|pairs_next}}
</td>
<td>
ok
<p>
<br>
</p>
</td>
</tr>
</table>
<h3>
<span class="mw-headline" id="2.0.3_features_removed_from_3.0">2.0.3 features removed from 3.0</span>
</h3>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gfind deprecated; should be alias to gmatch; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_gfind|ab cd|%w+}}
</td>
<td>
ab
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
tonumber returns original value if value has decimal and base is 10; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|tonumber|12.34|10}}
</td>
<td>
12.34
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
tonumber('-') should be nil not 0
</td>
<td>
{{#invoke:Diagnostics/Luaj|tonumber_lone|-}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
math.log10 deprecated; now calls Math.log10; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|math_log10|100}}
</td>
<td>
2
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
math.mod deprecated; now aliased to math.fmod; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|math_mod|3|2}}
</td>
<td>
1
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.maxn deprecated; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|table_maxn}}
</td>
<td>
3
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.getn deprecated -- key_is_num; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|table_getn__key_is_num}}
</td>
<td>
3
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.getn deprecated -- key_is_str; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|table_getn__key_is_str}}
</td>
<td>
0
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
automatic arg variable in varargs function deprecated; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|varargs_arg}}
</td>
<td>
a
<p>
<br>
</p>
</td>
</tr>
</table>
<h3>
<span class="mw-headline" id="3.0_defects">3.0 defects</span>
</h3>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
tonumber should trim all white space, not just \s; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|value_tonumber_trim}}
</td>
<td>
123
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.rep fails if negative repetition; return ""; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_rep_test|a|-1}}
</td>
<td>
pass:
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gsub fails with ArrayIndexOutOfBoundsException; check for OutOfBounds; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_gsub|a#b|#|}}
</td>
<td>
ab
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gsub fails if src is empty string; exit early if empty; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_gsub||%b&lt;&gt;|}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gmatch: non-match
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_gmatch|a|[^,]*}}
</td>
<td>
a;;
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gmatch: match
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_gmatch|a,b|[^,]*}}
</td>
<td>
a;;b;;
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gmatch: convert example; plain text
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_gmatch_convert|a}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gmatch: convert example; lnki
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_gmatch_convert|[[a]]}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.format does not use format args for double; call java.lang.String.format; fails with 1.234
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_format|%.1f|1.234}}
</td>
<td>
1.2
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.format fails for bad format; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_format|(%0.1f%%)|1.234}}
</td>
<td>
(1.2%)
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.format fails if no number after "."; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_format|%02.f|3}}
</td>
<td>
03
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.format fails for char; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_format|%c|97}}
</td>
<td>
a
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.format fails for multibyte chars; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_format|âbç%f|1}}
</td>
<td>
âbç1.0
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
multibyte strings not supported; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_multibyte_2}}
</td>
<td>
â
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
multibyte strings not supported; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_multibyte_3}}
</td>
<td>
อา
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
multibyte chars in lua variables; used to return "?"
</td>
<td>
{{#invoke:Diagnostics/Luaj|ustring_match_multibyte|𠀀}}
</td>
<td>
𠀀
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
handle backslash-escaped sequences like \239\191\185; used to return "11"
</td>
<td>
{{#invoke:Diagnostics/Luaj|multibyte__backslash_escaped}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
surrogate pair chars not supported; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_surrogate_pair}}
</td>
<td>
1
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.concat fails if end is nil; convert nil to list len; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|table_concat|.|1||a|b|c}}
</td>
<td>
a.b.c
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.concat fails if sep is nil; convert nil to ""; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|table_concat_nil_sep}}
</td>
<td>
ab
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.concat fails if 1st argument is nil; fails with "bad argument: string expected, got nil"
</td>
<td>
{{#invoke:Diagnostics/Luaj|table_remove_nil_arg_at_pos_1}}
</td>
<td>
ab
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
os_date does not accept utc argument; fails with ""<br>
NOTE: test assumes EST / EDT; if ! is not applied, then date would be 1969-12-31
</td>
<td>
{{#invoke:Diagnostics/Luaj|os_date|!*t|3600}}
</td>
<td>
1970-01-01
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
os_date non-utc check;
</td>
<td>
{{#invoke:Diagnostics/Luaj|os_date|*t|0}}
</td>
<td>
1969-12-31
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
os_date format: %e; fails with ""; NOTE: test assumes time zone within 11 hours of UTC
</td>
<td>
{{#invoke:Diagnostics/Luaj|os_date_format|%e|2014|07|15|1|2|3}}
</td>
<td>
15
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
os_date format: %R; fails with ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|os_date_format|%R|2014|07|15|13|2|3}}
</td>
<td>
13:02
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
match.balanced: fails with out of bounds;
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_match|a|%b()}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
match.balanced: fails with out of bounds; ^ at beginning
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_match|a|^(.) ?%b()}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
match.frontier:error
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_gmatch|a|%f[%a]b}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
match.frontier:bad-implementation; used to return ""
</td>
<td>
{{#invoke:Diagnostics/Luaj|lua_match|bz|%f[%a][%a]z$}}
</td>
<td>
bz
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
tonumber hex fails if incomplete
</td>
<td>
{{#invoke:Diagnostics/Luaj|tonumber_hex|0x}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
tonumber hex check
</td>
<td>
{{#invoke:Diagnostics/Luaj|tonumber_hex|0xFF}}
</td>
<td>
255
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
string.gsub does not match $ at end of string
</td>
<td>
{{#invoke:Diagnostics/Luaj|string_gsub|ab|e?$|1}}
</td>
<td>
abe
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
table.unpack does not handle nil args; fails with error
</td>
<td>
{{#invoke:Diagnostics/Luaj|table_unpack_nil}}
</td>
<td>
a,b,c,d
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
surrogate pairs not handled correctly; fails with wrong 1st char: 𢱌
</td>
<td>
{{#invoke:Diagnostics/Luaj|core_surrogate_pairs}}
</td>
<td>
𣂁 - 脁 - 晁
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
zero-length regex fails
</td>
<td>
{{#invoke:Diagnostics/Luaj|lua_match|text|}}
</td>
<td>
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
utf-8 char fails
</td>
<td>
{{#invoke:Diagnostics/Luaj|var|â|}}
</td>
<td>
â
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
fails if "2." is coerced to 2
</td>
<td>
{{#invoke:Diagnostics/Luaj|table_overwrite_int_with_string}}
</td>
<td>
2.
<p>
<br>
</p>
</td>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
fails if "a1"
</td>
<td>
{{#invoke:Diagnostics/Luaj|loadDataTest}}
</td>
<td>
pass1
<p>
<br>
</p>
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="ParserFunctions">ParserFunctions</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/ParserFunctions" id="xolnki_18" title="Module:Diagnostics/ParserFunctions">Module:Diagnostics/ParserFunctions</a>
</li>
<li>
Tests functionality for mw.ext.ParserFunctions.lua
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
basic expr
</td>
<td>
{{#invoke:Diagnostics/ParserFunctions|expr|1 + 2}}
</td>
<td>
3
<p>
<br>
</p>
</td>
</tr>
</table>
<h2>
<span class="mw-headline" id="TitleBlacklist">TitleBlacklist</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/TitleBlacklist" id="xolnki_19" title="Module:Diagnostics/TitleBlacklist">Module:Diagnostics/TitleBlacklist</a>
</li>
<li>
Tests functionality for mw.ext.TitleBlacklist.lua
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
basic test; note that TitleBlacklists are not implemented in XOWA
</td>
<td>
{{#invoke:Diagnostics/TitleBlacklist|test|Title_to_check_for_blacklist}}
</td>
<td>
pass
<p>
<br>
</p>
</td>
</tr>
</table>
<p>
<br>
</p>
<h2>
<span class="mw-headline" id="FlaggedRevs">FlaggedRevs</span>
</h2>
<ul>
<li>
Calls code in <a href="/wiki/Module:Diagnostics/FlaggedRevs" id="xolnki_20" title="Module:Diagnostics/FlaggedRevs">Module:Diagnostics/FlaggedRevs</a>
</li>
<li>
Tests functionality for mw.ext.FlaggedRevs.lua
</li>
</ul>
<table class="wikitable">
<tr>
<th>
name
</th>
<th>
code
</th>
<th>
actl
</th>
<th>
rslt
</th>
</tr>
<tr>
<td>
<span style='color: green;'>pass</span>
</td>
<td>
basic test; note that FlaggedRevs are not implemented in XOWA
</td>
<td>
{{#invoke:Diagnostics/FlaggedRevs|test}}
</td>
<td>
0;;infinity
<p>
<br>
</p>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="mw-head" class="noprint">
<div id="left-navigation">
<div id="p-namespaces" class="vectorTabs">
<h3>Namespaces</h3>
<ul>
<li id="ca-nstab-main" class="selected"><span><a id="ca-nstab-main-href" href="index.html">Page</a></span></li>
</ul>
</div>
</div>
</div>
<div id='mw-panel' class='noprint'>
<div id='p-logo'>
<a style="background-image: url(https://gnosygnu.github.io/xowa/xowa_logo.png);" href="http://xowa.org/" title="Visit the main page"></a>
</div>
<div class="portal" id='xowa-portal-home'>
<h3>XOWA</h3>
<div class="body">
<ul>
<li><a href="http://xowa.org/index.html" title='Visit the main page'>Main page</a></li>
<li><a href="http://xowa.org/screenshots.html" title='See screenshots of XOWA'>Screenshots</a></li>
<li><a href="https://www.youtube.com/watch?v=q0qbXYXEH6M" title="See a video of XOWA Desktop in action">Video</a></li>
<li><a href="http://xowa.org/home/wiki/Help/Download_XOWA.html" title='Download the XOWA application'>Download XOWA</a></li>
<li><a href="http://xowa.org/home/wiki/Dashboard/Image_databases.html" title='Download offline wikis and image databases'>Download wikis</a></li>
</ul>
</div>
</div>
<div class="portal" id='xowa-portal-started'>
<h3>Getting started</h3>
<div class="body">
<ul>
<li><a href="http://xowa.org/home/wiki/App/Setup/System_requirements.html" title='Get XOWA&apos;s system requirements'>Requirements</a></li>
<li><a href="http://xowa.org/home/wiki/App/Setup/Installation.html" title='Get instructions for installing XOWA'>Installation</a></li>
<li><a href="http://xowa.org/home/wiki/App/Import/Simple_Wikipedia.html" title='Learn how to set up Simple Wikipedia'>Simple Wikipedia</a></li>
<li><a href="http://xowa.org/home/wiki/App/Import/English_Wikipedia.html" title='Learn how to set up English Wikipedia'>English Wikipedia</a></li>
<li><a href="http://xowa.org/home/wiki/App/Import/Other_wikis.html" title='Learn how to set up other Wikipedias'>Other Wikipedias</a></li>
</ul>
</div>
</div>
<div class="portal" id='xowa-portal-android'>
<h3>Android</h3>
<div class="body">
<ul>
<li><a href="http://xowa.org/home/wiki/Android/Setup.html" title='Setup XOWA on your Android device'>Setup</a></li>
<li><a href="https://www.youtube.com/watch?v=jsMTBxGweUw" title="See a video of XOWA Android in action">Video</a></li>
</ul>
</div>
</div>
<div class="portal" id='xowa-portal-help'>
<h3>Help</h3>
<div class="body">
<ul>
<li><a href="http://xowa.org/home/wiki/Help/About.html" title='Get more information about XOWA'>About</a></li>
<li><a href="http://xowa.org/home/wiki/Help/Contents.html" title='View a list of help topics'>Contents</a></li>
<li><a href="http://xowa.org/home/wiki/Help/Media.html" title='Read what others have written about XOWA'>Media</a></li>
<li><a href="http://xowa.org/home/wiki/Help/Feedback.html" title='Questions? Comments? Leave feedback for XOWA'>Feedback</a></li>
</ul>
</div>
</div>
<div class="portal" id='xowa-portal-blog'>
<h3>Blog</h3>
<div class="body">
<ul>
<li><a href="http://xowa.org/home/wiki/Blog.html" title='Follow XOWA''s development process'>Current</a></li>
</ul>
</div>
</div>
<div class="portal" id='xowa-portal-links'>
<h3>Links</h3>
<div class="body">
<ul>
<li><a href="http://dumps.wikimedia.org/backup-index.html" title="Get wiki datababase dumps directly from Wikimedia">Wikimedia dumps</a></li>
<li><a href="https://archive.org/search.php?query=xowa" title="Search archive.org for XOWA files">XOWA @ archive.org</a></li>
<li><a href="http://en.wikipedia.org" title="Visit Wikipedia (and compare to XOWA!)">English Wikipedia</a></li>
</ul>
</div>
</div>
<div class="portal" id='xowa-portal-donate'>
<h3>Donate</h3>
<div class="body">
<ul>
<li><a href="https://archive.org/donate/index.php" title="Support archive.org!">archive.org</a></li><!-- listed first due to recent fire damages: http://blog.archive.org/2013/11/06/scanning-center-fire-please-help-rebuild/ -->
<li><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector" title="Support Wikipedia!">Wikipedia</a></li>
<li><a href="http://xowa.org/home/wiki/Help/Donate.html" title="Support XOWA!">XOWA</a></li>
</ul>
</div>
</div>
</div>
</body>
</html>