<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div><div>#lang racket</div><div><br></div><div>(provide drop to-energy)</div><div><br></div><div>(module+ test</div><div> (require rackunit)</div><div> (define ε 1e-10))</div><div><br></div><div>(define (drop t)</div><div> (* 1/2 9.8 t t))</div><div> </div><div>(module+ test</div><div> (define-test-suite test1</div><div> (check-= (drop 0) 0 ε)</div><div> (check-= (drop 10) 490 ε)))</div><div> </div><div>(define (to-energy m)</div><div> (* m (expt 299792458.0 2)))</div><div> </div><div>(module+ test</div><div> (define-test-suite test2</div><div> (check-= (to-energy 0) 0 ε)</div><div> (check-= (to-energy 1) 9e+16 1e+15)))</div><div><br></div><div>(module+ test</div><div> (time (run-test (make-test-suite "both" (list test1 test2)))))</div></div><div><br></div><div><br></div><div>-- Matthias</div><div><br></div><div><br></div><br><div><div>On Aug 8, 2012, at 5:50 PM, Joe Gilray wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Sorry Matthias, but I don't understand the mechanics. I've read the guide, but I don't see how to do what I'd like without timing outside of the module.<div><br></div><div>To be clear, what do I add to the following file (from the docs) in order to time the duration of all the four checks combined?</div>
<div><br></div><div><table cellspacing="0" class="RktBlk" style="white-space:inherit;text-align:left;font-family:serif;background-color:rgb(255,255,255)"><tbody><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit">
<a href="http://pre.racket-lang.org/docs/html/guide/Module_Syntax.html#(part._hash-lang)" class="RktModLink" style="text-decoration:none;color:blue"><span class="RktMod" style="font-family:monospace;white-space:inherit;color:black">#lang</span></a><span class="hspace" style="font-family:monospace"> </span><a href="http://pre.racket-lang.org/docs/html/reference/index.html" class="RktModLink" style="text-decoration:none;color:blue"><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">racket</span></a></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/reference/module.html#(form._((lib._racket/private/base..rkt)._module+))" class="RktStxLink" style="text-decoration:none;color:black">module+</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">test</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/reference/require.html#(form._((lib._racket/private/base..rkt)._require))" class="RktStxLink" style="text-decoration:none;color:black">require</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">rackunit</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/reference/define.html#(form._((lib._racket/private/base..rkt)._define))" class="RktStxLink" style="text-decoration:none;color:black">define</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">ε</span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">1e-10</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span></td></tr><tr style="white-space:inherit">
<td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/reference/require.html#(form._((lib._racket/private/base..rkt)._provide))" class="RktStxLink" style="text-decoration:none;color:black">provide</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">drop</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">to-energy</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span></td></tr><tr style="white-space:inherit">
<td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/reference/define.html#(form._((lib._racket/private/base..rkt)._define))" class="RktStxLink" style="text-decoration:none;color:black">define</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">drop</span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">t</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/reference/generic-numbers.html#(def._((quote._~23~25kernel)._*))" class="RktValLink" style="text-decoration:none;color:blue">*</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">1/2</span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">9.8</span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">t</span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">t</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span></td></tr><tr style="white-space:inherit">
<td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/reference/module.html#(form._((lib._racket/private/base..rkt)._module+))" class="RktStxLink" style="text-decoration:none;color:black">module+</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">test</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/rackunit/api.html#(def._((lib._rackunit/main..rkt)._check-~3d))" class="RktValLink" style="text-decoration:none;color:blue">check-=</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">drop</span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">0</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">0</span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">ε</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/rackunit/api.html#(def._((lib._rackunit/main..rkt)._check-~3d))" class="RktValLink" style="text-decoration:none;color:blue">check-=</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">drop</span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">10</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">490</span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">ε</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span></td></tr><tr style="white-space:inherit">
<td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/reference/define.html#(form._((lib._racket/private/base..rkt)._define))" class="RktStxLink" style="text-decoration:none;color:black">define</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">to-energy</span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">m</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/reference/generic-numbers.html#(def._((quote._~23~25kernel)._*))" class="RktValLink" style="text-decoration:none;color:blue">*</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">m</span><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/reference/generic-numbers.html#(def._((quote._~23~25kernel)._expt))" class="RktValLink" style="text-decoration:none;color:blue">expt</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">299792458.0</span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">2</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span></td></tr><tr style="white-space:inherit">
<td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/reference/module.html#(form._((lib._racket/private/base..rkt)._module+))" class="RktStxLink" style="text-decoration:none;color:black">module+</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">test</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/rackunit/api.html#(def._((lib._rackunit/main..rkt)._check-~3d))" class="RktValLink" style="text-decoration:none;color:blue">check-=</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">to-energy</span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">0</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">0</span><span class="hspace" style="font-family:monospace"> </span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">ε</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span></td>
</tr><tr style="white-space:inherit"><td style="padding-left:0px;padding-right:0px;vertical-align:baseline;white-space:inherit"><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)"><a href="http://pre.racket-lang.org/docs/html/rackunit/api.html#(def._((lib._rackunit/main..rkt)._check-~3d))" class="RktValLink" style="text-decoration:none;color:blue">check-=</a></span><span class="hspace" style="font-family:monospace"> </span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">(</span><span class="RktSym" style="font-family:monospace;white-space:inherit;color:rgb(38,38,128)">to-energy</span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">1</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">9e+16</span><span class="hspace" style="font-family:monospace"> </span><span class="RktVal" style="font-family:monospace;white-space:inherit;color:rgb(34,139,34)">1e+15</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span><span class="RktPn" style="font-family:monospace;white-space:inherit;color:rgb(132,60,36)">)</span></td>
</tr></tbody></table><br>I know that running the file in DrRacket will run the tests, but I'd like to time them.</div><div><br></div><div>Thanks (again!),</div><div>-Joe</div><div><br><div class="gmail_quote">On Wed, Aug 8, 2012 at 1:46 PM, Matthias Felleisen <span dir="ltr"><<a href="mailto:matthias@ccs.neu.edu" target="_blank">matthias@ccs.neu.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div>The submodules are woven together so wrapping (test) with (time ...) should work fine. </div>
<div><div class="h5"><div><br></div><br><div><div>On Aug 8, 2012, at 4:18 PM, Joe Gilray wrote:</div><br><blockquote type="cite">Thanks Matthias,<div><br></div><div>Is there an easy way to "internally" time the duration of all tests? with test-engine I could use (time (test)), with all the tests in a test submodule do I have to do the timing externally? I.e "TimeThis raco test myfile.rkt"?</div>
<div><br></div><div>-Joe<br><br><div class="gmail_quote">On Wed, Aug 8, 2012 at 6:31 AM, Matthias Felleisen <span dir="ltr"><<a href="mailto:matthias@ccs.neu.edu" target="_blank">matthias@ccs.neu.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div>This first example shows how to use module+ test with test-engine: </div>
<div><br></div><div><div>#lang racket</div><div><br></div><div>(module+ test </div><div> (require test-engine/racket-tests))</div><div><br></div><div>;; Int -> Int </div><div>;; adds 2 to n</div><div><br></div><div>(module+ test ;; setting up examples before you define the function </div>
<div> (check-expect (add2 3) 4)</div><div> (check-expect (add2 3) 5))</div><div><br></div><div>(define (add2 n)</div><div> (+ n 3))</div><div><br></div><div>(module+ test</div><div> (test)) ;; calling this function controls when you run the 'test suite'</div>
</div><div><br></div><div>All you need to know is that drracket requires submodules named test when you run the program, though this default can be changed via the language preference (see submodules to run, drop down menu). At the command line, racket test foo.rkt will require the test submodules but otherwise they are not run. </div>
<div><br></div><div>;; --- </div><div><br></div><div>This second example translates the first to rackunit: </div><div><br></div><div><div>#lang racket</div><div><br></div><div>(module+ test </div><div> (require rackunit))</div>
<div><br></div><div>;; Int -> Int </div><div>;; adds 2 to n</div><div><br></div><div>(module+ test</div><div> (check-equal? (add2 3) 4)</div><div> (check-equal? (add2 3) 5))</div><div><br></div><div>(define (add2 n)</div>
<div> (+ n 2))</div><div><br></div><div>The tests are always run when you require the test submodule (see above). </div><div><br></div><div>;; --- </div><div><br></div><div>With rackunit, you can also define test-suites (see docs, especially define/provide-test-suite. You compose these test suites, provide them, and run them if and when you wish by loading the proper module. </div>
<div><br></div><div>Please search for an earlier post of mine where I explain a specific arrangement of separate modules to make all of this convenient. </div><div><br></div><div>With submodules, you can stick these test suites into submodules and require those in some global test module. </div>
<span><font color="#888888"><div><br></div><div>-- Matthias</div><div><br></div><div> </div></font></span></div><div><div><div><br></div><div><br></div><div><br></div><div><div>On Aug 7, 2012, at 10:31 PM, Joe Gilray wrote:</div>
<br><blockquote type="cite">Hi Matthias,<div><br></div><div>I will take you up on your offer of an example... thanks!</div><div><br></div><div>I've read about test-suite and test-case, but I'm not sure of the best way to test each utility in a file.</div>
<div><br></div><div>Ideally the tests would be grouped with the functions:</div><div><br></div><div>(define f1 ...)</div><div>(module+ test </div><div> (test-equal? "f1-tests" (f1 1 2) 1)</div><div> (test-equal? "f1-tests" (f1 3 4) 4))</div>
<div><br></div><div><div>(define f2 ...)</div><div>(module+ test </div><div> (test-equal? "f2-tests" (f2 1 2) 1)</div><div> (test-equal? "f2-tests" (f2 3 4) 4))</div></div><div><br></div><div>etc.</div>
<div><br></div><div>I believe that the above scheme would work and run every time the enclosing file/module is run... right?</div><div><br></div><div>What if I want to control when all the tests are run? Can I somehow build a trigger to fire off all the tests? From the docs it looks like this is the purpose of test-suite, but I don't know the mechanics when the test cases are spread out in the file... maybe that isn't allowed and I will need to group the tests?</div>
<div><br></div><div>Thanks again,</div><div>-Joe<br><br><div class="gmail_quote">On Tue, Aug 7, 2012 at 6:00 PM, Matthias Felleisen <span dir="ltr"><<a href="mailto:matthias@ccs.neu.edu" target="_blank">matthias@ccs.neu.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><br>
On Aug 7, 2012, at 8:24 PM, Joe Gilray wrote:<br>
<br>
> Now that 5.3 is out, I've been reading about submodules and their support for testing. In the past I used test-engine/racket-tests for testing.<br>
><br>
> Can someone please give me a rundown of when to use rackunit and advantages/disadvantages of test-engine and rackunit?<br>
<br>
</div>-- test-engine provides test support for the teaching languages of DrRacket.<br>
-- rackunit is for 'adult' programmers, meaning programmers who have outgrown teaching languages.<br>
<br>
You can still use test-engine in plain #lang racket, and you could use rackunit in teaching languages.<br>
<br>
You can also use both with submodules especially (module+ test ...). Holler if you need examples -- Matthias<br>
<br>
<br>
<br>
<br>
</blockquote></div><br></div>
</blockquote></div><br></div></div></div></blockquote></div><br></div>
</blockquote></div><br></div></div></div></blockquote></div><br></div>
</blockquote></div><br></body></html>