<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://klingon.lostexiles.net/mediawiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://klingon.lostexiles.net/mediawiki/index.php?action=history&amp;feed=atom&amp;title=OP%2B_and_Test-Driven_Development</id>
		<title>OP+ and Test-Driven Development - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://klingon.lostexiles.net/mediawiki/index.php?action=history&amp;feed=atom&amp;title=OP%2B_and_Test-Driven_Development"/>
		<link rel="alternate" type="text/html" href="https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;action=history"/>
		<updated>2026-05-07T23:29:54Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=350&amp;oldid=prev</id>
		<title>Firesoul: /* Model Testing */</title>
		<link rel="alternate" type="text/html" href="https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=350&amp;oldid=prev"/>
				<updated>2011-06-05T20:28:09Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Model Testing&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:28, 5 June 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 441:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 441:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;For more information, see:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;For more information &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and download links&lt;/ins&gt;, see:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[http://klingon.pet.dhs.org/mediawiki/index.php?title=SFC-related_missions,_sources,_patches_and_misc_utilities#SFC:OP_Models_Tester http://klingon.pet.dhs.org/mediawiki/index.php?title=SFC-related_missions,_sources,_patches_and_misc_utilities#SFC:OP_Models_Tester]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[http://klingon.pet.dhs.org/mediawiki/index.php?title=SFC-related_missions,_sources,_patches_and_misc_utilities#SFC:OP_Models_Tester http://klingon.pet.dhs.org/mediawiki/index.php?title=SFC-related_missions,_sources,_patches_and_misc_utilities#SFC:OP_Models_Tester]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Firesoul</name></author>	</entry>

	<entry>
		<id>https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=349&amp;oldid=prev</id>
		<title>Firesoul: /* Model Testing */</title>
		<link rel="alternate" type="text/html" href="https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=349&amp;oldid=prev"/>
				<updated>2011-06-05T20:27:39Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Model Testing&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 20:27, 5 June 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 441:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 441:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;TODO&lt;/del&gt;: &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;script download links&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;For more information, see&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[http://klingon.pet.dhs.org/mediawiki/index.php?title=SFC-related_missions,_sources,_patches_and_misc_utilities#SFC:OP_Models_Tester http://klingon.pet.dhs.org/mediawiki/index.php?title=SFC-related_missions,_sources,_patches_and_misc_utilities#SFC:OP_Models_Tester]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Firesoul</name></author>	</entry>

	<entry>
		<id>https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=348&amp;oldid=prev</id>
		<title>Firesoul: /* Verbose output, all coded tests */</title>
		<link rel="alternate" type="text/html" href="https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=348&amp;oldid=prev"/>
				<updated>2011-06-05T20:25:24Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Verbose output, all coded tests&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;amp;diff=348&amp;amp;oldid=168&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Firesoul</name></author>	</entry>

	<entry>
		<id>https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=168&amp;oldid=prev</id>
		<title>Firesoul: /* Model Testing */</title>
		<link rel="alternate" type="text/html" href="https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=168&amp;oldid=prev"/>
				<updated>2011-05-05T07:32:13Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Model Testing&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 07:32, 5 May 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 427:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 427:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;There are 3 scripts&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;TODO&lt;/ins&gt;: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;script download links&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* Standard version, 1 race at a time:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;** Ski_test_models.scr size: 470kb (Version 1.23, 20040627)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;**Ski_test_models-20040627.zip size: 72kb (sources) &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* Complete test version, all models tested in a single run:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;** Ski_test_all_models.scr size: 470kb (Version 1.00, 20040714)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;** Ski_test_all_models-20040714.zip size: 77kb (sources) &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* 'Test all bases' models, all in a single run:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;** Ski_test_bases_models.scr size: 470kb (Version 1.00, 20040714)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;** Ski_test_bases_models-20040714.zip size: 90kb (sources) &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Look for &amp;quot;SFC:OP Models Tester&amp;quot; scripts on http://klingon.pet.dhs.org/sources_and_utils/ .&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Firesoul</name></author>	</entry>

	<entry>
		<id>https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=167&amp;oldid=prev</id>
		<title>Firesoul: /* Verbose output, all coded tests */</title>
		<link rel="alternate" type="text/html" href="https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=167&amp;oldid=prev"/>
				<updated>2011-05-05T07:28:13Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Verbose output, all coded tests&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 07:28, 5 May 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 36:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 36:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;ok 56 - SpecialRole A are maulers, and maulers are A or R.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;ok 56 - SpecialRole A are maulers, and maulers are A or R.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; 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;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; 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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Verbose output, all coded tests ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Verbose output, all coded tests ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Firesoul</name></author>	</entry>

	<entry>
		<id>https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=166&amp;oldid=prev</id>
		<title>Firesoul: /* Example: Mauler */</title>
		<link rel="alternate" type="text/html" href="https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=166&amp;oldid=prev"/>
				<updated>2011-05-05T07:28:00Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Example: Mauler&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 07:28, 5 May 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;***** If not, return an error about this ship&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;***** If not, return an error about this ship&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Result:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;# Check that maulers have appropriate special role 'A' or 'R' and that all 'A ships have a mauler&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;ok 56 - SpecialRole A are maulers, and maulers are A or R.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Verbose output, all coded tests ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Verbose output, all coded tests ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Firesoul</name></author>	</entry>

	<entry>
		<id>https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=165&amp;oldid=prev</id>
		<title>Firesoul: /* Shiplist testing */</title>
		<link rel="alternate" type="text/html" href="https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=165&amp;oldid=prev"/>
				<updated>2011-05-05T07:24:16Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Shiplist testing&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 07:24, 5 May 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&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='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;==&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;= &lt;/del&gt;Shiplist &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;testing =&lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Testing the &lt;/ins&gt;Shiplist ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;I have been spending a lot of time writing tests for the shiplist, making sure that it is sane. I have a LOT more to do, and corrections to do at each and every step of the way.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== Test Driven Development ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Here are the tests &lt;/del&gt;I have &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;so far:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;I have &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;spent a lot of time writing tests for the shiplist, making sure that it is sane. The idea here is to implement &amp;quot;Test Driven Development&amp;quot;, normally a method/philosophy used by coders.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;The method is simple:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* determine a condition that must be met&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* find a way to code tests to the data that confirms the condition is true&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* run the tests against the whole mod.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* clean up the issues detected&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* run ALL the tests each time new changes are introduced, in case we introduced problems.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; 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;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;By doing this, over and over, I know that the quality of this shiplist is at its best ever.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; 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;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; 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;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;==== Example: Mauler ====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; 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;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;Maulers should all have the SpecialCode 'A' for Assault. The only exception is when the ship is set to 'R'estricted. The Mauler will have a Mauler weapon on it, and will have the role MAULER in the Enhanced Role or Enhanced Secondary Role column for this ship.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; 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;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;This is testable!&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* for each ship in the shiplist&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;** for all weapons on this ship&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;*** if there's a Mauler&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;**** is this ship's SPECIAL code set to A or R?&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;***** If not, return an error about this ship.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;**** is this ship's Enhanced Role or Enhanced Secondary Role set to MAULER?&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;***** If not, return an error about this ship&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; 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;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; 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;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;=== Verbose output, all coded tests ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;2010-05-01 test results:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;2010-05-01 test results:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 289:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 314:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;1..130&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;1..130&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&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='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Code refactored ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Code refactored ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Firesoul</name></author>	</entry>

	<entry>
		<id>https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=164&amp;oldid=prev</id>
		<title>Firesoul: Created page with &quot;== OPPlus and Test-Driven Development ==   === Shiplist testing ===  I have been spending a lot of time writing tests for the shiplist, making sure that it is sane. I have a LOT …&quot;</title>
		<link rel="alternate" type="text/html" href="https://klingon.lostexiles.net/mediawiki/index.php?title=OP%2B_and_Test-Driven_Development&amp;diff=164&amp;oldid=prev"/>
				<updated>2011-05-05T07:11:22Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;== OPPlus and Test-Driven Development ==   === Shiplist testing ===  I have been spending a lot of time writing tests for the shiplist, making sure that it is sane. I have a LOT …&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== OPPlus and Test-Driven Development ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shiplist testing ===&lt;br /&gt;
&lt;br /&gt;
I have been spending a lot of time writing tests for the shiplist, making sure that it is sane. I have a LOT more to do, and corrections to do at each and every step of the way.&lt;br /&gt;
&lt;br /&gt;
Here are the tests I have so far:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2010-05-01 test results:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bash t/runtests.sh --verbose&lt;br /&gt;
/cygdrive/c/opplus/opplus41/t /cygdrive/c/opplus/opplus41&lt;br /&gt;
-- ./tests.t&lt;br /&gt;
./tests.t syntax OK&lt;br /&gt;
ok 1 - shiplist loaded ok.&lt;br /&gt;
# ships loaded: 8257&lt;br /&gt;
ok 2 - more than 0 ships loaded&lt;br /&gt;
# Checking for race-hull count. Is everything 64/128 or less?&lt;br /&gt;
ok 3 - Hull limits are ok: no race-hull count over 64 or 128 (if applicable)&lt;br /&gt;
# Checking that Hull type column contains only known and sane hull types&lt;br /&gt;
ok 4 - Hull type column contains only known and sane hull types&lt;br /&gt;
# Checking that all ship tags are unique.&lt;br /&gt;
ok 5 - All ship tags unique, case insensitive or not&lt;br /&gt;
ok 6 - got shipnames data back&lt;br /&gt;
# Check that each shiptag has 1 or more shipnames&lt;br /&gt;
ok 7 - each ship has 1 or more shipnames&lt;br /&gt;
ok 8 - got model_siz data back&lt;br /&gt;
# Check that all shiplist models in OP+ have a size in model.siz&lt;br /&gt;
ok 9 - All models used have a size defined in model.siz&lt;br /&gt;
ok 10 - got strings data back&lt;br /&gt;
# Check refits strings: all refits are included in strings.txt&lt;br /&gt;
ok 11 - all refits are in strings.txt&lt;br /&gt;
# Check Full Name strings: all Full Shipnames are included in strings.txt&lt;br /&gt;
ok 12 - All 'Full shipnames' are in strings.txt&lt;br /&gt;
ok 13 - got fighter list data back&lt;br /&gt;
# Checking for phasers in heavy weapon mounts.&lt;br /&gt;
# Exceptions: H-XSB, H-XSBF&lt;br /&gt;
ok 14 - No phasers in heavy weapon mounts&lt;br /&gt;
# Checking for energy heavy weapons in phaser weapon mounts.&lt;br /&gt;
# Exceptions: Drones, ADDs, PLaDs.&lt;br /&gt;
ok 15 - No heavy weapons in phaser mounts&lt;br /&gt;
# Check that shield total is indeed the total of all the shields&lt;br /&gt;
ok 16 - Total shields indeed are the total of all shields&lt;br /&gt;
# Check weapons: are they all valid weapons?&lt;br /&gt;
ok 17 - All weapons are valid weapons&lt;br /&gt;
# Check that G racks &amp;gt;= ADD6&lt;br /&gt;
ok 18 - each ship: count of DroG is less than count of ADD6&lt;br /&gt;
# check_that_ADDs_add_up&lt;br /&gt;
ok 19 - ADDs add up correctly&lt;br /&gt;
# Confirm that non X2 ships with mirv have cargo and at least 5 drone racks&lt;br /&gt;
# Exceptions: Z-BBx, Z-DNMx, Z-DNWx, Z-MTxCVA&lt;br /&gt;
ok 20 - mirv variant sanity.&lt;br /&gt;
# Look for bad weapon arcs. ie: plasma RAL/RAR or FAL/FAR&lt;br /&gt;
# Exceptions: F-CFS, M-LCM, B-LCL, F-NCMx, F-CFSx, M-LCL, F-CFS+, B-LCM, F-NCM, M-LCS, B-LCS, G-LCL+&lt;br /&gt;
ok 21 - weapon arcs are sane.&lt;br /&gt;
# PLaS was introduced in Y170. Check that none exist before&lt;br /&gt;
# Exceptions: G-BF&lt;br /&gt;
ok 22 - PLaS are all Y170 or later&lt;br /&gt;
# PLaI was introduced in Y171. Check that none exist before&lt;br /&gt;
# Exceptions:&lt;br /&gt;
ok 23 - PLaI are all Y171 or later&lt;br /&gt;
# PPD was introduced in Y168. Check that none exist before&lt;br /&gt;
# Exceptions:&lt;br /&gt;
ok 24 - PPD are all Y168 or later&lt;br /&gt;
# Drones A, B, C, F were introduced in Y65. Check that none exist before&lt;br /&gt;
# Exceptions:&lt;br /&gt;
ok 25 - Drones A,B,C,F are all Y65 or later&lt;br /&gt;
# Drone G racks were introduced in Y160. Check that none exist before&lt;br /&gt;
# Exceptions: F-GSC&lt;br /&gt;
ok 26 - Drone G racks are all Y160 or later&lt;br /&gt;
# PlasmaD were introduced in Y165. Check that none exist before&lt;br /&gt;
# Exceptions: R-KRTc1, R-KRTc2, R-KRTG, R-KRT, R-KBT&lt;br /&gt;
ok 27 - PlasmaD racks are all Y165 or later&lt;br /&gt;
# Hellbores were introduced in Y158. Check that none exist before&lt;br /&gt;
# Exceptions:&lt;br /&gt;
ok 28 - Hellbores are all Y158 or later&lt;br /&gt;
# Check that SFB YFA and YLA matches game YFA and YLA&lt;br /&gt;
ok 29 - SFB YFA and YLA matches game YFA and YLA&lt;br /&gt;
# New Construction X1 ship sanity checks: batteries, acceleration, bases have PFs/FTRs&lt;br /&gt;
ok 30 - New Construction X1 ship sanity checks&lt;br /&gt;
# New Construction X2 ship sanity checks: bases have PFs/fighters&lt;br /&gt;
ok 31 - New Construction X2 ship sanity checks&lt;br /&gt;
# Generic X1 tech sanity checks: no G racks, ADD6&lt;br /&gt;
ok 32 - generic x1 tech sanity checks&lt;br /&gt;
# All entries have at least 1 battery. Don't ask me why, but this is important.&lt;br /&gt;
ok 33 - all shiplist entries have batteries&lt;br /&gt;
# All entries have at least 1 excess damage.&lt;br /&gt;
ok 34 - all shiplist entries have excess damage&lt;br /&gt;
# All entries have at least 1 damcon&lt;br /&gt;
ok 35 - all shiplist entries have damcon, except where expected not to have any&lt;br /&gt;
# Races column: check that there are no weird races&lt;br /&gt;
ok 36 - Races column is sane.&lt;br /&gt;
# Check that all tbombs base and max are sane&lt;br /&gt;
# Exceptions: F-BT, F-BT+, F-BTR, F-BTV, F-BTVR, F-CVT, F-CVTC, F-CVTCR, F-FXE, F-FXEx, H-GRV, I-ECA, I-ECC, I-ECL, I-EDD, I-EFF, I-ESR&lt;br /&gt;
ok 37 - tbombs base and max are sane&lt;br /&gt;
# Check that all Romulan warships have 1 NSM and 1 NSM max&lt;br /&gt;
ok 38 - NSMs are sane.&lt;br /&gt;
# Check that all appropriate ships have an explosion strength &amp;gt; 0&lt;br /&gt;
ok 39 - explosion strengths are sane&lt;br /&gt;
# test the test! check sizeclass hash data&lt;br /&gt;
ok 40 - testing size class data is correct&lt;br /&gt;
# Check the turnmodes and prove the values are sane&lt;br /&gt;
ok 41 - turnmode column data is sane.&lt;br /&gt;
# Check that the number of deckcrews &amp;gt;= # fighters.&lt;br /&gt;
ok 42 - There are enough deck crews to service fighters&lt;br /&gt;
# Check boarding parties and boarding parties max&lt;br /&gt;
# Exceptions: R-DMH-GG, R-DMHGGx&lt;br /&gt;
ok 43 - boarding parties are sane.&lt;br /&gt;
# Check that crew values are sane&lt;br /&gt;
ok 44 - crew values are sane.&lt;br /&gt;
# Check that all 'CARGO' role ships (and no other role) are in 'F'reighter hull class.&lt;br /&gt;
ok 45 - All CARGO ships are Freighter class type&lt;br /&gt;
# expected ships with shields to have at least 1 lab&lt;br /&gt;
ok 46 - expected ships with shields have labs&lt;br /&gt;
# check that shuttle loadouts are sane: (shuttlebase &amp;lt;= shuttlemax) and (Shuttle Size &amp;lt;= ShuttleMax AND ShuttleBase)&lt;br /&gt;
ok 47 - ships have sane shuttlebay numbers&lt;br /&gt;
# check that number of weapons per mount are not 0 or less nor 5 or more&lt;br /&gt;
ok 48 - weapon numbers per mount are sane&lt;br /&gt;
# Check that there are no heavy weapons in HDW mounts on Escorts&lt;br /&gt;
ok 49 - no heavy weapons in escort mounts&lt;br /&gt;
# If ship has shields, all shield sides must not be 0&lt;br /&gt;
ok 50 - ships with shields have shields in all facings&lt;br /&gt;
# If ship has cloak, make sure there's no ESG.&lt;br /&gt;
# Exceptions: T-CX3, T-TBR3, C-CX3, C-TBR2&lt;br /&gt;
ok 51 - ALL ships with cloak have no ESG or drones&lt;br /&gt;
# Confirm that for each race, all ships are defined within that race's block.&lt;br /&gt;
ok 52 - all ships are defined within each race's block&lt;br /&gt;
# Confirm that the races are listed in the correct order&lt;br /&gt;
ok 53 - all races are in correct order&lt;br /&gt;
# Check that no ship has a drone control higher than 12 or lower than 0&lt;br /&gt;
ok 54 - Drone Control on all ships is sane&lt;br /&gt;
# Check weapons BPV used for health bar and damages&lt;br /&gt;
ok 55 - Weapons BPV are accurate&lt;br /&gt;
# Check that maulers have appropriate special role 'A' or 'R' and that all 'A ships have a mauler&lt;br /&gt;
ok 56 - SpecialRole A are maulers, and maulers are A or R.&lt;br /&gt;
# Check that specialrole 'C' are Leader ships in enhanced shiplist&lt;br /&gt;
ok 57 - SpecialRole C are Command ships. LEADER ships in enhanced shiplist&lt;br /&gt;
# Check that specialrole 'D' are Drone bombardment ships and at least 2 drone racks&lt;br /&gt;
ok 58 - SpecialRole D are Drone bombardment ships&lt;br /&gt;
# Check that specialrole 'E' are Escort ships in enhanced shiplist&lt;br /&gt;
ok 59 - SpecialRole E are escort ships&lt;br /&gt;
# Check that specialrole 'L' are sublight ships&lt;br /&gt;
ok 60 - SpecialRole L are .. were.. sublight ships&lt;br /&gt;
# Check that specialrole 'M' are commando ships, and they have barracks and transporters&lt;br /&gt;
ok 61 - SpecialRole M are sane commando ships&lt;br /&gt;
# Check that specialrole 'NT' is assigned to things you can't transport to: PFs, DEFs, some planets&lt;br /&gt;
ok 62 - Specialrole NT are PFs, DEFs or sometimes planets&lt;br /&gt;
# Check that specialrole 'P' are Police ships or local defense ships in enhanced shiplist&lt;br /&gt;
ok 63 - SpecialRole P are police ships and/or local defense ships&lt;br /&gt;
# Check that specialrole 'Q' are QSHIPS in enhanced shiplist, and they must be freighters&lt;br /&gt;
ok 64 - SpecialRole Q are Qships and are freighter hulls&lt;br /&gt;
# Check that specialrole 'S' are scouts, and they have special sensors&lt;br /&gt;
ok 65 - SpecialRole S are scouts and have special sensors&lt;br /&gt;
# Check that specialrole 'T' are tournament ships&lt;br /&gt;
ok 66 - SpecialRole T are tournament ships&lt;br /&gt;
# Check that specialrole 'V' are CARRIER in enhanced shiplist, and they have fighters/PFs&lt;br /&gt;
ok 67 - SpecialRole V ships are carriers&lt;br /&gt;
# Check that all ships have Enhanced Class Type column, and that it is sane.&lt;br /&gt;
ok 68 - Enhanced Class Type column is sane&lt;br /&gt;
# Check that all ships have Enhanced Production Availability column, and that it is sane.&lt;br /&gt;
ok 69 - enhanced Production Availability column is sane&lt;br /&gt;
# Check that the enhanced role columns have at least 1 role, and that they are sane.&lt;br /&gt;
ok 70 - enhanced role columns are sane&lt;br /&gt;
# Check that the enhanced xtech column is sane, and that Xships should have xtech level defined&lt;br /&gt;
ok 71 - enhXtech x1 and x2 ship entries are sane&lt;br /&gt;
# Check that all enhanced shiplist type FREIGHTER are Freighters in the shiplist&lt;br /&gt;
ok 72 - Enhtype freighters are sane&lt;br /&gt;
# Check that all enhanced shiplist type CARRIER have fighters, and the fighters are valid&lt;br /&gt;
ok 73 - Enhrole carriers are sane&lt;br /&gt;
# Check that all enhanced shiplist type PF_TENDER have PFs, and the PFs are valid&lt;br /&gt;
ok 74 - Enhrole PF Tenders are sane&lt;br /&gt;
# Check that all enhanced shiplist type CARGO have cargo boxes&lt;br /&gt;
ok 75 - Enhrole cargo ships are sane&lt;br /&gt;
# Check that all enhanced shiplist type REPAIR have repair boxes&lt;br /&gt;
ok 76 - Enhrole repair ships are sane&lt;br /&gt;
# Check that all enhanced shiplist type BASE are really bases&lt;br /&gt;
ok 77 - EnhRole bases are sane&lt;br /&gt;
# Check that all enhanced shiplist type LISTENING_POST are really listening posts&lt;br /&gt;
ok 78 - EnhRole listening posts are sane&lt;br /&gt;
# Check that all enhanced shiplist type PLANET are really planets&lt;br /&gt;
ok 79 - EnhRole planets are sane.&lt;br /&gt;
# Check that all defense platforms are enhrole LOCAL_DEFENSE, enhtype PLATFORM and have ?DP UI&lt;br /&gt;
ok 80 - EnhRole Defense platforms are sane&lt;br /&gt;
# Check that all FRDs are enhtype FLEET_REPAIR_DOCK, enhrole REPAIR and have XSS UI&lt;br /&gt;
ok 81 - EnhType FRDs are sane&lt;br /&gt;
# Check that all enhanced shiplist roles COMMANDO are indeed commando ships and are sane.&lt;br /&gt;
ok 82 - EnhRole COMMANDO ships are sane.&lt;br /&gt;
# Check that all enhanced shiplist type SHUTTLE are indeed shuttles.&lt;br /&gt;
ok 83 - EnhType SHUTTLE entries are sane.&lt;br /&gt;
# Check that all enhanced shiplist type ASTEROID are indeed asteroids.&lt;br /&gt;
ok 84 - EnhType ASTEROID entries are sane.&lt;br /&gt;
# Check that all enhanced shiplist types for monsters are indeed monsters.&lt;br /&gt;
ok 85 - EnhType for monsters are sane.&lt;br /&gt;
# Check that LDR and WYN ships are all SPECIAL&lt;br /&gt;
ok 86 - LDR and WYN ships are all SPECIAL.&lt;br /&gt;
# Check that all Availability UNIQUE ships are 'R' or SPECIAL&lt;br /&gt;
ok 87 - all Availability UNIQUE ships are 'R' or SPECIAL&lt;br /&gt;
# Check that all Asteroid bases use the XAB UI, and that XAB UI are Asteroid Bases&lt;br /&gt;
ok 88 - All asteroid bases use XAB UI&lt;br /&gt;
# Check that all BattleStations, SectorBases and Starbases ?SB UI (except Orions)&lt;br /&gt;
ok 89 - All BattleStations, SectorBases and Starbases use ?SB UI&lt;br /&gt;
# Check that all Base Stations and mobile bases use the ?BS or ?SB UI (except Orions)&lt;br /&gt;
ok 90 - All base station and mobile bases use ?BS or ?SB UI&lt;br /&gt;
# Check that all BOXes use the ?BOX UI&lt;br /&gt;
ok 91 - All boxes use ?BOX UI&lt;br /&gt;
# Check that everything has a UI&lt;br /&gt;
ok 92 - All ships have UI&lt;br /&gt;
# Check that weapons are all mounted in UI-usable points&lt;br /&gt;
# Exceptions: K-B10Vx, K-B11Vx&lt;br /&gt;
# ship K-B10Txm: WARNING! Shared mount in use for both heavy and phaser weapons&lt;br /&gt;
ok 93 - all weapons use sane UI mountpoints.&lt;br /&gt;
# Verify that no carrier predates its own fighters&lt;br /&gt;
ok 94 - no carrier predates its own fighters&lt;br /&gt;
# Check that refits are sane.&lt;br /&gt;
ok 95 - refits are sane&lt;br /&gt;
# Eliminate unwanted PF versions of ships: check to see if PF version and normal version is same YFA, and that the normal version has mechlinks.&lt;br /&gt;
# Exceptions: G-BCHF, L-BCHT&lt;br /&gt;
ok 96 - no unwanted PF variants&lt;br /&gt;
# Check that any ships with PFs should have mechlinks of equal or greater number&lt;br /&gt;
ok 97 - mechlinks are ok&lt;br /&gt;
# Confirm the Fighter BPV columns are accurate&lt;br /&gt;
ok 98 - Fighter BPV columns are accurate&lt;br /&gt;
# Refitted ships have proper YFA and YLA.&lt;br /&gt;
ok 99 - refitted ships YLA are sane. new refit ships YFA are also sane&lt;br /&gt;
# Confirm that the weapon refit occured: gets PLaS somewhere.&lt;br /&gt;
ok 100 - PLaS refits all have PLaS on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets Ph3 somewhere.&lt;br /&gt;
ok 101 - Ph3 refits all have Ph3 on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets Ph1 somewhere.&lt;br /&gt;
ok 102 - Ph1 refits all have Ph1 on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets Ph2 somewhere.&lt;br /&gt;
ok 103 - Ph2 refits all have Ph2 on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets DroG somewhere.&lt;br /&gt;
ok 104 - DRONE G refits all have DroG on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets PLaF somewhere.&lt;br /&gt;
ok 105 - PLaF refits all have PLaF on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets PLaG somewhere.&lt;br /&gt;
ok 106 - PLaG refits all have PLaG on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets ESG somewhere.&lt;br /&gt;
ok 107 - ESG refits all have ESG on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets HB somewhere.&lt;br /&gt;
ok 108 - HB refits all have HB on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets PPD somewhere.&lt;br /&gt;
ok 109 - PPD refits all have PPD on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets MIRV somewhere.&lt;br /&gt;
ok 110 - MIRV refits all have DroM on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets PLaD somewhere.&lt;br /&gt;
ok 111 - PLaD refits all have PLaD on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets PLaI somewhere.&lt;br /&gt;
ok 112 - PLaI refits all have PLaI on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets ADD somewhere.&lt;br /&gt;
ok 113 - ADD UPG refit : ships get ADD somewhere on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets ADD or Drone somewhere.&lt;br /&gt;
ok 114 - DRONE UPG refit : ships get ADD/Drone somewhere on ship.&lt;br /&gt;
# Confirm that the weapon refit occured: gets Drone on DRONE refit&lt;br /&gt;
ok 115 - DRONE refits all have a form of Drone or other on ship.&lt;br /&gt;
# Confirm shield refit actually increased shields.&lt;br /&gt;
ok 116 - shield refits all increase shields on ships&lt;br /&gt;
# Confirm power refit actually increased total power.&lt;br /&gt;
ok 117 - power refits all increase total power on ships&lt;br /&gt;
# Check that Fast Cruisers from PF races get PFs&lt;br /&gt;
ok 118 - Fast Cruisers from PF races get PFs&lt;br /&gt;
# Check that no weapons with reloads have just 1 reload after Y175.&lt;br /&gt;
ok 119 - all weapons with reloads have more than 1 reload past Y175&lt;br /&gt;
# Check that fighter weapons are all valid weapons&lt;br /&gt;
ok 120 - All fighter weapons are sane and valid&lt;br /&gt;
# Check that fighter races are all valid races&lt;br /&gt;
ok 121 - All fighter races are sane and valid&lt;br /&gt;
# Check that fighter ECM is valid&lt;br /&gt;
ok 122 - All fighters' ECM is valid&lt;br /&gt;
# Check that fighter ECCM is valid&lt;br /&gt;
ok 123 - All fighters' ECCM is valid&lt;br /&gt;
# Check that fighters have valid UI&lt;br /&gt;
ok 124 - All fighters have valid UI&lt;br /&gt;
# Check that all fighter models in OP+ have a size in model.siz&lt;br /&gt;
ok 125 - All models used have a size defined in model.siz&lt;br /&gt;
# Check that fighter speeds are sane&lt;br /&gt;
ok 126 - All fighter speeds are sane.&lt;br /&gt;
# Check that fighter PhG aren't available too early&lt;br /&gt;
ok 127 - All fighter PhG are Y170 and later&lt;br /&gt;
# Check that fighter Fus aren't available too early&lt;br /&gt;
ok 128 - All fighter Fus are Y135 and later&lt;br /&gt;
# Check that all fighter shiptags are unique.&lt;br /&gt;
ok 129 - All fighter tags entries are unique&lt;br /&gt;
# Confirm that all starter fighters are available really early&lt;br /&gt;
ok 130 - all starter fighters are all available early&lt;br /&gt;
1..130&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Code refactored ===&lt;br /&gt;
&lt;br /&gt;
I have created a perl module to refactor code I like to use between multiple scripts. I have not (yet?) released this code.. but here it some documentation on how it's set up, below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NAME&lt;br /&gt;
    OPPlus::Shiplist - Perl extension for OP+ shiplist scripts and tests&lt;br /&gt;
&lt;br /&gt;
SYNOPSIS&lt;br /&gt;
      use OPPlus::Shiplist;&lt;br /&gt;
&lt;br /&gt;
      my $o_s = OPPlus::Shiplist-&amp;gt;new();&lt;br /&gt;
&lt;br /&gt;
      my ($shiplist_data, $return_code) = $o_s-&amp;gt;load_shiplist( $shiplist_file );&lt;br /&gt;
      my $shipnames_data = $o_s-&amp;gt;load_shipnames( $shipnames_file );&lt;br /&gt;
      my $strings_data = $o_s-&amp;gt;load_strings( $strings_file );&lt;br /&gt;
      my $modelsiz_data = $o_s-&amp;gt;load_model_siz( $model_siz_file );&lt;br /&gt;
      my $fighter_list_data = $o_s-&amp;gt;load_fighter_list( $ftrlist_file );&lt;br /&gt;
&lt;br /&gt;
      my $bool = $o_s-&amp;gt;is_size_class( $sizeclass, $shiplist_data, $ship_tag );&lt;br /&gt;
      my $sizeclass = $o_s-&amp;gt;get_size_class( $shiplist_data, $ship_tag );&lt;br /&gt;
&lt;br /&gt;
      my @heavy_mounts = $o_s-&amp;gt;heavy_mounts_list();&lt;br /&gt;
      my @phaser_mounts = $o_s-&amp;gt;phaser_mounts_list();&lt;br /&gt;
      my @fighter_weapon_mounts = $o_s-&amp;gt;fighter_weapon_mounts_list();&lt;br /&gt;
      my @numeric_columns = $o_s-&amp;gt;numeric_columns_list();&lt;br /&gt;
      my @integer_columns = $o_s-&amp;gt;integer_columns_list();&lt;br /&gt;
      my @float_columns = $o_s-&amp;gt;float_columns_list();&lt;br /&gt;
      my @shields_columns = $o_s-&amp;gt;shields_columns_hashref();&lt;br /&gt;
      my @ftr_bays = $o_s-&amp;gt;ftr_bays_list();&lt;br /&gt;
&lt;br /&gt;
      my $valid_weapons_and_load_costs = $o_s-&amp;gt;valid_weapons_and_load_costs_hashref();&lt;br /&gt;
      my $valid_weapons_arcs_and_reloads = $o_s-&amp;gt;valid_weapons_arcs_and_reloads_hashref();&lt;br /&gt;
      my $valid_weapons_arcs = $o_s-&amp;gt;valid_weapons_arcs_hashref();&lt;br /&gt;
      my $valid_weapons_reloads = $o_s-&amp;gt;valid_weapons_reloads_hashref();&lt;br /&gt;
      my $valid_fighter_weapons = $o_s-&amp;gt;valid_fighter_weapons_hashref();&lt;br /&gt;
&lt;br /&gt;
      my $valid_refits_data = $o_s-&amp;gt;valid_refits_data_hashref();&lt;br /&gt;
      my $not_a_refit = $o_s-&amp;gt;not_a_refit_hashref();&lt;br /&gt;
      my $UI_data = $o_s-&amp;gt;UI_data_hashref();&lt;br /&gt;
      my $valid_UI = $o_s-&amp;gt;valid_UI_hashref();&lt;br /&gt;
&lt;br /&gt;
      my $races = $o_s-&amp;gt;races_hashref();&lt;br /&gt;
      my $pirate_races = $o_s-&amp;gt;pirate_races_hashref();&lt;br /&gt;
&lt;br /&gt;
      my $annex_8B_weapons = $o_s-&amp;gt;annex_8B_hashref();&lt;br /&gt;
      my $annex_8B_systems = $o_s-&amp;gt;annex_8B_systems_hashref();&lt;br /&gt;
      my $annex_8H_weapons = $o_s-&amp;gt;annex_8H_weapons_hashref();&lt;br /&gt;
      my $annex_8H_systems = $o_s-&amp;gt;annex_8B_systems_hashref();&lt;br /&gt;
&lt;br /&gt;
      my $bpvdata__systems_BPV = $o_s-&amp;gt;bpvdata__systems_BPV_hashref();&lt;br /&gt;
&lt;br /&gt;
      my $hulllimit_per_race = $o_s-&amp;gt;hulllimit();&lt;br /&gt;
      my $valid_hull_types = $o_s-&amp;gt;valid_hull_types_hashref();&lt;br /&gt;
      my $valid_enhanced_production_availability =&lt;br /&gt;
        $o_s-&amp;gt;valid_enhanced_production_availability_hashref();&lt;br /&gt;
      my $valid_enhanced_roles = $o_s-&amp;gt;valid_enhanced_roles_hashref();&lt;br /&gt;
      my $sizeclass_by_enhanced_class_type = $o_s-&amp;gt;sizeclass_by_enhanced_class_type_hashref();&lt;br /&gt;
&lt;br /&gt;
      @shiprow = $o_s-&amp;gt;update_weapon_BPV_columns(\@shiprow);&lt;br /&gt;
      @shiprow = $o_s-&amp;gt;update_systems_BPV(\@shiprow);&lt;br /&gt;
      @shiprow = $o_s-&amp;gt;update_BPV_subtotal(\@shiprow);&lt;br /&gt;
      @shiprow = $o_s-&amp;gt;update_SFB_YFA_and_YLA(\@shiprow);&lt;br /&gt;
      @shiprow = $o_s-&amp;gt;update_fighter_bays_BPV(\@shiprow, $shiplist_file, $ftrlist_file;)&lt;br /&gt;
&lt;br /&gt;
      $o_s-&amp;gt;write_ship($outputfilename, $shiprow_arrayref);&lt;br /&gt;
      $o_s-&amp;gt;write_shipnames( $outputfilename, $ship_tag, $shipnames_arrayref );&lt;br /&gt;
      # $shipnames_arrayref example: $shipnames_data-&amp;gt;{'shipnames'}-&amp;gt;{$source_ship_tag}&lt;br /&gt;
&lt;br /&gt;
DESCRIPTION&lt;br /&gt;
    This module is a refactor of various functions I wanted refactored and&lt;br /&gt;
    shared between multiple OP+ related shiplist scripts.&lt;br /&gt;
&lt;br /&gt;
  EXPORT&lt;br /&gt;
    None by default.&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
    http://klingon.pet.dhs.org/OP_plusrefit/&lt;br /&gt;
    http://pet.dhs.org/mediawiki/index.php/OPPlus_4.1_project_wiki&lt;br /&gt;
&lt;br /&gt;
AUTHOR&lt;br /&gt;
    FireSoul, firesoul@pet.dhs.org&lt;br /&gt;
&lt;br /&gt;
COPYRIGHT AND LICENSE&lt;br /&gt;
    Copyright (C) 2011 by FireSoul&lt;br /&gt;
&lt;br /&gt;
    This library is free software; you can redistribute it and/or modify it&lt;br /&gt;
    under the same terms as Perl itself, either Perl version 5.10.1 or, at&lt;br /&gt;
    your option, any later version of Perl 5 you may have available.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Model Testing ===&lt;br /&gt;
&lt;br /&gt;
To test models, I simply reuse some old tools I have created way-back-when: 3 scripts that '''loads''' and then '''blows up''' a ship of each model. &lt;br /&gt;
&lt;br /&gt;
The scripts do the following:&lt;br /&gt;
* Find all the model files relevant to the current script (complete, single race, bases)&lt;br /&gt;
* load up a ship for each model file, to test the .MOD file&lt;br /&gt;
* blow up the ship, to test the _BRK.MOD file&lt;br /&gt;
&lt;br /&gt;
The idea is that for each ship that it loads and then blows up, results are written to disk. To see the results, you can review a log file. The file is ''C:\TestModels.txt'' . If you run these scripts and you crashed, you should check this logfile!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are 3 scripts:&lt;br /&gt;
* Standard version, 1 race at a time:&lt;br /&gt;
** Ski_test_models.scr size: 470kb (Version 1.23, 20040627)&lt;br /&gt;
**Ski_test_models-20040627.zip size: 72kb (sources) &lt;br /&gt;
* Complete test version, all models tested in a single run:&lt;br /&gt;
** Ski_test_all_models.scr size: 470kb (Version 1.00, 20040714)&lt;br /&gt;
** Ski_test_all_models-20040714.zip size: 77kb (sources) &lt;br /&gt;
* 'Test all bases' models, all in a single run:&lt;br /&gt;
** Ski_test_bases_models.scr size: 470kb (Version 1.00, 20040714)&lt;br /&gt;
** Ski_test_bases_models-20040714.zip size: 90kb (sources) &lt;br /&gt;
&lt;br /&gt;
Look for &amp;quot;SFC:OP Models Tester&amp;quot; scripts on http://klingon.pet.dhs.org/sources_and_utils/ .&lt;/div&gt;</summary>
		<author><name>Firesoul</name></author>	</entry>

	</feed>