<div dir="ltr"><div><div>Definitely worth a try.<br><br></div><div>It seems like a large test space.<br></div><div><br></div>My expectation, based on what I've seen when we applied QuickCheck to haskanoid, would be that, with the standard generators, QuickCheck may be good at detecting things that will not normally happen in realistic simulations, but you may have to tune the generators to look for the more interesting cases you want to test, and that'll be similar-ish to writing your own test cases.</div><div><br></div><div>But I'd love to be proven wrong! :)<br><br></div>Ivan<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 29 July 2018 at 17:44, Brody Berg <span dir="ltr"><<a href="mailto:brodyberg@gmail.com" target="_blank">brodyberg@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">And you've already ruled out QuickCheck and friends?</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jul 29, 2018 at 2:08 AM,  <span dir="ltr"><<a href="mailto:mpevnev@gmail.com" target="_blank">mpevnev@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">As a part of a project, I write a collision detection system. It is in<br>
dire need of testing, but designing and writing tests for all possible<br>
pairs of types of colliding geometry would be a pretty big effort - not<br>
only I would have to calculate the fact of collision manually for<br>
20-something pairs of types of colliding geometry, I would also have to<br>
do so multiple times for each pair, since each pair requires several<br>
test cases.<br>
<br>
So the idea is to use an existing collision detection library to<br>
generate (a lot of) test cases from random data. I've found two such<br>
libraries for Haskell - HODE and Bullet. The problem is, Bullet bindings<br>
aren't documented at all, and HODE (which isn't really documented<br>
either, but at least lists available functions) is extremely ugly with<br>
IO all over the place, and manual tracking of objects' lifetimes (at<br>
least that's what I infer from `create :: World -> IO Body` and <br>
`destroyBody :: Body -> IO ()`, because again - no documentation).<br>
<br>
So my question is: does anyone know a library I could use? I'll pretty<br>
much settle for whatever.<br>
<span class="m_5246364288917267299HOEnZb"><font color="#888888"><br>
-- <br>
Michail.<br>
______________________________<wbr>_________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bi<wbr>n/mailman/listinfo/haskell-caf<wbr>e</a><br>
Only members subscribed via the mailman list are allowed to post.</font></span></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/haskell-<wbr>cafe</a><br>
Only members subscribed via the mailman list are allowed to post.<br></blockquote></div><br></div>