<?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%3ARepr%2Ftestcases</id>
	<title>Module:Repr/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%3ARepr%2Ftestcases"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Repr/testcases&amp;action=history"/>
	<updated>2026-04-15T08:59:45Z</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:Repr/testcases&amp;diff=144646&amp;oldid=prev</id>
		<title>imported&gt;Mr. Stradivarius: add test for mixed sequence tables and key-value tables, and fix the existing tests to match the new expected output; also remove one duplicate test</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Repr/testcases&amp;diff=144646&amp;oldid=prev"/>
		<updated>2021-02-27T09:54:02Z</updated>

		<summary type="html">&lt;p&gt;add test for mixed sequence tables and key-value tables, and fix the existing tests to match the new expected output; also remove one duplicate test&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Load necessary modules&lt;br /&gt;
local mRepr = require(&amp;#039;Module:Repr&amp;#039;)&lt;br /&gt;
local ScribuntoUnit = require(&amp;#039;Module:ScribuntoUnit&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-- Initialise test suite&lt;br /&gt;
local suite = ScribuntoUnit:new()&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- isLuaIdentifier tests&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local isLuaIdentifierTestData = {&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testIsLuaIdentifier_containingLowerCaseCharacters_isTrue&amp;quot;,&lt;br /&gt;
		value = &amp;quot;foo&amp;quot;,&lt;br /&gt;
		expected = true,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testIsLuaIdentifier_containingUpperCaseCharacters_isTrue&amp;quot;,&lt;br /&gt;
		value = &amp;quot;FOO&amp;quot;,&lt;br /&gt;
		expected = true,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testIsLuaIdentifier_containingDigitsAfterFirstPosition_isTrue&amp;quot;,&lt;br /&gt;
		value = &amp;quot;test1&amp;quot;,&lt;br /&gt;
		expected = true,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testIsLuaIdentifier_containingUnderscores_isTrue&amp;quot;,&lt;br /&gt;
		value = &amp;quot;foo_bar&amp;quot;,&lt;br /&gt;
		expected = true,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testIsLuaIdentifier_nonString_isFalse&amp;quot;,&lt;br /&gt;
		value = 6,&lt;br /&gt;
		expected = false,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testIsLuaIdentifier_emptyString_isFalse&amp;quot;,&lt;br /&gt;
		value = &amp;quot;&amp;quot;,&lt;br /&gt;
		expected = false,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testIsLuaIdentifier_startingWithNumber_isFalse&amp;quot;,&lt;br /&gt;
		value = &amp;quot;1foo&amp;quot;,&lt;br /&gt;
		expected = false,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testIsLuaIdentifier_containingMultibyteCharacter_isFalse&amp;quot;,&lt;br /&gt;
		value = &amp;quot;föo&amp;quot;,&lt;br /&gt;
		expected = false,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testIsLuaIdentifier_containingPeriod_isFalse&amp;quot;,&lt;br /&gt;
		value = &amp;quot;a1.2&amp;quot;,&lt;br /&gt;
		expected = false,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testIsLuaIdentifier_containingHyphen_isFalse&amp;quot;,&lt;br /&gt;
		value = &amp;quot;foo-bar&amp;quot;,&lt;br /&gt;
		expected = false,&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
for _, testData in ipairs(isLuaIdentifierTestData) do&lt;br /&gt;
	suite[testData.testName] = function(self)&lt;br /&gt;
		local result = mRepr._isLuaIdentifier(testData.value)&lt;br /&gt;
		self:assertEquals(testData.expected, result)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local luaKeywords = {&lt;br /&gt;
	&amp;quot;and&amp;quot;,&lt;br /&gt;
	&amp;quot;break&amp;quot;,&lt;br /&gt;
	&amp;quot;do&amp;quot;,&lt;br /&gt;
	&amp;quot;else&amp;quot;,&lt;br /&gt;
	&amp;quot;elseif&amp;quot;,&lt;br /&gt;
	&amp;quot;end&amp;quot;,&lt;br /&gt;
	&amp;quot;false&amp;quot;,&lt;br /&gt;
	&amp;quot;for&amp;quot;,&lt;br /&gt;
	&amp;quot;function&amp;quot;,&lt;br /&gt;
	&amp;quot;if&amp;quot;,&lt;br /&gt;
	&amp;quot;in&amp;quot;,&lt;br /&gt;
	&amp;quot;local&amp;quot;,&lt;br /&gt;
	&amp;quot;nil&amp;quot;,&lt;br /&gt;
	&amp;quot;not&amp;quot;,&lt;br /&gt;
	&amp;quot;or&amp;quot;,&lt;br /&gt;
	&amp;quot;repeat&amp;quot;,&lt;br /&gt;
	&amp;quot;return&amp;quot;,&lt;br /&gt;
	&amp;quot;then&amp;quot;,&lt;br /&gt;
	&amp;quot;true&amp;quot;,&lt;br /&gt;
	&amp;quot;until&amp;quot;,&lt;br /&gt;
	&amp;quot;while&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
for _, keyword in ipairs(luaKeywords) do&lt;br /&gt;
	suite[&amp;quot;testIsLuaIdentifier_keyword_&amp;quot; .. keyword .. &amp;#039;_isFalse&amp;#039;] = function(self)&lt;br /&gt;
		self:assertFalse(mRepr._isLuaIdentifier(keyword))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- repr tests&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local TABLE_WITH_IDENTIFIER_KEYS = {e = &amp;quot;eee&amp;quot;, c = &amp;quot;ccc&amp;quot;, a = &amp;quot;aaa&amp;quot;, d = &amp;quot;ddd&amp;quot;, b = &amp;quot;bbb&amp;quot;}&lt;br /&gt;
local TABLE_WITH_IDENTIFIER_KEYS_SORTED_REPR = &amp;#039;{a = &amp;quot;aaa&amp;quot;, b = &amp;quot;bbb&amp;quot;, c = &amp;quot;ccc&amp;quot;, d = &amp;quot;ddd&amp;quot;, e = &amp;quot;eee&amp;quot;}&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local CYCLIC_SEQUENCE = {1, 2, 3}&lt;br /&gt;
table.insert(CYCLIC_SEQUENCE, CYCLIC_SEQUENCE)&lt;br /&gt;
local CYCLIC_SEQUENCE_REPR = &amp;#039;{1, 2, 3, {CYCLIC}}&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local CYCLIC_TABLE = {a = &amp;quot;aaa&amp;quot;}&lt;br /&gt;
CYCLIC_TABLE.b= CYCLIC_TABLE&lt;br /&gt;
local CYCLIC_TABLE_REPR = &amp;#039;{a = &amp;quot;aaa&amp;quot;, b = {CYCLIC}}&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local CYCLIC_TABLE_PAIR = {a = &amp;quot;aaa&amp;quot;, b = {c = &amp;quot;ccc&amp;quot;}}&lt;br /&gt;
CYCLIC_TABLE_PAIR.b.d = CYCLIC_TABLE_PAIR&lt;br /&gt;
local CYCLIC_TABLE_PAIR_REPR = &amp;#039;{a = &amp;quot;aaa&amp;quot;, b = {c = &amp;quot;ccc&amp;quot;, d = {CYCLIC}}}&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local SUBTABLE = {foo = &amp;quot;bar&amp;quot;}&lt;br /&gt;
local TABLE_WITH_SHARED_SUBTABLES = {a = SUBTABLE, b = SUBTABLE}&lt;br /&gt;
local TABLE_WITH_SHARED_SUBTABLES_REPR = &amp;#039;{a = {foo = &amp;quot;bar&amp;quot;}, b = {foo = &amp;quot;bar&amp;quot;}}&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local TOSTRING_METAMETHOD_TABLE_REPR = &amp;#039;&amp;lt;my table&amp;gt;&amp;#039;&lt;br /&gt;
local TOSTRING_METATABLE = 	{&lt;br /&gt;
	__tostring = function (t)&lt;br /&gt;
		return TOSTRING_METAMETHOD_TABLE_REPR&lt;br /&gt;
	end	&lt;br /&gt;
}&lt;br /&gt;
local TOSTRING_METAMETHOD_TABLE = setmetatable({}, TOSTRING_METATABLE)&lt;br /&gt;
local TOSTRING_METATABLE_REPR = &amp;#039;{__tostring = &amp;lt;function&amp;gt;}&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local NESTED_TABLE = {a = &amp;quot;aaa&amp;quot;, b = {c = &amp;quot;ccc&amp;quot;}}&lt;br /&gt;
&lt;br /&gt;
local reprTestData = {&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_nil&amp;quot;,&lt;br /&gt;
		args = {nil, {}},&lt;br /&gt;
		expected = &amp;#039;nil&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_true&amp;quot;,&lt;br /&gt;
		args = {true, {}},&lt;br /&gt;
		expected = &amp;#039;true&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_false&amp;quot;,&lt;br /&gt;
		args = {false, {}},&lt;br /&gt;
		expected = &amp;#039;false&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_integer&amp;quot;,&lt;br /&gt;
		args = {7, {}},&lt;br /&gt;
		expected = &amp;#039;7&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_float&amp;quot;,&lt;br /&gt;
		args = {3.14159, {}},&lt;br /&gt;
		expected = &amp;#039;3.14159&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_largeInt&amp;quot;,&lt;br /&gt;
		args = {12345678901234567890, {}},&lt;br /&gt;
		expected = &amp;#039;1.2345678901235e+19&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_positiveInfinity&amp;quot;,&lt;br /&gt;
		args = {math.huge, {}},&lt;br /&gt;
		expected = &amp;#039;math.huge&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_negativeInfinity&amp;quot;,&lt;br /&gt;
		args = {-math.huge, {}},&lt;br /&gt;
		expected = &amp;#039;-math.huge&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_NaN&amp;quot;,&lt;br /&gt;
		args = {0/0, {}},&lt;br /&gt;
		expected = &amp;#039;-nan&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_emptyString&amp;quot;,&lt;br /&gt;
		args = {&amp;quot;&amp;quot;, {}},&lt;br /&gt;
		expected = &amp;#039;&amp;quot;&amp;quot;&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_normalString&amp;quot;,&lt;br /&gt;
		args = {&amp;quot;foo&amp;quot;, {}},&lt;br /&gt;
		expected = &amp;#039;&amp;quot;foo&amp;quot;&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_stringWithQuotes&amp;quot;,&lt;br /&gt;
		args = {&amp;#039;&amp;quot;foo&amp;quot;&amp;#039;, {}},&lt;br /&gt;
		expected = &amp;#039;&amp;quot;\\&amp;quot;foo\\&amp;quot;&amp;quot;&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_stringWithNewline&amp;quot;,&lt;br /&gt;
		args = {&amp;#039;foo\nbar&amp;#039;, {}},&lt;br /&gt;
		expected = &amp;#039;&amp;quot;foo\\nbar&amp;quot;&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_emptyTable&amp;quot;,&lt;br /&gt;
		args = {{}, {}},&lt;br /&gt;
		expected = &amp;#039;{}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_sequenceWithSimpleValues&amp;quot;,&lt;br /&gt;
		args = {{1, &amp;quot;foo&amp;quot;, true}, {}},&lt;br /&gt;
		expected = &amp;#039;{1, &amp;quot;foo&amp;quot;, true}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_sparseSequence&amp;quot;,&lt;br /&gt;
		args = {{1, nil, 3, nil, 5}, {}},&lt;br /&gt;
		expected = &amp;#039;{1, [3] = 3, [5] = 5}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_mixedSequenceAndKeys&amp;quot;,&lt;br /&gt;
		args = {{1, 2, 3, foo = &amp;quot;bar&amp;quot;}, {}},&lt;br /&gt;
		expected = &amp;#039;{1, 2, 3, foo = &amp;quot;bar&amp;quot;}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithZeroKey&amp;quot;,&lt;br /&gt;
		args = {{[0] = 0}, {}},&lt;br /&gt;
		expected = &amp;#039;{[0] = 0}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithNegativeIntegerKey&amp;quot;,&lt;br /&gt;
		args = {{[-1] = -1}, {}},&lt;br /&gt;
		expected = &amp;#039;{[-1] = -1}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithFloatKeys&amp;quot;,&lt;br /&gt;
		args = {{[3.14159] = &amp;quot;pi&amp;quot;}, {}},&lt;br /&gt;
		expected = &amp;#039;{[3.14159] = &amp;quot;pi&amp;quot;}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithHugeKey&amp;quot;,&lt;br /&gt;
		args = {{[math.huge] = &amp;quot;huge&amp;quot;}, {}},&lt;br /&gt;
		expected = &amp;#039;{[math.huge] = &amp;quot;huge&amp;quot;}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithEmptyStringKey&amp;quot;,&lt;br /&gt;
		args = {{[&amp;quot;&amp;quot;] = &amp;quot;empty&amp;quot;}, {}},&lt;br /&gt;
		expected = &amp;#039;{[&amp;quot;&amp;quot;] = &amp;quot;empty&amp;quot;}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithIdentifierKeys&amp;quot;,&lt;br /&gt;
		args = {{a = &amp;quot;b&amp;quot;, c = &amp;quot;d&amp;quot;}, {}},&lt;br /&gt;
		expected = &amp;#039;{a = &amp;quot;b&amp;quot;, c = &amp;quot;d&amp;quot;}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithStringKeysStartingWithNumbers&amp;quot;,&lt;br /&gt;
		args = {{[&amp;quot;1foo&amp;quot;] = &amp;quot;foo&amp;quot;, [&amp;quot;2bar&amp;quot;] = &amp;quot;bar&amp;quot;}, {}},&lt;br /&gt;
		expected = &amp;#039;{[&amp;quot;1foo&amp;quot;] = &amp;quot;foo&amp;quot;, [&amp;quot;2bar&amp;quot;] = &amp;quot;bar&amp;quot;}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithStringKeysContainingMultibyteCharacters&amp;quot;,&lt;br /&gt;
		args = {{[&amp;quot;föo&amp;quot;] = &amp;quot;bâr&amp;quot;}, {}},&lt;br /&gt;
		expected = &amp;#039;{[&amp;quot;föo&amp;quot;] = &amp;quot;bâr&amp;quot;}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithLuaKeywordKey&amp;quot;,&lt;br /&gt;
		args = {{[&amp;quot;break&amp;quot;] = &amp;quot;break&amp;quot;}, {}},&lt;br /&gt;
		expected = &amp;#039;{[&amp;quot;break&amp;quot;] = &amp;quot;break&amp;quot;}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithBooleanKey&amp;quot;,&lt;br /&gt;
		args = {{[true] = &amp;quot;the truth&amp;quot;}, {}},&lt;br /&gt;
		expected = &amp;#039;{[true] = &amp;quot;the truth&amp;quot;}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithEmptyTableKey&amp;quot;,&lt;br /&gt;
		args = {{[{}] = &amp;quot;a table&amp;quot;}, {}},&lt;br /&gt;
		expected = &amp;#039;{[{}] = &amp;quot;a table&amp;quot;}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_nestedSequence&amp;quot;,&lt;br /&gt;
		args = {{1, 2, {3, 4, {5}}}, {}},&lt;br /&gt;
		expected = &amp;#039;{1, 2, {3, 4, {5}}}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_nestedTableWithIdentifierKeys&amp;quot;,&lt;br /&gt;
		args = {{a = {b = {c = &amp;quot;d&amp;quot;}}}, {}},&lt;br /&gt;
		expected = &amp;#039;{a = {b = {c = &amp;quot;d&amp;quot;}}}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithNestedTableKey&amp;quot;,&lt;br /&gt;
		args = {{[{a = {b = &amp;quot;b&amp;quot;}}] = &amp;quot;value&amp;quot;}, {}},&lt;br /&gt;
		expected = &amp;#039;{[{a = {b = &amp;quot;b&amp;quot;}}] = &amp;quot;value&amp;quot;}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_sequenceKey&amp;quot;,&lt;br /&gt;
		args = {{[{1, 2, 3}] = 6}, {}},&lt;br /&gt;
		expected = &amp;#039;{[{1, 2, 3}] = 6}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_cyclicSequence&amp;quot;,&lt;br /&gt;
		args = {CYCLIC_SEQUENCE, {}},&lt;br /&gt;
		expected = CYCLIC_SEQUENCE_REPR,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_cyclicTable&amp;quot;,&lt;br /&gt;
		args = {CYCLIC_TABLE, {}},&lt;br /&gt;
		expected = CYCLIC_TABLE_REPR,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_cyclicTablePair&amp;quot;,&lt;br /&gt;
		args = {CYCLIC_TABLE_PAIR, {}},&lt;br /&gt;
		expected = CYCLIC_TABLE_PAIR_REPR,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithSharedSubtables&amp;quot;,&lt;br /&gt;
		args = {TABLE_WITH_SHARED_SUBTABLES, {}},&lt;br /&gt;
		expected = TABLE_WITH_SHARED_SUBTABLES_REPR,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithToStringMethod&amp;quot;,&lt;br /&gt;
		args = {TOSTRING_METATABLE, {}},&lt;br /&gt;
		expected = TOSTRING_METATABLE_REPR,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableWithToStringMetamethod&amp;quot;,&lt;br /&gt;
		args = {TOSTRING_METAMETHOD_TABLE, {}},&lt;br /&gt;
		expected = TOSTRING_METAMETHOD_TABLE_REPR,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_function&amp;quot;,&lt;br /&gt;
		args = {function () end, {}},&lt;br /&gt;
		expected = &amp;#039;&amp;lt;function&amp;gt;&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableKeySorting_withExplicitSetting&amp;quot;,&lt;br /&gt;
		args = {TABLE_WITH_IDENTIFIER_KEYS, {sortKeys=true}},&lt;br /&gt;
		expected = TABLE_WITH_IDENTIFIER_KEYS_SORTED_REPR,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableKeySorting_withDefaultSetting&amp;quot;,&lt;br /&gt;
		args = {TABLE_WITH_IDENTIFIER_KEYS},&lt;br /&gt;
		expected = TABLE_WITH_IDENTIFIER_KEYS_SORTED_REPR,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_tableKeySorting_withInheritedSetting&amp;quot;,&lt;br /&gt;
		args = {TABLE_WITH_IDENTIFIER_KEYS, {}},&lt;br /&gt;
		expected = TABLE_WITH_IDENTIFIER_KEYS_SORTED_REPR,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_prettyPrint_withDefaultSettings&amp;quot;,&lt;br /&gt;
		args = {NESTED_TABLE, {pretty = true}},&lt;br /&gt;
		expected = [[&lt;br /&gt;
{&lt;br /&gt;
	a = &amp;quot;aaa&amp;quot;,&lt;br /&gt;
	b = {&lt;br /&gt;
		c = &amp;quot;ccc&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}]],&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_prettyPrint_withDefaultSpaces&amp;quot;,&lt;br /&gt;
		args = {NESTED_TABLE, {pretty = true, tabs = false}},&lt;br /&gt;
		expected = [[&lt;br /&gt;
{&lt;br /&gt;
    a = &amp;quot;aaa&amp;quot;,&lt;br /&gt;
    b = {&lt;br /&gt;
        c = &amp;quot;ccc&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
}]],&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_prettyPrint_withTwoSpaces&amp;quot;,&lt;br /&gt;
		args = {NESTED_TABLE, {pretty = true, spaces = 2, tabs = false}},&lt;br /&gt;
		expected = [[&lt;br /&gt;
{&lt;br /&gt;
  a = &amp;quot;aaa&amp;quot;,&lt;br /&gt;
  b = {&lt;br /&gt;
    c = &amp;quot;ccc&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}]],&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_prettyPrint_withSemicolons&amp;quot;,&lt;br /&gt;
		args = {NESTED_TABLE, {pretty = true, semicolons = true}},&lt;br /&gt;
		expected = [[&lt;br /&gt;
{&lt;br /&gt;
	a = &amp;quot;aaa&amp;quot;;&lt;br /&gt;
	b = {&lt;br /&gt;
		c = &amp;quot;ccc&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
}]],&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_prettyPrint_withDepthOf1&amp;quot;,&lt;br /&gt;
		args = {NESTED_TABLE, {pretty = true, depth = 1}},&lt;br /&gt;
		expected = [[{&lt;br /&gt;
		a = &amp;quot;aaa&amp;quot;,&lt;br /&gt;
		b = {&lt;br /&gt;
			c = &amp;quot;ccc&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}]],&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_prettyPrint_withNestedTableKey&amp;quot;,&lt;br /&gt;
		args = {{[{a = &amp;quot;aaa&amp;quot;, b = &amp;quot;bbb&amp;quot;}] = &amp;quot;ccc&amp;quot;}, {pretty = true}},&lt;br /&gt;
		expected = [[&lt;br /&gt;
{&lt;br /&gt;
	[{&lt;br /&gt;
		a = &amp;quot;aaa&amp;quot;,&lt;br /&gt;
		b = &amp;quot;bbb&amp;quot;&lt;br /&gt;
	}] = &amp;quot;ccc&amp;quot;&lt;br /&gt;
}]],&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testRepr_nestedTable_withSemicolons&amp;quot;,&lt;br /&gt;
		args = {NESTED_TABLE, {semicolons = true}},&lt;br /&gt;
		expected = &amp;#039;{a = &amp;quot;aaa&amp;quot;; b = {c = &amp;quot;ccc&amp;quot;}}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
for _, testData in ipairs(reprTestData) do&lt;br /&gt;
	suite[testData.testName] = function(self)&lt;br /&gt;
		local result = mRepr.repr(unpack(testData.args))&lt;br /&gt;
		self:assertEquals(testData.expected, result)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- invocationRepr tests&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local invocationReprTestData = {&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testInvocationRepr_nameOnly&amp;quot;,&lt;br /&gt;
		args = {&lt;br /&gt;
			funcName = &amp;quot;foo.bar&amp;quot;,&lt;br /&gt;
			args = {},&lt;br /&gt;
			options = {},&lt;br /&gt;
		},&lt;br /&gt;
		expected = &amp;quot;foo.bar()&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testInvocationRepr_nameOnly_withNilArgsAndOptions&amp;quot;,&lt;br /&gt;
		args = {&lt;br /&gt;
			funcName = &amp;quot;foo.bar&amp;quot;,&lt;br /&gt;
		},&lt;br /&gt;
		expected = &amp;quot;foo.bar()&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testInvocationRepr_withSimpleArguments&amp;quot;,&lt;br /&gt;
		args = {&lt;br /&gt;
			funcName = &amp;quot;myFunc&amp;quot;,&lt;br /&gt;
			args = {1, &amp;quot;foo&amp;quot;, true},&lt;br /&gt;
			options = {},&lt;br /&gt;
		},&lt;br /&gt;
		expected = &amp;#039;myFunc(1, &amp;quot;foo&amp;quot;, true)&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testInvocationRepr_withTableArguments&amp;quot;,&lt;br /&gt;
		args = {&lt;br /&gt;
			funcName = &amp;quot;myFunc&amp;quot;,&lt;br /&gt;
			args = {{foo = &amp;quot;bar&amp;quot;}, {[&amp;quot;123&amp;quot;] = &amp;quot;456&amp;quot;}},&lt;br /&gt;
			options = {},&lt;br /&gt;
		},&lt;br /&gt;
		expected = &amp;#039;myFunc({foo = &amp;quot;bar&amp;quot;}, {[&amp;quot;123&amp;quot;] = &amp;quot;456&amp;quot;})&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testInvocationRepr_withNestedTableArgument&amp;quot;,&lt;br /&gt;
		args = {&lt;br /&gt;
			funcName = &amp;quot;myFunc&amp;quot;,&lt;br /&gt;
			args = {{a = {b = &amp;quot;bbb&amp;quot;}}},&lt;br /&gt;
			options = {},&lt;br /&gt;
		},&lt;br /&gt;
		expected = &amp;#039;myFunc({a = {b = &amp;quot;bbb&amp;quot;}})&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testInvocationRepr_withNestedTableArgument_prettyPrinted&amp;quot;,&lt;br /&gt;
		args = {&lt;br /&gt;
			funcName = &amp;quot;myFunc&amp;quot;,&lt;br /&gt;
			args = {{a = &amp;quot;aaa&amp;quot;, b = {c = &amp;quot;ccc&amp;quot;}}},&lt;br /&gt;
			options = {pretty = true},&lt;br /&gt;
		},&lt;br /&gt;
		expected = [[&lt;br /&gt;
myFunc(&lt;br /&gt;
	{&lt;br /&gt;
		a = &amp;quot;aaa&amp;quot;,&lt;br /&gt;
		b = {&lt;br /&gt;
			c = &amp;quot;ccc&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
)]],&lt;br /&gt;
	},&lt;br /&gt;
	{&lt;br /&gt;
		testName = &amp;quot;testInvocationRepr_withNestedTableArgument_prettyPrintedWithDepthOf1&amp;quot;,&lt;br /&gt;
		args = {&lt;br /&gt;
			funcName = &amp;quot;myFunc&amp;quot;,&lt;br /&gt;
			args = {{a = &amp;quot;aaa&amp;quot;, b = {c = &amp;quot;ccc&amp;quot;}}},&lt;br /&gt;
			options = {pretty = true, depth = 1},&lt;br /&gt;
		},&lt;br /&gt;
		expected = [[myFunc(&lt;br /&gt;
		{&lt;br /&gt;
			a = &amp;quot;aaa&amp;quot;,&lt;br /&gt;
			b = {&lt;br /&gt;
				c = &amp;quot;ccc&amp;quot;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	)]],&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
for _, testData in ipairs(invocationReprTestData) do&lt;br /&gt;
	suite[testData.testName] = function(self)&lt;br /&gt;
		local result = mRepr.invocationRepr(testData.args)&lt;br /&gt;
		self:assertEquals(testData.expected, result)&lt;br /&gt;
	end&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>