<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://moasspedia.org/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AArray%2Ftestcases</id>
	<title>Module:Array/testcases - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://moasspedia.org/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AArray%2Ftestcases"/>
	<link rel="alternate" type="text/html" href="https://moasspedia.org/w/index.php?title=Module:Array/testcases&amp;action=history"/>
	<updated>2026-04-16T04:00:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.2</generator>
	<entry>
		<id>https://moasspedia.org/w/index.php?title=Module:Array/testcases&amp;diff=642&amp;oldid=prev</id>
		<title>Wikipedia&gt;Erutuon: show error message if any</title>
		<link rel="alternate" type="text/html" href="https://moasspedia.org/w/index.php?title=Module:Array/testcases&amp;diff=642&amp;oldid=prev"/>
		<updated>2019-09-17T21:53:15Z</updated>

		<summary type="html">&lt;p&gt;show error message if any&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local export = {}&lt;br /&gt;
&lt;br /&gt;
local Array = require &amp;quot;Module:array&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local function collect(iter)&lt;br /&gt;
	local vals = Array()&lt;br /&gt;
	for val in iter do&lt;br /&gt;
		vals:insert(val)&lt;br /&gt;
	end&lt;br /&gt;
	return vals&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local total_tests, successes = 0, 0&lt;br /&gt;
local function assert(val)&lt;br /&gt;
	total_tests = total_tests + 1&lt;br /&gt;
	if val then&lt;br /&gt;
		successes = successes + 1&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function export.run_tests()&lt;br /&gt;
	local ok, ret = pcall(function ()&lt;br /&gt;
		assert(Array(1, 2, 3):map(function (x) return x * x end):concat &amp;quot;, &amp;quot; == &amp;quot;1, 4, 9&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(1, 2, 3, 4, 5):filter(function (x) return x % 2 == 0 end):concat &amp;quot;, &amp;quot; == &amp;quot;2, 4&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array():type() == &amp;quot;array&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(1, nil, 2, nil, 3):compress():concat &amp;quot;, &amp;quot; == &amp;quot;1, 2, 3&amp;quot;)&lt;br /&gt;
		assert(collect(Array(1, nil, 2, nil, 3):sparseIpairs()):concat &amp;quot;, &amp;quot; == &amp;quot;1, 3, 5&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;):toSet()[&amp;quot;a&amp;quot;] == true)&lt;br /&gt;
		assert(Array(&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;):to_set()[&amp;quot;a&amp;quot;] == true)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(2, 4, 8):all(function (x) return x % 2 == 0 end) == true)&lt;br /&gt;
		assert(Array(1, 2, 3):some(function (x) return x % 2 == 0 end) == true)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(1, 2, 3, nil, 4):length() == 3)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(1, 2, 3, nil, 4):contains(3) == true)&lt;br /&gt;
		assert(Array(1, 2, 3, nil, 4):contains(4) == false)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array.keysToList(Array(&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;):invert()):concat &amp;quot;, &amp;quot; == &amp;quot;a, b, c&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(1, nil, 2, nil, 3):maxIndex() == 5)&lt;br /&gt;
		assert(Array(1, nil, 2, nil, 3):max_index() == 5)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(1, nil, 2, nil, 3):num_keys():concat &amp;quot;, &amp;quot; == &amp;quot;1, 3, 5&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		assert(collect(Array(&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;):reverseIpairs()):concat &amp;quot;, &amp;quot; == &amp;quot;3, 2, 1&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;):reverse():concat &amp;quot;, &amp;quot; == &amp;quot;c, b, a&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;):serial_comma_join { dontTag = true } == &amp;quot;a, b, and c&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(1, 1, 2, 3, 1, 2, 3):removeDuplicates():concat &amp;quot;, &amp;quot; == &amp;quot;1, 2, 3&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(1, 2, 3, 4, 5):slice(1, 3):concat &amp;quot;, &amp;quot; == &amp;quot;1, 2, 3&amp;quot;)&lt;br /&gt;
		assert(Array(1, 2, 3, 4, 5):slice(1, -3):concat &amp;quot;, &amp;quot; == &amp;quot;1, 2, 3&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		assert(Array(1, 2, 3):adjust_index(-1) == 3)&lt;br /&gt;
		&lt;br /&gt;
		assert((Array(1, 2, 3) + Array(4, 5, 6)):concat &amp;quot;, &amp;quot; == &amp;quot;1, 2, 3, 4, 5, 6&amp;quot;)&lt;br /&gt;
	end)&lt;br /&gt;
	&lt;br /&gt;
	local err&lt;br /&gt;
	if not ok then&lt;br /&gt;
		err = ret&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local color = successes &amp;lt; total_tests and &amp;quot;red&amp;quot; or &amp;quot;green&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	return (&amp;#039;&amp;lt;span style=&amp;quot;color: %s;&amp;quot;&amp;gt;%d out of %d assertions passed&amp;lt;/span&amp;gt;%s&amp;#039;)&lt;br /&gt;
		:format(color, successes, total_tests, err and &amp;#039;\n\n&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&amp;#039; .. err .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039; or &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return export&lt;/div&gt;</summary>
		<author><name>Wikipedia&gt;Erutuon</name></author>
	</entry>
</feed>