<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Geekality &#187; TDD</title>
	<atom:link href="http://www.geekality.net/tag/tdd/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.geekality.net</link>
	<description>With a hint of Social Ineptitude</description>
	<lastBuildDate>Sun, 05 Feb 2012 17:53:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Test-Driven Development: By Example</title>
		<link>http://www.geekality.net/2009/12/01/test-driven-development-by-example/</link>
		<comments>http://www.geekality.net/2009/12/01/test-driven-development-by-example/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 17:36:16 +0000</pubDate>
		<dc:creator>Torleif</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.geekality.net/?p=858</guid>
		<description><![CDATA[I earlier wrote about the book, The Art of Unit Testing, which I finished a while ago. That book was very good and was focused on how to write good unit tests. It also mentioned Test-Driven Development, TDD, but not &#8230; <a href="http://www.geekality.net/2009/12/01/test-driven-development-by-example/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_861" class="wp-caption alignright" style="width: 249px"><img src="http://www.geekality.net/wp-content/uploads/2009/12/Test-Driven-Development-By-Example-Cover-239x300.jpg" alt="" title="Test Driven Development By Example" width="239" height="300" class="size-medium wp-image-861" /><p class="wp-caption-text">Book cover</p></div>I earlier wrote about the book, <a href="http://www.geekality.net/2009/11/03/the-art-of-unit-testing/">The Art of Unit Testing</a>, which I finished a while ago. That book was very good and was focused on how to write good unit tests. It also mentioned <a href="http://en.wikipedia.org/wiki/Test-driven_development">Test-Driven Development,</a> TDD, but not too much. The book I read next, which I finished a few days ago, was kind of the other way around. Pretty much only about TDD. And from the title, <em>Test-Driven Development: By Example</em>, that shouldn&#8217;t be much of a shocker <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt=':P' class='wp-smiley smiley-13' /> </p>
<p><span id="more-858"></span></p>
<p>The book is written by <a href="http://en.wikipedia.org/wiki/Kent_Beck">Kent Beck</a> and explains the basics about TDD. It does this pretty well, step by step, by example, just like the title says. The book also talks some about TDD in a more general sense. What it is, how it works, why it works, et cetera.</p>
<p>From the back-cover:</p>
<blockquote><p>Readers will learn to:
<ul>
<li>Solve complicated tasks, beginning with the simple and proceeding to the more complex.</li>
<li>Write automated tests before coding.</li>
<li>Grow a design organically by refactoring to add design decisions one at a time.</li>
<li>Create tests for more complicated logic, including reflection and exceptions.</li>
<li>Use patterns to decide what tests to write.</li>
<li>Create tests using xUnit, the architecture at the heart of many programmer-oriented testing tools.</li>
</ul>
</blockquote>
<p>It pretty much kept the promises <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt=':)' class='wp-smiley smiley-1' /> The only part I didn&#8217;t really like about this book was that I found much of the coding kind of messy. Could be because the languages used in the examples are Java and Python, which I don&#8217;t really like that much syntax-wise. An even more important reason though, is that I just finished reading The Art of Unit Testing <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt=':P' class='wp-smiley smiley-13' /> So, I suppose I have become a bit demanding when it comes to cleanliness when coding and writing unit-tests. I suppose that is a good thing <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt=':D' class='wp-smiley smiley-8' /> (I do however not claim in any way that the code I currently write is extremely clean in any way! But I do strive for it to be so ;) <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt=')' class='wp-smiley smiley-20' /> </p>
<p>I can really recommend this book to anyone who are curious to get familiar with TDD. I certainly see the value of doing TDD and is in the process of trying to incorporate it into my development habits.</p>
<blockquote><ol>
<li>Red &#8212; Write a little test that doesn&#8217;t work, and perhaps doesn&#8217;t even compile at first.</li>
<li>Green &#8212; Make the test work quicky, committing whatever sins necessary in the process.</li>
<li>Refactor &#8212; Eliminate all of the duplication created in merely getting the test to work.</li>
</ol>
<p>Red/green/refactor &#8212; the TDD mantra.</p></blockquote>
<p>You can get it at <a href="http://amzn.to/9kDFbg">Amazon</a>, and probably a lot of other places too as it is a pretty well-known book.</p>
<p class="wp-flattr-button"></p> <p><a href="http://www.geekality.net/?flattrss_redirect&amp;id=858&amp;md5=8f4af1e89317ff8ebea5d2c57dca65db" title="Flattr" target="_blank"><img src="http://www.geekality.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.geekality.net/2009/12/01/test-driven-development-by-example/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>C#: How to test asynchronous events</title>
		<link>http://www.geekality.net/2009/11/26/how-to-test-asynchronous-events/</link>
		<comments>http://www.geekality.net/2009/11/26/how-to-test-asynchronous-events/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 18:59:59 +0000</pubDate>
		<dc:creator>Torleif</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Async]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[NUnit]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.geekality.net/?p=826</guid>
		<description><![CDATA[The other day I had to test that an event was raised after some asynchronous work had been done. And since I currently am a total test newbie, this was a new thing for me. Say we have this simple &#8230; <a href="http://www.geekality.net/2009/11/26/how-to-test-asynchronous-events/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The other day I had to test that an event was raised after some asynchronous work had been done. And since I currently am a total test newbie, this was a new thing for me. Say we have this simple shell of a class:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> Worker<br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">event</span> EventHandler<span style="color: #008000;">&lt;</span>EventArgs<span style="color: #008000;">&gt;</span> Done<span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> Start<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #008000;">...</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<p>Let&#8217;s just assume it does some work, and is supposed to raise the Done event when it is&#8230; well&#8230; done. <!-- AUSCVUHQEPXB --></p>
<p><span id="more-826"></span></p>
<h2>Synchronous worker</h2>
<p>If the Worker class works synchronously, it would be no problem at all to test it. For example:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #008000;">&#91;</span>TestFixture<span style="color: #008000;">&#93;</span><br />
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> WorkerTests<br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#91;</span>Test<span style="color: #008000;">&#93;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> Start_WhenFinished_DoneEventIsRaised<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var worker <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Worker<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; var eventWasRaised <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">false</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; worker<span style="color: #008000;">.</span><span style="color: #0000FF;">Done</span> <span style="color: #008000;">+=</span> <span style="color: #008000;">&#40;</span>s, e<span style="color: #008000;">&#41;</span> <span style="color: #008000;">=&gt;</span> eventWasRaised <span style="color: #008000;">=</span> <span style="color: #0600FF; font-weight: bold;">true</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; worker<span style="color: #008000;">.</span><span style="color: #0000FF;">Start</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; Assert<span style="color: #008000;">.</span><span style="color: #0000FF;">That</span><span style="color: #008000;">&#40;</span>eventWasRaised<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<p>We simply add an event handler which sets a boolean flag when called, start the worker and then check if the flag was set or not. Easy peasy.</p>
<h2>Asynchronous worker</h2>
<p>What now if the Start method just sends the work to a new thread and returns immediately? Our current test can not be trusted at all in that case. It might pass and it might fail. Most likely fail. All depending on if it managed to finish its work and raise the event before we check the flag. And that would be unlikely to happen. Highly unlikely.</p>
<p>So what do we do? We use a <a href="http://msdn.microsoft.com/en-us/library/system.threading.manualresetevent.aspx">ManualResetEvent</a> instead of the boolean flag:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #008000;">&#91;</span>TestFixture<span style="color: #008000;">&#93;</span><br />
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> WorkerTests<br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#91;</span>Test<span style="color: #008000;">&#93;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> Start_WhenFinished_DoneEventIsRaised<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; var worker <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Worker<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; var eventWasRaised <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> ManualResetEvent<span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">false</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; worker<span style="color: #008000;">.</span><span style="color: #0000FF;">Done</span> <span style="color: #008000;">+=</span> <span style="color: #008000;">&#40;</span>s, e<span style="color: #008000;">&#41;</span> <span style="color: #008000;">=&gt;</span> eventWasRaised<span style="color: #008000;">.</span><span style="color: #0000FF;">Set</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; worker<span style="color: #008000;">.</span><span style="color: #0000FF;">Start</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; Assert<span style="color: #008000;">.</span><span style="color: #0000FF;">That</span><span style="color: #008000;">&#40;</span>eventWasRaised<span style="color: #008000;">.</span><span style="color: #0000FF;">WaitOne</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">500</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<p>Instead of checking that a flag has been set, we check that the event handler gives us a signal within a certain period of time. If it doesn&#8217;t give us that signal we can assume that the event was never raised or that the work simply took longer than we expected. Either case could probably be of interest <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt=':)' class='wp-smiley smiley-1' /> </p>
<p>Brilliant, simple and readable. Just how we like it <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt='8)' class='wp-smiley smiley-3' /> </p>
<h2>Credits</h2>
<p>I am still a total testing newbie at the moment and didn&#8217;t have a clue what to do, so after some failing google-fu I asked <a href="http://stackoverflow.com/questions/1770830/c-how-to-test-a-basic-threaded-worker-class">a question</a> about it at <a href="http://stackoverflow.com">StackOverflow</a>. My solution is based on <a href="http://stackoverflow.com/questions/1770830/c-how-to-test-a-basic-threaded-worker-class/1770862#1770862">one of the answers</a> I got there <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt=':)' class='wp-smiley smiley-1' /> </p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.geekality.net/2009/11/26/how-to-test-asynchronous-events/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Art of Unit Testing</title>
		<link>http://www.geekality.net/2009/11/03/the-art-of-unit-testing/</link>
		<comments>http://www.geekality.net/2009/11/03/the-art-of-unit-testing/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 21:04:42 +0000</pubDate>
		<dc:creator>Torleif</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Unit-Testing]]></category>

		<guid isPermaLink="false">http://www.geekality.net/?p=722</guid>
		<description><![CDATA[Have you gone through three years of computer science bachelor degree fun (or anything similar) and pretty much not heard a word about testing? Or have you heard from all your teachers that testing is extremely important, but never learned &#8230; <a href="http://www.geekality.net/2009/11/03/the-art-of-unit-testing/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.geekality.net/wp-content/uploads/2009/11/osherove_cover150.jpg" alt="The Art of Unit Testing (Book cover)" title="The Art of Unit Testing (Book cover)" width="150" height="186" class="alignright size-full wp-image-723" />Have you gone through three years of computer science bachelor degree fun (or anything similar) and pretty much not heard a word about testing? Or have you heard from all your teachers that testing is <em>extremely important</em>, but never learned how to even write one? That has been the case for me. <cite>Testing is important, you all got to do it, it is very important, always test, do it a lot!</cite> Well, sure&#8230; but how do I do it? How do I write one of these tests?</p>
<p><span id="more-722"></span></p>
<p>The last book I finished is called <a href="http://www.manning.com/osherove/">The Art of Unit Testing</a>, and I am <em>so</em> happy that I stumbled over that book. Spring 2009 I was at a developer conference called <a href="http://www.ndc2009.no/">NDC 2009</a> (Norwegian Developer Conference) and it was <em>really</em> great. If you have the time, you should go to that website and have a look. You can watch most of the talks there online. Anyways, the second day I attended a series of talks about <a href="http://en.wikipedia.org/wiki/Test_driven_development">Test Driven Development</a> with a great speaker called <a href="http://weblogs.asp.net/ROsherove/">Roy Osherove</a>. I learned a bunch and decided that TDD looks like something I should try to learn. However, I had a big problem. I didn&#8217;t even know how to write a test. And doing TDD without knowing how to write a test is kind of difficult&#8230; to say the least&#8230;</p>
<p>Anyways, this Roy Osherove person advertised that he had just finished a book about pretty much exactly that; writing unit tests. So, I decided to get myself a copy of it. </p>
<p>It was great! Seriously learned <em>a lot</em>. It covers the following subjects (yes, that would be the table of contents).</p>
<ol>
<li>The basics of unit testing</li>
<li>A first unit test</li>
<li>Using stubs to break dependencies</li>
<li>Interaction testing using mock objects</li>
<li>Isolation (mock object) frameworks</li>
<li>Test hierarchies and organization</li>
<li>The pillars of good tests</li>
<li>Integrating unit testing into the organization</li>
<li>Design and testability (Appendix A)</li>
<li>Extra tools and frameworks (Appendix B)</li>
</ol>
<p>It is only 283 pages long (including the appendixes) and a pretty quick and easy read. Which I like. I got sucked in, and it was finished <em>fast</em>. Probably should read it again some time <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt=':P' class='wp-smiley smiley-13' /> But anyways: I previously did not even know how to write a single unit test in any language. Now I do <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt=':)' class='wp-smiley smiley-1' /> </p>
<p>You can get it from for example <a href="http://www.manning.com/osherove/">Manning</a> (who is the publisher) or from <a href="http://amzn.to/arNq7g">Amazon</a>. I would probably get it from Amazon since they seem to have a 34% discount currently&#8230; Except I already have it, of course <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt=':P' class='wp-smiley smiley-13' /> </p>
<p>If you want to learn how to do unit testing, I can recommend it with all my heart <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt=':)' class='wp-smiley smiley-1' /> </p>
<p>Oh, by the way, when you buy this book, you even get a free eBook version of it! Which is totally brilliant, since then you can have the book and read it at home, but you can also for example put the eBook version on your <a href="http://en.wikipedia.org/wiki/Netbook">netbook</a> and read while travelling. Awesome all the way <img src='http://www.geekality.net/wp-includes/images/blank.gif' alt='8)' class='wp-smiley smiley-3' /> Wish more publishers or authors (or whoever decides) were like that&#8230;</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.geekality.net/2009/11/03/the-art-of-unit-testing/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Project Euler: Just two tiny notes</title>
		<link>http://www.geekality.net/2009/09/25/project-euler-just-two-tiny-notes/</link>
		<comments>http://www.geekality.net/2009/09/25/project-euler-just-two-tiny-notes/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 20:47:34 +0000</pubDate>
		<dc:creator>Torleif</dc:creator>
				<category><![CDATA[Project Euler]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.geekality.net/?p=535</guid>
		<description><![CDATA[Just two things I felt like mentioning: Thing number one I got tired of the page 2 stuff. So, I swapped all the &#60;!&#8211;nextpage&#8211;&#62; things with &#60;!&#8211;more&#8211;&#62; and a header. Which means that the solution will now be on the &#8230; <a href="http://www.geekality.net/2009/09/25/project-euler-just-two-tiny-notes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just two things I felt like mentioning:</p>
<h2>Thing number one</h2>
<p>I got tired of the page 2 stuff. So, I swapped all the &lt;!&#8211;nextpage&#8211;&gt; things with &lt;!&#8211;more&#8211;&gt; and a header. Which means that the solution will now be on the same page as the problem. (Although not on the index page).</p>
<h2>Thing number two</h2>
<p>My brother puts his whole solution on a public subversion repository, which is a very good idea. Following his good example, <del datetime="2010-05-15T19:19:50+00:00">I did a repository dump of my local VisualSVN Server and&#8230; undumped(??) it into one I set up here on my web host which I will be using from now on instead.</del></p>
<p><strong>Update:</strong> SubVersion turned out to be a bit blah sometimes, so I am trying out Mercurial now instead. The repository has been converted and published on <a href="http://bitbucket.org/svish/project-euler">BitBucket</a>. Mercurial seems a lot nicer than SubVersion so far. You can find a very good introduction at <a href="http://hginit.com/">hginit.com</a>.</p>
<h2>Thing number three</h2>
<p><img src="http://www.geekality.net/wp-content/uploads/2009/09/works-on-my-machine-starburst.png" alt="Works On My Machine" title="Works On My Machine" width="200" height="193" class="alignright size-full wp-image-536" />Ok, ok, the topic says two, but I just figured I should maybe mention one more thing. You see, the code you will find in my aforementioned subversion repository cannot be run. Like, there is no main method or anything there. That is because I am trying to teach myself how to use test cases, etc. So, instead of creating an executable program for each problem or one program with fancy &#8220;Solve problem #n&#8221;-buttons, I decided to just do it all in test cases. So, my solutions are actually found as part of the test project (well, the running of them anyways). I am using <a href="http://testdriven.net/">TestDriven.net</a> to run them, and it works great. This way I can also do a lot of changes, and then just run my tests and make sure that all my solutions still calculate correctly. Awesome stuff.</p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.geekality.net/2009/09/25/project-euler-just-two-tiny-notes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

