On Wed, 12 Jan 2011, Serge Le Huitouze wrote:

Also, I wonder how you guys do when you're trying to tests code
using a lot of  numbers (be them floating point or even integer).

Machine size integers and floating point numbers are indeed nasty. I test a lot in NumericPrelude with QuickCheck, but then I test on Integers and Rationals in order to see whether my algorithms are in principle correct. I can test floating point algorithms only with approximate equality tests and finding general valid tolerances is difficult, as you pointed out.


E.g., integers:
A code doing addition and substraction of some sort.
A property such as "X = (X add Y) sub Y" is easily falsifiable when
the number of bits of your integer is too small for your numbers.

Since fix-width words represent modulo-arithmetic, your law would even hold in case of overflows.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to