Cool stuff! I&#39;ll have a look later. Thanks.<br><br><div class="gmail_quote">On Sat, Aug 7, 2010 at 9:53 PM, Nick Sabalausky <span dir="ltr">&lt;a@a.a&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
&quot;Andrej Mitrovic&quot; &lt;<a href="mailto:andrej.mitrovich@gmail.com">andrej.mitrovich@gmail.com</a>&gt; wrote in message<br>
news:mailman.175.1281208901.13841.digitalmars-d@puremagic.com...<br>
<div class="im">&gt; You know, I just had an idea. It would be really cool to have some sort of<br>
&gt; generalized template function which can test other functions in various<br>
&gt; ways. You could pass strings as options, where you might choose the type<br>
&gt; of<br>
&gt; testing being done, such as verification tests or performance tests.. Or<br>
&gt; if<br>
&gt; a function is designed to write a file on disk, maybe you&#39;d want to have<br>
&gt; an<br>
&gt; option for the maximum number of tests to run on that function (you don&#39;t<br>
&gt; want to be left with 10000 files written in some temp directory<br>
&gt; somewhere..), or a test to see if a function will fail with invalid input,<br>
&gt; etc.<br>
&gt;<br>
&gt; Well it&#39;s just an idea, I better take a look at the existing test<br>
&gt; frameworks<br>
&gt; and see how it&#39;s done there.<br>
&gt;<br>
<br>
</div>Probably not quite as fancy as what you&#39;re talking about, but my SemiTwist D<br>
Tools library has a module that includes something that&#39;s similar to assert<br>
but:<br>
<br>
- Allows to you verify that a particular statement throws a particular type<br>
of exception.<br>
- Properly reports if an expression throws (and you didn&#39;t expect it to).<br>
- Doesn&#39;t abort the program on failure.<br>
- Reports &quot;expected&quot; expression and &quot;actual&quot; value.<br>
<br>
<a href="http://www.dsource.org/projects/semitwist/browser/trunk/src/semitwist/apps/tests/deferAssertTest/main.d" target="_blank">http://www.dsource.org/projects/semitwist/browser/trunk/src/semitwist/apps/tests/deferAssertTest/main.d</a><br>

<a href="http://www.dsource.org/projects/semitwist/browser/trunk/src/semitwist/util/deferAssert.d" target="_blank">http://www.dsource.org/projects/semitwist/browser/trunk/src/semitwist/util/deferAssert.d</a><br>
<br>
It does need some clean-up and improvements, but it at least works.<br>
(Although, trunk is currently in the process of switching from D1/Tango to<br>
D2/Phobos, so the latest revisions might be broken and it definitely doesn&#39;t<br>
take advantage of D2-specific features yet. But the version included with<br>
Goldie 0.3 does work fine on D1/Tango though).<br>
<br>
<br>
</blockquote></div><br>