Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. QuickCheck properties on monadic values (Ashish Agarwal)
2. Re: QuickCheck properties on monadic values (Rahul Kapoor)
3. Re: QuickCheck properties on monadic values
(Jonas Almstr?m Dureg?rd)
----------------------------------------------------------------------
Message: 1
Date: Fri, 21 May 2010 12:47:30 -0400
From: Ashish Agarwal <[email protected]>
Subject: [Haskell-beginners] QuickCheck properties on monadic values
To: Haskell-beginners <[email protected]>
Message-ID:
<[email protected]>
Content-Type: text/plain; charset="iso-8859-1"
I've been using the binary library, and would like to test whether my put
and get functions are inverses. I thought of using QuickCheck but it is not
clear how I can write the necessary property. I skimmed Claessen, Hughes,
"Testing monadic code with QuickCheck", but their examples require a lot of
extra work (e.g. their queue example requires an AST for a mini-queue
language). Am I missing something obvious?
Also, what's the difference between QuickCheck 1 and 2? I'm on gch 6.10 and
doing `cabal install QuickCheck` gives me version 1.2.0.0, which lacks
constructs described in the above paper.
Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/beginners/attachments/20100521/1d24cd31/attachment-0001.html
------------------------------
Message: 2
Date: Fri, 21 May 2010 14:27:45 -0400
From: Rahul Kapoor <[email protected]>
Subject: Re: [Haskell-beginners] QuickCheck properties on monadic
values
To: Ashish Agarwal <[email protected]>
Cc: Haskell-beginners <[email protected]>
Message-ID:
<[email protected]>
Content-Type: text/plain; charset=ISO-8859-1
Ashish
Test.QuickCheck.Monadic should give you the building blocks you need.
For example here is a snippet which turns a value and a function of
type a -> IO a
into a regular property.
import Test.QuickCheck.Monadic (monadicIO, assert, run, pick)
..
..
propIO :: Show a => Gen a -> (a -> IO Bool) -> Property
propIO gen prop = monadicIO $ do
v <- pick gen
b <- run $ prop v
assert b
You can find some examples of madic quick check properties at:
http://github.com/trie/yay/blob/master/tests/Syck.hs
HTH,
Rahul
On Fri, May 21, 2010 at 12:47 PM, Ashish Agarwal <[email protected]> wrote:
> I've been using the binary library, and would like to test whether my put
> and get functions are inverses. I thought of using QuickCheck but it is not
> clear how I can write the necessary property. I skimmed Claessen, Hughes,
> "Testing monadic code with QuickCheck", but their examples require a lot of
> extra work (e.g. their queue example requires an AST for a mini-queue
> language). Am I missing something obvious?
> Also, what's the difference between QuickCheck 1 and 2? I'm on gch 6.10 and
> doing `cabal install QuickCheck` gives me version 1.2.0.0, which lacks
> constructs described in the above paper.
> Thanks.
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/beginners
>
>
------------------------------
Message: 3
Date: Fri, 21 May 2010 21:52:31 +0200
From: Jonas Almstr?m Dureg?rd <[email protected]>
Subject: Re: [Haskell-beginners] QuickCheck properties on monadic
values
To: [email protected]
Cc: Haskell-beginners <[email protected]>
Message-ID:
<[email protected]>
Content-Type: text/plain; charset=ISO-8859-1
Rahul's solution requires QC2, so do cabal install QuickCheck-2.1.0.3.
/Jonas
On 21 May 2010 20:27, Rahul Kapoor <[email protected]> wrote:
> Ashish
>
> Test.QuickCheck.Monadic should give you the building blocks you need.
>
> For example here is a snippet which turns a value and a function of
> type a -> IO a
> into a regular property.
>
> import Test.QuickCheck.Monadic (monadicIO, assert, run, pick)
> ..
> ..
> propIO :: Show a => Gen a -> (a -> IO Bool) -> Property
> propIO gen prop = monadicIO $ do
> v <- pick gen
> b <- run $ prop v
> assert b
>
>
> You can find some examples of madic quick check properties at:
> http://github.com/trie/yay/blob/master/tests/Syck.hs
>
>
> HTH,
> Rahul
>
> On Fri, May 21, 2010 at 12:47 PM, Ashish Agarwal <[email protected]>
> wrote:
>> I've been using the binary library, and would like to test whether my put
>> and get functions are inverses. I thought of using QuickCheck but it is not
>> clear how I can write the necessary property. I skimmed Claessen, Hughes,
>> "Testing monadic code with QuickCheck", but their examples require a lot of
>> extra work (e.g. their queue example requires an AST for a mini-queue
>> language). Am I missing something obvious?
>> Also, what's the difference between QuickCheck 1 and 2? I'm on gch 6.10 and
>> doing `cabal install QuickCheck` gives me version 1.2.0.0, which lacks
>> constructs described in the above paper.
>> Thanks.
>>
>> _______________________________________________
>> Beginners mailing list
>> [email protected]
>> http://www.haskell.org/mailman/listinfo/beginners
>>
>>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/beginners
>
------------------------------
_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners
End of Beginners Digest, Vol 23, Issue 34
*****************************************