<font face="verdana,sans-serif">Your implication is backwards. ==> is read "implies"</font><div><font face="verdana,sans-serif"><br></font></div><div><font face="verdana,sans-serif">So your way has "do blah with positive integers" implies "x > 0 && y > 0". That's backwards.</font></div>
<div><font face="verdana,sans-serif"><br></font></div><div><font face="verdana,sans-serif">Try prop_something x y = x > 0 && y > 0 ==> ... do blah with positive integers</font></div><div><font face="verdana,sans-serif"><br>
</font></div><div><font face="verdana,sans-serif"> - Clark</font></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Nov 13, 2012 at 4:52 PM, <span dir="ltr"><<a href="mailto:graham@fatlazycat.com" target="_blank">graham@fatlazycat.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks, will try them both. With regards to the implication I assume<br>
it's just regarded as one property test ?<br>
<br>
To get two values greater than zero I have something like<br>
<br>
prop_something x y = .......do blah with positive integers<br>
==> x > 0 && y > 0<br>
<br>
But my test fails as it appears to be injecting a negative number and<br>
the test fails. But the implication does not cause the failed test to be<br>
ignored.<br>
<br>
Must be missing something ???<br>
<br>
Thanks<br>
<div class="HOEnZb"><div class="h5"><br>
On Mon, Nov 12, 2012, at 10:00 PM, Iustin Pop wrote:<br>
> On Mon, Nov 12, 2012 at 10:14:30PM +0100, Simon Hengel wrote:<br>
> > On Mon, Nov 12, 2012 at 07:21:06PM +0000, <a href="mailto:graham@fatlazycat.com">graham@fatlazycat.com</a> wrote:<br>
> > > Hi,<br>
> > ><br>
> > > Trying to find some good docs on QuickCheck, if anyone has one ?<br>
> > ><br>
> > > Been scanning what I can find, but a question.<br>
> > ><br>
> > > What would be the best way to generate two different/distinct integers ?<br>
> ><br>
> > I would use Quickcheck's implication operator here:<br>
> ><br>
> > quickCheck $ \x y -> x /= (y :: Int) ==> ...<br>
><br>
> That's good, but it only eliminates test cases after they have been<br>
> generated. A slightly better (IMHO) version is to generate "correct"<br>
> values in the first place:<br>
><br>
> prop_Test :: Property<br>
> prop_Test =<br>
> forAll (arbitrary::Gen Int) $ \x -><br>
> forAll (arbitrary `suchThat` (/= x)) $ \y -><br>
> …<br>
><br>
> regards,<br>
> iustin<br>
<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br></div>