<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/index.php?action=history&amp;feed=atom&amp;title=TestUnit_TestScript_LSL_Language.lsl</id>
	<title>TestUnit TestScript LSL Language.lsl - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/index.php?action=history&amp;feed=atom&amp;title=TestUnit_TestScript_LSL_Language.lsl"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_LSL_Language.lsl&amp;action=history"/>
	<updated>2026-07-28T00:15:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_LSL_Language.lsl&amp;diff=1195277&amp;oldid=prev</id>
		<title>ObviousAltIsObvious Resident: language tags to &lt;source&gt;</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_LSL_Language.lsl&amp;diff=1195277&amp;oldid=prev"/>
		<updated>2015-01-25T20:44:01Z</updated>

		<summary type="html">&lt;p&gt;language tags to &amp;lt;source&amp;gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:44, 25 January 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lsl&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source lang=&quot;lsl2&quot;&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l681&quot;&gt;Line 681:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 681:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} // end default&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} // end default&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lsl&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;source&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>ObviousAltIsObvious Resident</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_LSL_Language.lsl&amp;diff=63134&amp;oldid=prev</id>
		<title>Uzume Grigorovich: typos</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_LSL_Language.lsl&amp;diff=63134&amp;oldid=prev"/>
		<updated>2008-04-12T18:37:12Z</updated>

		<summary type="html">&lt;p&gt;typos&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:37, 12 April 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l41&quot;&gt;Line 41:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 41:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//  link message commands will be sent out on the toAllChannel, and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;recieved &lt;/del&gt;on the passFailChannel&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//  link message commands will be sent out on the toAllChannel, and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;received &lt;/ins&gt;on the passFailChannel&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////// INPUT ///////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////// INPUT ///////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l65&quot;&gt;Line 65:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 65:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer toAllChannel = -255;           // general channel - linked message&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer toAllChannel = -255;           // general channel - linked message&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer passFailChannel = -355;        // test scripts channel for &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cummunicating &lt;/del&gt;pass/fail - linked message&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer passFailChannel = -355;        // test scripts channel for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;communicating &lt;/ins&gt;pass/fail - linked message&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer debug = 0;                     // level of debug message&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;integer debug = 0;                     // level of debug message&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l279&quot;&gt;Line 279:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 279:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Function:   RunTest&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Function:   RunTest&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Input:      no input &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;paramaters&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Input:      no input &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;parameters&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Output:     link message on passFailChannel test status&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Output:     link message on passFailChannel test status&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l577&quot;&gt;Line 577:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 577:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Purpose:    This function is where you design the three level of reports&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Purpose:    This function is where you design the three level of reports&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                  &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;avaliable &lt;/del&gt;upon request by the Coordinator&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                  &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;available &lt;/ins&gt;upon request by the Coordinator&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Issues:        no known issues  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Issues:        no known issues  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l618&quot;&gt;Line 618:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 618:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Function:   Initialize&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Function:   Initialize&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Input:      no input &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;paramaters&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Input:      no input &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;parameters&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////                     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Output:     no return value&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//////////      Output:     no return value&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Uzume Grigorovich</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_LSL_Language.lsl&amp;diff=63132&amp;oldid=prev</id>
		<title>Uzume Grigorovich: lsl code tagging</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_LSL_Language.lsl&amp;diff=63132&amp;oldid=prev"/>
		<updated>2008-04-12T18:34:30Z</updated>

		<summary type="html">&lt;p&gt;lsl code tagging&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:34, 12 April 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lsl&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l681&quot;&gt;Line 681:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 681:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} // end default&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;} // end default&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pre&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lsl&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Uzume Grigorovich</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_LSL_Language.lsl&amp;diff=52674&amp;oldid=prev</id>
		<title>Phoenix Linden at 22:58, 4 February 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_LSL_Language.lsl&amp;diff=52674&amp;oldid=prev"/>
		<updated>2008-02-04T22:58:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:58, 4 February 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Conformance Test]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;///////////////////////////////////////////////////////////////////////////////////&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Phoenix Linden</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_LSL_Language.lsl&amp;diff=38482&amp;oldid=prev</id>
		<title>Periapse Linden: New page: &lt;pre&gt; /////////////////////////////////////////////////////////////////////////////////// /////// /////// /////// ///////            TestUnit_TestScript ///////              ///////       ...</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=TestUnit_TestScript_LSL_Language.lsl&amp;diff=38482&amp;oldid=prev"/>
		<updated>2007-10-29T20:42:59Z</updated>

		<summary type="html">&lt;p&gt;New page: &amp;lt;pre&amp;gt; /////////////////////////////////////////////////////////////////////////////////// /////// /////// /////// ///////            TestUnit_TestScript ///////              ///////       ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
///////&lt;br /&gt;
///////&lt;br /&gt;
///////&lt;br /&gt;
///////            TestUnit_TestScript&lt;br /&gt;
///////             &lt;br /&gt;
///////       &lt;br /&gt;
///////&lt;br /&gt;
///////  This is the test script that should include the code you want to test. &lt;br /&gt;
///////      &lt;br /&gt;
///////              &lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////    &lt;br /&gt;
&lt;br /&gt;
//TestUnit_TestScript    .1 -&amp;gt; initial framework  6.23.2007&lt;br /&gt;
//TestUnit_TestScript    .2 -&amp;gt; tested with minor bug fixes  7.2.2007&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//&lt;br /&gt;
//                  Command Protocol&lt;br /&gt;
//&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//&lt;br /&gt;
//////////////////////////////////////////////&lt;br /&gt;
//        CHAT commands&lt;br /&gt;
//////////////////////////////////////////////&lt;br /&gt;
//&lt;br /&gt;
//  Chat commands will be on the specified broadcastChannel&lt;br /&gt;
//&lt;br /&gt;
//////// OUTPUT ///////////&lt;br /&gt;
//&lt;br /&gt;
// AddUnitReport - send Report update to Coordinator on the chat broadcastChannel&lt;br /&gt;
// format example -&amp;gt; AddUnitReport::unitKey::00000-0000-0000-00000::Report::Successful Completion of Test&lt;br /&gt;
//&lt;br /&gt;
//////////////////////////////////////////////&lt;br /&gt;
//        LINK MESSAGE commands&lt;br /&gt;
//////////////////////////////////////////////&lt;br /&gt;
//&lt;br /&gt;
//  link message commands will be sent out on the toAllChannel, and recieved on the passFailChannel&lt;br /&gt;
//&lt;br /&gt;
//////// INPUT ///////////&lt;br /&gt;
//&lt;br /&gt;
//  RunTest - activation command to start test&lt;br /&gt;
//  format example -&amp;gt; RunTest&lt;br /&gt;
//&lt;br /&gt;
//  Report - channel and report type&lt;br /&gt;
//  format example -&amp;gt; Report::controlChannel::0::reportType::NORMAL&lt;br /&gt;
//&lt;br /&gt;
//  Reset - rest the scripts &lt;br /&gt;
//  format example -&amp;gt; Reset&lt;br /&gt;
//&lt;br /&gt;
//////// OUTPUT ///////////&lt;br /&gt;
//&lt;br /&gt;
//  passFail - status of test sent on passFailChannel&lt;br /&gt;
//  format example -&amp;gt; PASS&lt;br /&gt;
//&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Global Variables&lt;br /&gt;
&lt;br /&gt;
integer toAllChannel = -255;           // general channel - linked message&lt;br /&gt;
integer passFailChannel = -355;        // test scripts channel for cummunicating pass/fail - linked message&lt;br /&gt;
&lt;br /&gt;
integer debug = 0;                     // level of debug message&lt;br /&gt;
integer debugChannel = DEBUG_CHANNEL;  // output channel for debug messages&lt;br /&gt;
&lt;br /&gt;
integer gTestsPassed = 0;&lt;br /&gt;
integer gTestsFailed = 0;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Function:   ParseCommand&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Input:      string message - command to be parsed&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Output:     no return value&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Purpose:    This function calls various other functions or sets globals&lt;br /&gt;
//////////                    depending on message string. Allows external command calls.&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Issues:        no known issues &lt;br /&gt;
//////////                    &lt;br /&gt;
//////////                    &lt;br /&gt;
/////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
ParseCommand(string message)&lt;br /&gt;
{&lt;br /&gt;
    if(debug &amp;gt; 1)llSay(debugChannel, llGetScriptName()+ &amp;quot;-&amp;gt;ParseCommand: &amp;quot; + message);&lt;br /&gt;
        &lt;br /&gt;
    //reset all scripts &lt;br /&gt;
    if(message == &amp;quot;Reset&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        //reset this script &lt;br /&gt;
        llResetScript();                   &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    //RunTest()&lt;br /&gt;
    else if(message == &amp;quot;RunTest&amp;quot;)&lt;br /&gt;
    {&lt;br /&gt;
        RunTest();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //Report()&lt;br /&gt;
    //Example format -&amp;gt; Report::broadcastChannel::0::reportType::NORMAL&lt;br /&gt;
    else if( llSubStringIndex(message, &amp;quot;Report&amp;quot;) != -1 )&lt;br /&gt;
    {&lt;br /&gt;
        //parse the string command into a list&lt;br /&gt;
        list reportParameters = llParseString2List( message, [&amp;quot;::&amp;quot;], [&amp;quot;&amp;quot;] );&lt;br /&gt;
        &lt;br /&gt;
        //find the broadcastChannel label and increment by one&lt;br /&gt;
        integer tempIndex = llListFindList( reportParameters, [&amp;quot;controlChannel&amp;quot;] ) + 1;&lt;br /&gt;
        //pull the broadcastChannel from the list with the index just calculated&lt;br /&gt;
        integer controlChannel = llList2Integer( reportParameters , tempIndex);&lt;br /&gt;
        &lt;br /&gt;
        //find the reportType label and increment by one&lt;br /&gt;
        tempIndex = llListFindList( reportParameters, [&amp;quot;reportType&amp;quot;] ) + 1;&lt;br /&gt;
        //pull the reportType from the list with the index just calculated&lt;br /&gt;
        string reportType = llList2String( reportParameters , tempIndex);&lt;br /&gt;
                &lt;br /&gt;
        //call the Report function with new parameters&lt;br /&gt;
        Report( controlChannel, reportType );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
} //end ParseCommand&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
// supporting functions&lt;br /&gt;
testPassed(string description, string actual, string expected)&lt;br /&gt;
{&lt;br /&gt;
    ++gTestsPassed;&lt;br /&gt;
    //llSay(0, description);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
testFailed(string description, string actual, string expected)&lt;br /&gt;
{&lt;br /&gt;
    ++gTestsFailed;&lt;br /&gt;
    llSay(0, &amp;quot;FAILED!: &amp;quot; + description + &amp;quot; (&amp;quot; + actual + &amp;quot; expected &amp;quot; + expected + &amp;quot;)&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ensureTrue(string description, integer actual)&lt;br /&gt;
{&lt;br /&gt;
    if(actual)&lt;br /&gt;
    {&lt;br /&gt;
        testPassed(description, (string) actual, (string) TRUE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        testFailed(description, (string) actual, (string) TRUE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ensureFalse(string description, integer actual)&lt;br /&gt;
{&lt;br /&gt;
    if(actual)&lt;br /&gt;
    {&lt;br /&gt;
        testFailed(description, (string) actual, (string) FALSE);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        testPassed(description, (string) actual, (string) FALSE);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ensureIntegerEqual(string description, integer actual, integer expected)&lt;br /&gt;
{&lt;br /&gt;
    if(actual == expected)&lt;br /&gt;
    {&lt;br /&gt;
        testPassed(description, (string) actual, (string) expected);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        testFailed(description, (string) actual, (string) expected);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ensureFloatEqual(string description, float actual, float expected)&lt;br /&gt;
{&lt;br /&gt;
    if(actual == expected)&lt;br /&gt;
    {&lt;br /&gt;
        testPassed(description, (string) actual, (string) expected);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        testFailed(description, (string) actual, (string) expected);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ensureStringEqual(string description, string actual, string expected)&lt;br /&gt;
{&lt;br /&gt;
    if(actual == expected)&lt;br /&gt;
    {&lt;br /&gt;
        testPassed(description, (string) actual, (string) expected);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        testFailed(description, (string) actual, (string) expected);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ensureVectorEqual(string description, vector actual, vector expected)&lt;br /&gt;
{&lt;br /&gt;
    if(actual == expected)&lt;br /&gt;
    {&lt;br /&gt;
        testPassed(description, (string) actual, (string) expected);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        testFailed(description, (string) actual, (string) expected);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ensureRotationEqual(string description, rotation actual, rotation expected)&lt;br /&gt;
{&lt;br /&gt;
    if(actual == expected)&lt;br /&gt;
    {&lt;br /&gt;
        testPassed(description, (string) actual, (string) expected);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        testFailed(description, (string) actual, (string) expected);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ensureListEqual(string description, list actual, list expected)&lt;br /&gt;
{&lt;br /&gt;
    if(actual == expected)&lt;br /&gt;
    {&lt;br /&gt;
        testPassed(description, (string) actual, (string) expected);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        testFailed(description, (string) actual, (string) expected);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
integer gInteger = 5;&lt;br /&gt;
float gFloat = 1.5;&lt;br /&gt;
string gString = &amp;quot;foo&amp;quot;;&lt;br /&gt;
vector gVector = &amp;lt;1, 2, 3&amp;gt;;&lt;br /&gt;
rotation gRot = &amp;lt;1, 2, 3, 4&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
integer testReturn()&lt;br /&gt;
{&lt;br /&gt;
    return 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
integer testParameters(integer param)&lt;br /&gt;
{&lt;br /&gt;
    param = param + 1;&lt;br /&gt;
    return param;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
integer testRecursion(integer param)&lt;br /&gt;
{&lt;br /&gt;
    if(param &amp;lt;= 0)&lt;br /&gt;
    {&lt;br /&gt;
        return 0;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        return testRecursion(param - 1);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Function:   RunTest&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Input:      no input paramaters&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Output:     link message on passFailChannel test status&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Purpose:    This function is where you put the scripts that you want to test&lt;br /&gt;
//////////                  with this unit.&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Issues:        no known issues &lt;br /&gt;
//////////                    &lt;br /&gt;
//////////                    &lt;br /&gt;
/////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
RunTest()&lt;br /&gt;
{&lt;br /&gt;
     &lt;br /&gt;
    // truth&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;TRUE&amp;quot;, TRUE, TRUE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;FALSE&amp;quot;, FALSE, FALSE);&lt;br /&gt;
    &lt;br /&gt;
    // equality&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(TRUE == TRUE)&amp;quot;, (TRUE == TRUE), TRUE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(TRUE == FALSE)&amp;quot;, (TRUE == FALSE), FALSE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(TRUE == FALSE)&amp;quot;, (TRUE == FALSE), FALSE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(FALSE == FALSE)&amp;quot;, (FALSE == FALSE), TRUE);&lt;br /&gt;
    &lt;br /&gt;
    // inequality&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(TRUE != TRUE)&amp;quot;, (TRUE != TRUE), FALSE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(TRUE != FALSE)&amp;quot;, (TRUE != FALSE), TRUE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(TRUE != FALSE)&amp;quot;, (TRUE != FALSE), TRUE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(FALSE != FALSE)&amp;quot;, (FALSE != FALSE), FALSE);&lt;br /&gt;
    &lt;br /&gt;
    // and&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(TRUE &amp;amp;&amp;amp; TRUE)&amp;quot;, (TRUE &amp;amp;&amp;amp; TRUE), TRUE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(TRUE &amp;amp;&amp;amp; FALSE)&amp;quot;, (TRUE &amp;amp;&amp;amp; FALSE), FALSE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(FALSE &amp;amp;&amp;amp; TRUE)&amp;quot;, (FALSE &amp;amp;&amp;amp; TRUE), FALSE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(FALSE &amp;amp;&amp;amp; FALSE)&amp;quot;, (FALSE &amp;amp;&amp;amp; FALSE), FALSE);&lt;br /&gt;
    &lt;br /&gt;
    // or&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(TRUE || TRUE)&amp;quot;, (TRUE || TRUE), TRUE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(TRUE || FALSE)&amp;quot;, (TRUE || FALSE), TRUE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(FALSE || TRUE)&amp;quot;, (FALSE || TRUE), TRUE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(FALSE || FALSE)&amp;quot;, (FALSE || FALSE), FALSE);&lt;br /&gt;
    &lt;br /&gt;
    // not&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(! TRUE)&amp;quot;, (! TRUE), FALSE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(! FALSE)&amp;quot;, (! FALSE), TRUE);&lt;br /&gt;
    &lt;br /&gt;
    // greater than&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(1 &amp;gt; 0)&amp;quot;, (1 &amp;gt; 0), TRUE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(0 &amp;gt; 1)&amp;quot;, (0 &amp;gt; 1), FALSE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(1 &amp;gt; 1)&amp;quot;, (1 &amp;gt; 1), FALSE);&lt;br /&gt;
    &lt;br /&gt;
    // less than&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(0 &amp;lt; 1)&amp;quot;, (0 &amp;lt; 1), TRUE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(1 &amp;lt; 0)&amp;quot;, (1 &amp;lt; 0), FALSE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(1 &amp;lt; 1)&amp;quot;, (1 &amp;lt; 1), FALSE);&lt;br /&gt;
    &lt;br /&gt;
    // greater than or equal&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(1 &amp;gt;= 0)&amp;quot;, (1 &amp;gt;= 0), TRUE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(0 &amp;gt;= 1)&amp;quot;, (0 &amp;gt;= 1), FALSE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(1 &amp;gt;= 1)&amp;quot;, (1 &amp;gt;= 1), TRUE);&lt;br /&gt;
    &lt;br /&gt;
    // tess than or equal&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(0 &amp;lt;= 1)&amp;quot;, (0 &amp;lt;= 1), TRUE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(1 &amp;lt;= 0)&amp;quot;, (1 &amp;lt;= 0), FALSE);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(1 &amp;lt;= 1)&amp;quot;, (1 &amp;lt;= 1), TRUE);&lt;br /&gt;
    &lt;br /&gt;
    // bitwise and&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(10 &amp;amp; 25)&amp;quot;, (10 &amp;amp; 25), 8);&lt;br /&gt;
    &lt;br /&gt;
    // bitwise or&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(10 | 25)&amp;quot;, (10 | 25), 27);&lt;br /&gt;
    &lt;br /&gt;
    // bitwise not&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;~10&amp;quot;, ~10, -11);&lt;br /&gt;
    &lt;br /&gt;
    // xor&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(10 ^ 25)&amp;quot;, (10 ^ 25), 19);&lt;br /&gt;
    &lt;br /&gt;
    // right shift&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(523 &amp;gt;&amp;gt; 2)&amp;quot;, (523 &amp;gt;&amp;gt; 2), 130);&lt;br /&gt;
    &lt;br /&gt;
    // left shift&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(523 &amp;lt;&amp;lt; 2)&amp;quot;, (523 &amp;lt;&amp;lt; 2), 2092);&lt;br /&gt;
    &lt;br /&gt;
    // addition&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(1 + 1)&amp;quot;, (1 + 1), 2);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(1 + 1.1)&amp;quot;, (1 + 1.1), 2.1);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(1.1 + 1)&amp;quot;, (1.1 + 1), 2.1);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(1.1 + 1.1)&amp;quot;, (1.1 + 1.1), 2.2);&lt;br /&gt;
    ensureStringEqual(&amp;quot;\&amp;quot;foo\&amp;quot; + \&amp;quot;bar\&amp;quot;&amp;quot;, &amp;quot;foo&amp;quot; + &amp;quot;bar&amp;quot;, &amp;quot;foobar&amp;quot;);&lt;br /&gt;
    ensureVectorEqual(&amp;quot;(&amp;lt;1.1, 2.2, 3.3&amp;gt; + &amp;lt;4.4, 5.5, 6.6&amp;gt;)&amp;quot;, (&amp;lt;1.1, 2.2, 3.3&amp;gt; + &amp;lt;4.4, 5.5, 6.6&amp;gt;), &amp;lt;5.5, 7.7, 9.9&amp;gt;);&lt;br /&gt;
    ensureRotationEqual(&amp;quot;(&amp;lt;1.1, 2.2, 3.3, 4.4&amp;gt; + &amp;lt;4.4, 5.5, 6.6, 3.3&amp;gt;)&amp;quot;, (&amp;lt;1.1, 2.2, 3.3, 4.4&amp;gt; + &amp;lt;4.4, 5.5, 6.6, 3.3&amp;gt;), &amp;lt;5.5, 7.7, 9.9, 7.7&amp;gt;);&lt;br /&gt;
    ensureListEqual(&amp;quot;([1] + 2)&amp;quot;, ([1] + 2), [1,2]);&lt;br /&gt;
    ensureListEqual(&amp;quot;([] + 1.5)&amp;quot;, ([] + 1.5), [1.5]);&lt;br /&gt;
    ensureListEqual(&amp;quot;([\&amp;quot;foo\&amp;quot;] + \&amp;quot;bar\&amp;quot;)&amp;quot;, ([&amp;quot;foo&amp;quot;] + &amp;quot;bar&amp;quot;), [&amp;quot;foo&amp;quot;, &amp;quot;bar&amp;quot;]);&lt;br /&gt;
    ensureListEqual(&amp;quot;([] + &amp;lt;1,2,3&amp;gt;)&amp;quot;, ([] + &amp;lt;1,2,3&amp;gt;), [&amp;lt;1,2,3&amp;gt;]);&lt;br /&gt;
    ensureListEqual(&amp;quot;([] + &amp;lt;1,2,3,4&amp;gt;)&amp;quot;, ([] + &amp;lt;1,2,3,4&amp;gt;), [&amp;lt;1,2,3,4&amp;gt;]);&lt;br /&gt;
    &lt;br /&gt;
    // subtraction&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(1 - 1)&amp;quot;, (1 - 1), 0);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(1 - 0.5)&amp;quot;, (1 - 0.5), 0.5);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(1.5 - 1)&amp;quot;, (1.5 - 1), 0.5);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(2.2 - 1.1)&amp;quot;, (2.2 - 1.1), 1.1);&lt;br /&gt;
    ensureVectorEqual(&amp;quot;(&amp;lt;1.5, 2.5, 3.5&amp;gt; - &amp;lt;4.5, 5.5, 6.5&amp;gt;)&amp;quot;, (&amp;lt;1.5, 2.5, 3.5&amp;gt; - &amp;lt;4.5, 5.5, 6.5&amp;gt;), &amp;lt;-3.0, -3.0, -3.0&amp;gt;);&lt;br /&gt;
    ensureRotationEqual(&amp;quot;(&amp;lt;1.5, 2.5, 3.5, 4.5&amp;gt; - &amp;lt;4.5, 5.5, 6.5, 7.5&amp;gt;)&amp;quot;, (&amp;lt;1.5, 2.5, 3.5, 4.5&amp;gt; - &amp;lt;4.5, 5.5, 6.5, 7.5&amp;gt;), &amp;lt;-3.0, -3.0, -3.0, -3.0&amp;gt;);&lt;br /&gt;
&lt;br /&gt;
    // multiplication&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(2 * 3)&amp;quot;, (2 * 3), 6);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(2 * 3.5)&amp;quot;, (2 * 3.5), 7.0);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(2.5 * 3)&amp;quot;, (2.5 * 3), 7.5);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(2.5 * 3.5)&amp;quot;, (2.5 * 3.5), 8.75);&lt;br /&gt;
    ensureVectorEqual(&amp;quot;(&amp;lt;1.1, 2.2, 3.3&amp;gt; * 2)&amp;quot;, (&amp;lt;1.1, 2.2, 3.3&amp;gt; * 2), &amp;lt;2.2, 4.4, 6.6&amp;gt;);&lt;br /&gt;
    ensureVectorEqual(&amp;quot;(&amp;lt;2.2, 4.4, 6.6&amp;gt; * 2.0)&amp;quot;, (&amp;lt;2.2, 4.4, 6.6&amp;gt; * 2.0), &amp;lt;4.4, 8.8, 13.2&amp;gt;);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(&amp;lt;1.0, 2.0, 3.0&amp;gt; * &amp;lt;4.0, 5.0, 6.0&amp;gt;)&amp;quot;, (&amp;lt;1.0, 2.0, 3.0&amp;gt; * &amp;lt;4.0, 5.0, 6.0&amp;gt;), 32.0);&lt;br /&gt;
&lt;br /&gt;
    // division&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(2 / 2)&amp;quot;, (2 / 2), 1);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(2.2 / 2)&amp;quot;, (2.2 / 2), 1.1);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(3 / 1.5)&amp;quot;, (3 / 1.5), 2.0);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;(2.2 / 2.0)&amp;quot;, (2.2 / 2.0), 1.1);&lt;br /&gt;
    ensureVectorEqual(&amp;quot;(&amp;lt;1.0, 2.0, 3.0&amp;gt; / 2)&amp;quot;, (&amp;lt;1.0, 2.0, 3.0&amp;gt; / 2), &amp;lt;0.5, 1.0, 1.5&amp;gt;);&lt;br /&gt;
    ensureVectorEqual(&amp;quot;(&amp;lt;3.0, 6.0, 9.0&amp;gt; / 1.5)&amp;quot;, (&amp;lt;3.0, 6.0, 9.0&amp;gt; / 1.5), &amp;lt;2.0, 4.0, 6.0&amp;gt;);&lt;br /&gt;
    &lt;br /&gt;
    // modulo&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;(3 % 1)&amp;quot;, (3 % 1), 0);&lt;br /&gt;
    ensureVectorEqual(&amp;quot;(&amp;lt;1.0, 2.0, 3.0&amp;gt; % &amp;lt;4.0, 5.0, 6.0&amp;gt;)&amp;quot;, (&amp;lt;1.0, 2.0, 3.0&amp;gt; % &amp;lt;4.0, 5.0, 6.0&amp;gt;), &amp;lt;-3.0, 6.0, -3.0&amp;gt;);&lt;br /&gt;
    &lt;br /&gt;
    // assignment&lt;br /&gt;
    integer i = 1;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 1;&amp;quot;, i, 1);&lt;br /&gt;
    &lt;br /&gt;
    // addition assignment&lt;br /&gt;
    i = 1;&lt;br /&gt;
    i += 1;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 1; i += 1;&amp;quot;, i, 2);&lt;br /&gt;
    &lt;br /&gt;
    // subtraction assignment&lt;br /&gt;
    i = 1;&lt;br /&gt;
    i -= 1;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 1; i -= 1;&amp;quot;, i, 0);&lt;br /&gt;
    &lt;br /&gt;
    // multiplication assignment&lt;br /&gt;
    i = 2;&lt;br /&gt;
    i *= 2;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 2; i *= 2;&amp;quot;, i, 4);&lt;br /&gt;
    &lt;br /&gt;
    // division assignment&lt;br /&gt;
    i = 2;&lt;br /&gt;
    i /= 2;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 2; i /= 2;&amp;quot;, i, 1);&lt;br /&gt;
    &lt;br /&gt;
    // modulo assignment&lt;br /&gt;
    i = 3;&lt;br /&gt;
    i %= 1;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 3; i %= 1;&amp;quot;, i, 0);&lt;br /&gt;
    &lt;br /&gt;
    // post increment.&lt;br /&gt;
    i = 1;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 1; (i == 2) &amp;amp;&amp;amp; (i++ == 1)&amp;quot;, (i == 2) &amp;amp;&amp;amp; (i++ == 1), TRUE);&lt;br /&gt;
        &lt;br /&gt;
    // pre increment.&lt;br /&gt;
    i = 1;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 1; (i == 2) &amp;amp;&amp;amp; (++i == 2)&amp;quot;, (i == 2) &amp;amp;&amp;amp; (++i == 2), TRUE);&lt;br /&gt;
        &lt;br /&gt;
    // post decrement.&lt;br /&gt;
    i = 1;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 1; (i == 0) &amp;amp;&amp;amp; (i-- == 1)&amp;quot;, (i == 0) &amp;amp;&amp;amp; (i-- == 1), TRUE);&lt;br /&gt;
        &lt;br /&gt;
    // pre decrement.&lt;br /&gt;
    i = 1;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 1; (i == 0) &amp;amp;&amp;amp; (--i == 0)&amp;quot;, (i == 0) &amp;amp;&amp;amp; (--i == 0), TRUE);&lt;br /&gt;
    &lt;br /&gt;
    // casting&lt;br /&gt;
    ensureFloatEqual(&amp;quot;((float)2)&amp;quot;, ((float)2), 2.0);&lt;br /&gt;
    ensureStringEqual(&amp;quot;((string)2)&amp;quot;, ((string)2), &amp;quot;2&amp;quot;);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;((integer) 1.5)&amp;quot;, ((integer) 1.5), 1);&lt;br /&gt;
    ensureStringEqual(&amp;quot;((string) 1.5)&amp;quot;, ((string) 1.5), &amp;quot;1.500000&amp;quot;);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;((integer) \&amp;quot;0xF\&amp;quot;)&amp;quot;, ((integer) &amp;quot;0xF&amp;quot;), 15);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;((integer) \&amp;quot;2\&amp;quot;)&amp;quot;, ((integer) &amp;quot;2&amp;quot;), 2);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;((float) \&amp;quot;1.5\&amp;quot;)&amp;quot;, ((float) &amp;quot;1.5&amp;quot;), 1.5);&lt;br /&gt;
    ensureVectorEqual(&amp;quot;((vector) \&amp;quot;&amp;lt;1,2,3&amp;gt;\&amp;quot;)&amp;quot;, ((vector) &amp;quot;&amp;lt;1,2,3&amp;gt;&amp;quot;), &amp;lt;1,2,3&amp;gt;);&lt;br /&gt;
    ensureRotationEqual(&amp;quot;((quaternion) \&amp;quot;&amp;lt;1,2,3,4&amp;gt;\&amp;quot;)&amp;quot;, ((quaternion) &amp;quot;&amp;lt;1,2,3,4&amp;gt;&amp;quot;), &amp;lt;1,2,3,4&amp;gt;);&lt;br /&gt;
    ensureStringEqual(&amp;quot;((string) &amp;lt;1,2,3&amp;gt;)&amp;quot;, ((string) &amp;lt;1,2,3&amp;gt;), &amp;quot;&amp;lt;1.00000, 2.00000, 3.00000&amp;gt;&amp;quot;);&lt;br /&gt;
    ensureStringEqual(&amp;quot;((string) &amp;lt;1,2,3,4&amp;gt;)&amp;quot;, ((string) &amp;lt;1,2,3,4&amp;gt;), &amp;quot;&amp;lt;1.00000, 2.00000, 3.00000, 4.00000&amp;gt;&amp;quot;);&lt;br /&gt;
    ensureStringEqual(&amp;quot;((string) [1,2.5,&amp;lt;1,2,3&amp;gt;])&amp;quot;, ((string) [1,2.5,&amp;lt;1,2,3&amp;gt;]), &amp;quot;12.500000&amp;lt;1.000000, 2.000000, 3.000000&amp;gt;&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    // while&lt;br /&gt;
    i = 0;&lt;br /&gt;
    while(i &amp;lt; 10) ++i;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 0; while(i &amp;lt; 10) ++i&amp;quot;, i, 10);&lt;br /&gt;
    &lt;br /&gt;
    // do while&lt;br /&gt;
    i = 0;&lt;br /&gt;
    do {++i;} while(i &amp;lt; 10);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 0; do {++i;} while(i &amp;lt; 10);&amp;quot;, i, 10);&lt;br /&gt;
    &lt;br /&gt;
    // for&lt;br /&gt;
    for(i = 0; i &amp;lt; 10; ++i);&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;for(i = 0; i &amp;lt; 10; ++i);&amp;quot;, i, 10);&lt;br /&gt;
    &lt;br /&gt;
    // jump&lt;br /&gt;
    i = 1;&lt;br /&gt;
    jump SkipAssign;&lt;br /&gt;
    i = 2;&lt;br /&gt;
    @SkipAssign;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 1; jump SkipAssign; i = 2; @SkipAssign;&amp;quot;, i, 1);&lt;br /&gt;
    &lt;br /&gt;
    // return&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;testReturn()&amp;quot;, testReturn(), 1);&lt;br /&gt;
    &lt;br /&gt;
    // parameters&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;testParameters(1)&amp;quot;, testParameters(1), 2);&lt;br /&gt;
    &lt;br /&gt;
    // variable parameters&lt;br /&gt;
    i = 1;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;i = 1; testParameters(i)&amp;quot;, testParameters(i), 2);&lt;br /&gt;
    &lt;br /&gt;
    // recursion&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;testRecursion(10)&amp;quot;, testRecursion(10), 0);&lt;br /&gt;
    &lt;br /&gt;
    // globals&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;gInteger&amp;quot;, gInteger, 5);&lt;br /&gt;
    ensureFloatEqual(&amp;quot;gFloat&amp;quot;, gFloat, 1.5);&lt;br /&gt;
    ensureStringEqual(&amp;quot;gString&amp;quot;, gString, &amp;quot;foo&amp;quot;);&lt;br /&gt;
    ensureVectorEqual(&amp;quot;gVector&amp;quot;, gVector, &amp;lt;1, 2, 3&amp;gt;);&lt;br /&gt;
    ensureRotationEqual(&amp;quot;gRot&amp;quot;, gRot, &amp;lt;1, 2, 3, 4&amp;gt;);&lt;br /&gt;
    &lt;br /&gt;
    // global assignment&lt;br /&gt;
    gInteger = 1;&lt;br /&gt;
    ensureIntegerEqual(&amp;quot;gInteger = 1&amp;quot;, gInteger, 1);&lt;br /&gt;
    &lt;br /&gt;
    gFloat = 0.5;&lt;br /&gt;
    ensureFloatEqual(&amp;quot;gFloat = 0.5&amp;quot;, gFloat, 0.5);&lt;br /&gt;
    &lt;br /&gt;
    gString = &amp;quot;bar&amp;quot;;&lt;br /&gt;
    ensureStringEqual(&amp;quot;gString = \&amp;quot;bar\&amp;quot;&amp;quot;, gString, &amp;quot;bar&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    gVector = &amp;lt;3,3,3&amp;gt;;&lt;br /&gt;
    ensureVectorEqual(&amp;quot;gVector = &amp;lt;3,3,3&amp;gt;&amp;quot;, gVector, &amp;lt;3,3,3&amp;gt;);&lt;br /&gt;
    &lt;br /&gt;
    gRot = &amp;lt;3,3,3,3&amp;gt;;&lt;br /&gt;
    ensureRotationEqual(&amp;quot;gRot = &amp;lt;3,3,3,3&amp;gt;&amp;quot;, gRot, &amp;lt;3,3,3,3&amp;gt;);&lt;br /&gt;
    &lt;br /&gt;
    // vector accessor&lt;br /&gt;
    vector v;&lt;br /&gt;
    v.x = 3;&lt;br /&gt;
    ensureFloatEqual(&amp;quot;v.x&amp;quot;, v.x, 3);&lt;br /&gt;
    &lt;br /&gt;
    // rotation accessor&lt;br /&gt;
    rotation q;&lt;br /&gt;
    q.s = 5;&lt;br /&gt;
    ensureFloatEqual(&amp;quot;q.s&amp;quot;, q.s, 5);&lt;br /&gt;
    &lt;br /&gt;
    // global vector accessor&lt;br /&gt;
    gVector.y = 17.5;&lt;br /&gt;
    ensureFloatEqual(&amp;quot;gVector.y = 17.5&amp;quot;, gVector.y, 17.5);&lt;br /&gt;
    &lt;br /&gt;
    // global rotation accessor&lt;br /&gt;
    gRot.z = 19.5;&lt;br /&gt;
    ensureFloatEqual(&amp;quot;gRot.z = 19.5&amp;quot;, gRot.z, 19.5);&lt;br /&gt;
    &lt;br /&gt;
    // list equality&lt;br /&gt;
    list l = (list) 5;&lt;br /&gt;
    list l2 = (list) 5;&lt;br /&gt;
    ensureListEqual(&amp;quot;list l = (list) 5; list l2 = (list) 5&amp;quot;, l, l2);&lt;br /&gt;
    ensureListEqual(&amp;quot;list l = (list) 5&amp;quot;, l, [5]);&lt;br /&gt;
    ensureListEqual(&amp;quot;[1.5, 6, &amp;lt;1,2,3&amp;gt;, &amp;lt;1,2,3,4&amp;gt;]&amp;quot;, [1.5, 6, &amp;lt;1,2,3&amp;gt;, &amp;lt;1,2,3,4&amp;gt;], [1.5, 6, &amp;lt;1,2,3&amp;gt;, &amp;lt;1,2,3,4&amp;gt;]);&lt;br /&gt;
    &lt;br /&gt;
    if (gTestsFailed &amp;gt; 0) {&lt;br /&gt;
        llMessageLinked(LINK_SET, passFailChannel, &amp;quot;FAIL&amp;quot;, NULL_KEY);  &lt;br /&gt;
    } else {&lt;br /&gt;
        llMessageLinked(LINK_SET, passFailChannel, &amp;quot;PASS&amp;quot;, NULL_KEY);&lt;br /&gt;
    }    &lt;br /&gt;
    &lt;br /&gt;
    // reset globals  &lt;br /&gt;
    gInteger = 5;&lt;br /&gt;
    gFloat = 1.5;&lt;br /&gt;
    gString = &amp;quot;foo&amp;quot;;&lt;br /&gt;
    gVector = &amp;lt;1, 2, 3&amp;gt;;&lt;br /&gt;
    gRot = &amp;lt;1, 2, 3, 4&amp;gt;;&lt;br /&gt;
    gTestsPassed = 0;&lt;br /&gt;
    gTestsFailed = 0;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Function:   Report&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Input:      broadcastChannel - chat channel to send report&lt;br /&gt;
//////////                  reportType - determines length and content of report type&lt;br /&gt;
//////////                                         -&amp;gt; NORMAL - failures and summary information&lt;br /&gt;
//////////                                         -&amp;gt; QUITE - summary information only&lt;br /&gt;
//////////                                         -&amp;gt; VERBOSE - everything&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Output:     llSay on broadcastChannel &lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Purpose:    This function is where you design the three level of reports&lt;br /&gt;
//////////                  avaliable upon request by the Coordinator&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Issues:        no known issues &lt;br /&gt;
//////////                    &lt;br /&gt;
//////////                    &lt;br /&gt;
/////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
Report( integer broadcastChannel, string reportType )&lt;br /&gt;
{&lt;br /&gt;
    string reportString;&lt;br /&gt;
    &lt;br /&gt;
    //Normal - moderate level of reporting&lt;br /&gt;
    if( reportType == &amp;quot;NORMAL&amp;quot; )&lt;br /&gt;
    {&lt;br /&gt;
        reportString = &amp;quot;&amp;quot;;  //add what you would like to report here !!!!!!&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    //QUITE - shortest level of reporting&lt;br /&gt;
    if( reportType == &amp;quot;QUIET&amp;quot; )&lt;br /&gt;
    {&lt;br /&gt;
        reportString = &amp;quot;&amp;quot;;  //add what you would like to report here !!!!!!&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    //VERBOSE - highest level of reporting&lt;br /&gt;
    if( reportType == &amp;quot;VERBOSE&amp;quot; )&lt;br /&gt;
    {&lt;br /&gt;
        reportString = &amp;quot;&amp;quot;;  //add what you would like to report here !!!!!!&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    //AddUnitReport()&lt;br /&gt;
    //send to Coordinator on the broadcastChannel the selected report&lt;br /&gt;
    //format example -&amp;gt; AddUnitReport::unitKey::00000-0000-0000-00000::Report::Successful Completion of Test&lt;br /&gt;
    llSay( broadcastChannel, &amp;quot;AddUnitReport::unitKey::&amp;quot; + (string)llGetKey() + &amp;quot;::Report::&amp;quot; + reportString);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Function:   Initialize&lt;br /&gt;
//////////&lt;br /&gt;
//////////      Input:      no input paramaters&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Output:     no return value&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Purpose:    This function initializes any variables or functions necessary&lt;br /&gt;
//////////                  to get us started&lt;br /&gt;
//////////                    &lt;br /&gt;
//////////      Issues:        no known issues &lt;br /&gt;
//////////                    &lt;br /&gt;
//////////                    &lt;br /&gt;
/////////////////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
Initialize()&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//STATE STATE STATE STATE STATE STATE STATE STATE STATE STATE STATE STATE STATE STATE//&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
//                                                                                   //&lt;br /&gt;
//                                                                                   //&lt;br /&gt;
//                          DEFAULT STATE                                            //&lt;br /&gt;
//                                                                                   //&lt;br /&gt;
//                                                                                   //&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
default&lt;br /&gt;
{&lt;br /&gt;
///////////////////////////////////////////////////////&lt;br /&gt;
//  State Entry of default state                     //&lt;br /&gt;
///////////////////////////////////////////////////////&lt;br /&gt;
   state_entry()&lt;br /&gt;
    {&lt;br /&gt;
        Initialize();&lt;br /&gt;
    }&lt;br /&gt;
////////////////////////////////////////////////////////&lt;br /&gt;
//  On Rez of default state                           //&lt;br /&gt;
////////////////////////////////////////////////////////    &lt;br /&gt;
    on_rez(integer start_param)&lt;br /&gt;
    {&lt;br /&gt;
        Initialize();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
///////////////////////////////////////////////////////&lt;br /&gt;
//  Link Message of default state                    //&lt;br /&gt;
///////////////////////////////////////////////////////   &lt;br /&gt;
    link_message(integer sender_number, integer number, string message, key id)&lt;br /&gt;
    {&lt;br /&gt;
        //if link message is on the correct channel&lt;br /&gt;
        if(number == toAllChannel)&lt;br /&gt;
        {&lt;br /&gt;
            //treat as command input&lt;br /&gt;
            ParseCommand(message);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
    } //end of link message&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
} // end default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Periapse Linden</name></author>
	</entry>
</feed>