<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AExponential_search%2Ftestcases</id>
	<title>Module:Exponential search/testcases - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AExponential_search%2Ftestcases"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Exponential_search/testcases&amp;action=history"/>
	<updated>2026-05-11T19:51:38Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Exponential_search/testcases&amp;diff=136127&amp;oldid=prev</id>
		<title>imported&gt;Mr. Stradivarius: adjust init value error messages</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Exponential_search/testcases&amp;diff=136127&amp;oldid=prev"/>
		<updated>2015-02-27T13:38:04Z</updated>

		<summary type="html">&lt;p&gt;adjust init value error messages&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local search = require(&amp;#039;Module:Exponential search&amp;#039;)&lt;br /&gt;
local ScribuntoUnit = require(&amp;#039;Module:ScribuntoUnit&amp;#039;)&lt;br /&gt;
local suite = ScribuntoUnit:new()&lt;br /&gt;
&lt;br /&gt;
local function makeTest(n)&lt;br /&gt;
	return function (i)&lt;br /&gt;
		return i &amp;lt;= n&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:assertError(func, ...)&lt;br /&gt;
	local success, ret = pcall(func, ...)&lt;br /&gt;
	self:assertFalse(success)&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:assertErrorMsg(msg, func, ...)&lt;br /&gt;
	local ret = self:assertError(func, ...)&lt;br /&gt;
	self:assertStringContains(msg, ret, true)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFuncType()&lt;br /&gt;
	self:assertError(search, 5)&lt;br /&gt;
	self:assertError(search, &amp;#039;foo&amp;#039;)&lt;br /&gt;
	self:assertError(search, true)&lt;br /&gt;
	self:assertError(search, {})&lt;br /&gt;
	self:assertError(search, nil)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testInitType()&lt;br /&gt;
	self:assertError(search, makeTest(0), &amp;#039;foo&amp;#039;)&lt;br /&gt;
	self:assertError(search, makeTest(0), makeTest(0))&lt;br /&gt;
	self:assertError(search, makeTest(0), true)&lt;br /&gt;
	self:assertError(search, makeTest(0), {})&lt;br /&gt;
	self:assertError(search, makeTest(1), &amp;#039;foo&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function suite:testInitIntegerCheck()&lt;br /&gt;
	self:assertErrorMsg(&lt;br /&gt;
		&amp;quot;invalid init value &amp;#039;0&amp;#039; detected in argument #2 to &amp;#039;Exponential search&amp;#039; (init value must be a positive integer)&amp;quot;,&lt;br /&gt;
		search, makeTest(0), 0&lt;br /&gt;
	)&lt;br /&gt;
	self:assertErrorMsg(&lt;br /&gt;
		&amp;quot;invalid init value &amp;#039;1.5&amp;#039; detected in argument #2 to &amp;#039;Exponential search&amp;#039; (init value must be a positive integer)&amp;quot;,&lt;br /&gt;
		search, makeTest(0), 1.5&lt;br /&gt;
	)&lt;br /&gt;
	self:assertErrorMsg(&lt;br /&gt;
		&amp;quot;invalid init value &amp;#039;-3&amp;#039; detected in argument #2 to &amp;#039;Exponential search&amp;#039; (init value must be a positive integer)&amp;quot;,&lt;br /&gt;
		search, makeTest(0), -3&lt;br /&gt;
	)&lt;br /&gt;
	self:assertErrorMsg(&lt;br /&gt;
		&amp;quot;invalid init value &amp;#039;inf&amp;#039; detected in argument #2 to &amp;#039;Exponential search&amp;#039; (init value must be a positive integer)&amp;quot;,&lt;br /&gt;
		search, makeTest(0), math.huge&lt;br /&gt;
	)&lt;br /&gt;
	self:assertErrorMsg(&lt;br /&gt;
		&amp;quot;invalid init value &amp;#039;-nan&amp;#039; detected in argument #2 to &amp;#039;Exponential search&amp;#039; (init value must be a positive integer)&amp;quot;,&lt;br /&gt;
		search, makeTest(0), 0/0&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testKeyNotFound()&lt;br /&gt;
	self:assertEquals(nil, search(makeTest(0)))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testKeyNotFoundInit()&lt;br /&gt;
	self:assertEquals(nil, search(makeTest(0), 5))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test1()&lt;br /&gt;
	self:assertEquals(1, search(makeTest(1)))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test1Init1()&lt;br /&gt;
	self:assertEquals(1, search(makeTest(1), 1))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test1Init2()&lt;br /&gt;
	self:assertEquals(1, search(makeTest(1), 2))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test1Init3()&lt;br /&gt;
	self:assertEquals(1, search(makeTest(1), 3))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test2()&lt;br /&gt;
	self:assertEquals(2, search(makeTest(2)))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test2Init1()&lt;br /&gt;
	self:assertEquals(2, search(makeTest(2), 1))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test2Init2()&lt;br /&gt;
	self:assertEquals(2, search(makeTest(2), 2))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test2Init3()&lt;br /&gt;
	self:assertEquals(2, search(makeTest(2), 3))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test3()&lt;br /&gt;
	self:assertEquals(3, search(makeTest(3)))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test3Init1()&lt;br /&gt;
	self:assertEquals(3, search(makeTest(3), 1))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test3Init2()&lt;br /&gt;
	self:assertEquals(3, search(makeTest(3), 2))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:test3Init3()&lt;br /&gt;
	self:assertEquals(3, search(makeTest(3), 3))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testLargeArray()&lt;br /&gt;
	self:assertEquals(1234567890, search(makeTest(1234567890)))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testLargeInit()&lt;br /&gt;
	self:assertEquals(3, search(makeTest(3), 1234567890))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return suite&lt;/div&gt;</summary>
		<author><name>imported&gt;Mr. Stradivarius</name></author>
	</entry>
</feed>