<?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%3AYesno%2Ftestcases</id>
	<title>Module:Yesno/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%3AYesno%2Ftestcases"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Yesno/testcases&amp;action=history"/>
	<updated>2026-05-27T01:20:17Z</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:Yesno/testcases&amp;diff=147769&amp;oldid=prev</id>
		<title>imported&gt;Andrybak: test live module alongside the sandbox (refactor; extract compareLiveAndSandbox; fix message in runYesnoTestWithDefault)</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Yesno/testcases&amp;diff=147769&amp;oldid=prev"/>
		<updated>2020-04-01T07:51:46Z</updated>

		<summary type="html">&lt;p&gt;test live module alongside the sandbox (refactor; extract compareLiveAndSandbox; fix message in runYesnoTestWithDefault)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local yesnoSandbox = require(&amp;#039;Module:Yesno/sandbox&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 compareLiveAndSandbox(expected, liveValue, sandboxValue)&lt;br /&gt;
	local message = &amp;quot;Expected &amp;quot; .. tostring(expected) .. &amp;quot;. Got &amp;quot;&lt;br /&gt;
	suite:assertEquals(expected, liveValue, message .. tostring(liveValue)&lt;br /&gt;
		.. &amp;quot; from live module.&amp;quot;)&lt;br /&gt;
	suite:assertEquals(expected, sandboxValue, message .. tostring(sandboxValue)&lt;br /&gt;
		.. &amp;quot; from sandbox.&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function runYesnoTest(expected, inputValue)&lt;br /&gt;
	local liveValue = yesno(inputValue)&lt;br /&gt;
	local sandboxValue = yesnoSandbox(inputValue)&lt;br /&gt;
	compareLiveAndSandbox(expected, liveValue, sandboxValue)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function runYesnoTestWithDefault(expected, inputValue)&lt;br /&gt;
	local liveValue = yesno(inputValue, &amp;#039;default&amp;#039;)&lt;br /&gt;
	local sandboxValue = yesnoSandbox(inputValue, &amp;#039;default&amp;#039;)&lt;br /&gt;
	compareLiveAndSandbox(expected, liveValue, sandboxValue)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Basic tests&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testYes()&lt;br /&gt;
	runYesnoTest(true, &amp;#039;yes&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testY()&lt;br /&gt;
	runYesnoTest(true, &amp;#039;y&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testTrueText()&lt;br /&gt;
	runYesnoTest(true, &amp;#039;true&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testT()&lt;br /&gt;
	runYesnoTest(true, &amp;#039;t&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testTrue()&lt;br /&gt;
	runYesnoTest(true, true)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testOneText()&lt;br /&gt;
	runYesnoTest(true, &amp;#039;1&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testOne()&lt;br /&gt;
	runYesnoTest(true, 1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testOn()&lt;br /&gt;
	runYesnoTest(true, &amp;#039;on&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testNo()&lt;br /&gt;
	runYesnoTest(false, &amp;#039;no&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testN()&lt;br /&gt;
	runYesnoTest(false, &amp;#039;n&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testF()&lt;br /&gt;
	runYesnoTest(false, &amp;#039;f&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFalseText()&lt;br /&gt;
	runYesnoTest(false, &amp;#039;false&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFalse()&lt;br /&gt;
	runYesnoTest(false, false)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testZero()&lt;br /&gt;
	runYesnoTest(false, 0)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testZeroText()&lt;br /&gt;
	runYesnoTest(false, &amp;#039;0&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testOff()&lt;br /&gt;
	runYesnoTest(false, &amp;#039;off&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testNil()&lt;br /&gt;
	runYesnoTest(nil, nil)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Capitalisation tests&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testYesCaps()&lt;br /&gt;
	runYesnoTest(true, &amp;#039;Yes&amp;#039;)&lt;br /&gt;
	runYesnoTest(true, &amp;#039;YES&amp;#039;)&lt;br /&gt;
	runYesnoTest(true, &amp;#039;yEs&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testYCaps()&lt;br /&gt;
	runYesnoTest(true, &amp;#039;Y&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testTCaps()&lt;br /&gt;
	runYesnoTest(true, &amp;#039;T&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testTrueTextCaps()&lt;br /&gt;
	runYesnoTest(true, &amp;#039;True&amp;#039;)&lt;br /&gt;
	runYesnoTest(true, &amp;#039;TRUE&amp;#039;)&lt;br /&gt;
	runYesnoTest(true, &amp;#039;trUE&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testOnCaps()&lt;br /&gt;
	runYesnoTest(true, &amp;#039;On&amp;#039;)&lt;br /&gt;
	runYesnoTest(true, &amp;#039;ON&amp;#039;)&lt;br /&gt;
	runYesnoTest(true, &amp;#039;oN&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testNoCaps()&lt;br /&gt;
	runYesnoTest(false, &amp;#039;No&amp;#039;)&lt;br /&gt;
	runYesnoTest(false, &amp;#039;NO&amp;#039;)&lt;br /&gt;
	runYesnoTest(false, &amp;#039;nO&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testNCaps()&lt;br /&gt;
	runYesnoTest(false, &amp;#039;N&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFCaps()&lt;br /&gt;
	runYesnoTest(false, &amp;#039;F&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFalseTextCaps()&lt;br /&gt;
	runYesnoTest(false, &amp;#039;False&amp;#039;)&lt;br /&gt;
	runYesnoTest(false, &amp;#039;FALSE&amp;#039;)&lt;br /&gt;
	runYesnoTest(false, &amp;#039;fALSe&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testOffCaps()&lt;br /&gt;
	runYesnoTest(false, &amp;#039;ofF&amp;#039;)&lt;br /&gt;
	runYesnoTest(false, &amp;#039;oFf&amp;#039;)&lt;br /&gt;
	runYesnoTest(false, &amp;#039;oFF&amp;#039;)&lt;br /&gt;
	runYesnoTest(false, &amp;#039;Off&amp;#039;)&lt;br /&gt;
	runYesnoTest(false, &amp;#039;OfF&amp;#039;)&lt;br /&gt;
	runYesnoTest(false, &amp;#039;OFf&amp;#039;)&lt;br /&gt;
	runYesnoTest(false, &amp;#039;OFF&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Number conversion tests&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testOneTextConversion()&lt;br /&gt;
	runYesnoTest(true, &amp;#039;1.0&amp;#039;)&lt;br /&gt;
	runYesnoTest(true, &amp;#039;001&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testZeroTextConversion()&lt;br /&gt;
	runYesnoTest(false, &amp;#039;0.0&amp;#039;)&lt;br /&gt;
	runYesnoTest(false, &amp;#039;000&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Test no default set&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testStringNoDefault()&lt;br /&gt;
	runYesnoTest(nil, &amp;#039;foo&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testNumberNoDefault()&lt;br /&gt;
	runYesnoTest(nil, 100)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testTableNoDefault()&lt;br /&gt;
	runYesnoTest(nil, {})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFunctionNoDefault()&lt;br /&gt;
	runYesnoTest(nil, function() return true end)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testBlankStringNoDefault()&lt;br /&gt;
	runYesnoTest(nil, &amp;#039;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Test default set&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testStringDefaultSet()&lt;br /&gt;
	runYesnoTestWithDefault(&amp;#039;default&amp;#039;, &amp;#039;foo&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testNumberDefaultSet()&lt;br /&gt;
	runYesnoTestWithDefault(&amp;#039;default&amp;#039;, 100)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testTableDefaultSet()&lt;br /&gt;
	runYesnoTestWithDefault(&amp;#039;default&amp;#039;, {})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFunctionDefaultSet()&lt;br /&gt;
	runYesnoTestWithDefault(&amp;#039;default&amp;#039;, function() return true end)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testBlankStringDefaultSet()&lt;br /&gt;
	runYesnoTestWithDefault(&amp;#039;default&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Test default precedence with true, false, and nil&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function suite:testYesDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(true, &amp;#039;yes&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testYDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(true, &amp;#039;y&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testTrueTextDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(true, &amp;#039;true&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testTrueDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(true, true)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testOneTextDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(true, &amp;#039;1&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testOneDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(true, 1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testNoDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(false, &amp;#039;no&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testNDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(false, &amp;#039;n&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFalseTextDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(false, &amp;#039;false&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testFalseDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(false, false)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testZeroDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(false, 0)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testZeroTextDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(false, &amp;#039;0&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function suite:testNilDefaultPrecedence()&lt;br /&gt;
	runYesnoTestWithDefault(nil, nil)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return suite&lt;/div&gt;</summary>
		<author><name>imported&gt;Andrybak</name></author>
	</entry>
</feed>