test.generative and data.generators

2013-07-15 Thread Andreas Liljeqvist
So, I find that what they provide are absolutely fantastic.
But I don't see much action around them, are they considered maintained?

Things on my wishlish:
Shrinking of failing inputs.
More readable reports.
A couple of blogs or videos discussing them, I think that most people don't
know what they are used for.

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: test.generative and data.generators

2013-07-15 Thread Chas Emerick
Shrinking is a key requirement for me as well (1000-line-long data literals 
that produce a failure are better than nothing, but not quite as nice as its 
shrunken 40-character literal that provokes the same failure).  You might be 
interested in simple-check, which is a Clojure property-based testing tool 
inspired by QuickCheck, and so its support for shrinking is essential:

https://github.com/reiddraper/simple-check/

I've been using it for some weeks now with good results.

Cheers,

- Chas

On Jul 15, 2013, at 7:35 AM, Andreas Liljeqvist wrote:

 So, I find that what they provide are absolutely fantastic.
 But I don't see much action around them, are they considered maintained?
 
 Things on my wishlish: 
 Shrinking of failing inputs.
 More readable reports.
 A couple of blogs or videos discussing them, I think that most people don't 
 know what they are used for.
 
 -- 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with your 
 first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.
  
  

-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: test.generative and data.generators

2013-07-15 Thread Andreas Liljeqvist
Hi, I have taken a look at simple-check.

Seems promising, but I have a few reservations:

I want to constrain the generation of two vectors to always have the same
number of elements as the other one.
From what I can understand simple-check always uses the same max-size in a
property and have no current means to control the min length.

Its kind of hard to inspect what values I am actually generating since the
generator functions return non-runnable functions.
(without any scaffolding).

Really I think that data.generators would fit nicely into simple-check.
(I am not well-versed in the domain though...)

I like the general feel of simple-check and shrinking rocks.




On Mon, Jul 15, 2013 at 2:24 PM, Chas Emerick c...@cemerick.com wrote:

 Shrinking is a key requirement for me as well (1000-line-long data
 literals that produce a failure are better than nothing, but not quite as
 nice as its shrunken 40-character literal that provokes the same failure).
  You might be interested in simple-check, which is a Clojure
 property-based testing tool inspired by QuickCheck, and so its support for
 shrinking is essential:

 https://github.com/reiddraper/simple-check/

 I've been using it for some weeks now with good results.

 Cheers,

 - Chas

 On Jul 15, 2013, at 7:35 AM, Andreas Liljeqvist wrote:

 So, I find that what they provide are absolutely fantastic.
 But I don't see much action around them, are they considered maintained?

 Things on my wishlish:
 Shrinking of failing inputs.
 More readable reports.
 A couple of blogs or videos discussing them, I think that most people
 don't know what they are used for.

 --
 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.




  --
 --
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clojure@googlegroups.com
 Note that posts from new members are moderated - please be patient with
 your first post.
 To unsubscribe from this group, send email to
 clojure+unsubscr...@googlegroups.com
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 ---
 You received this message because you are subscribed to the Google Groups
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to clojure+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/groups/opt_out.




-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.




Re: test.generative and data.generators

2013-07-15 Thread Reid Draper


On Monday, July 15, 2013 9:41:03 AM UTC-5, Andreas Liljeqvist wrote:

 Hi, I have taken a look at simple-check.

 Seems promising, but I have a few reservations:

 I want to constrain the generation of two vectors to always have the same 
 number of elements as the other one.
 From what I can understand simple-check always uses the same max-size in a 
 property and have no current means to control the min length.


This is doable today, but ensuring they stay the same length as each other 
during shrinking is not yet possible. simple-check will need to support 
overriding the shrink function for this to work. That's on my TODO list. 
I'll try and add some documentation
for writing generators like this soon, but in the meantime, take a look at 
how the vector generator is implemented [1]. Your custom generator would 
just use `num-elements` twice, for each of the two vectors that need to be 
the same length.

[1] 
https://github.com/reiddraper/simple-check/blob/bbd90a76d78f5cdf25b22d9eec9fc7eedf2c8d09/src/simple_check/generators.clj#L261-L262
 


 Its kind of hard to inspect what values I am actually generating since the 
 generator functions return non-runnable functions.
 (without any scaffolding).


This is what simple-check.generators/sample is for. Check out it's 
implementation to see how the generators are called.
 


 Really I think that data.generators would fit nicely into simple-check.
 (I am not well-versed in the domain though...)


Yeah, I've been thinking about writing a little function that would lift 
data.generators generators into simple-check generators, but haven't gotten 
around to it yet. Should be pretty trivial though.
 


 I like the general feel of simple-check and shrinking rocks.


Awesome, thanks for checking it out.
 





 On Mon, Jul 15, 2013 at 2:24 PM, Chas Emerick ch...@cemerick.comjavascript:
  wrote:

 Shrinking is a key requirement for me as well (1000-line-long data 
 literals that produce a failure are better than nothing, but not quite as 
 nice as its shrunken 40-character literal that provokes the same failure). 
  You might be interested in simple-check, which is a Clojure 
 property-based testing tool inspired by QuickCheck, and so its support for 
 shrinking is essential:

 https://github.com/reiddraper/simple-check/

 I've been using it for some weeks now with good results.

 Cheers,

 - Chas

 On Jul 15, 2013, at 7:35 AM, Andreas Liljeqvist wrote:

 So, I find that what they provide are absolutely fantastic.
 But I don't see much action around them, are they considered maintained?

 Things on my wishlish: 
 Shrinking of failing inputs.
 More readable reports.
 A couple of blogs or videos discussing them, I think that most people 
 don't know what they are used for.

 -- 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clo...@googlegroups.comjavascript:
 Note that posts from new members are moderated - please be patient with 
 your first post.
 To unsubscribe from this group, send email to
 clojure+u...@googlegroups.com javascript:
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+u...@googlegroups.com javascript:.
 For more options, visit https://groups.google.com/groups/opt_out.
  
  


  -- 
 -- 
 You received this message because you are subscribed to the Google
 Groups Clojure group.
 To post to this group, send email to clo...@googlegroups.comjavascript:
 Note that posts from new members are moderated - please be patient with 
 your first post.
 To unsubscribe from this group, send email to
 clojure+u...@googlegroups.com javascript:
 For more options, visit this group at
 http://groups.google.com/group/clojure?hl=en
 --- 
 You received this message because you are subscribed to the Google Groups 
 Clojure group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to clojure+u...@googlegroups.com javascript:.
 For more options, visit https://groups.google.com/groups/opt_out.
  
  




-- 
-- 
You received this message because you are subscribed to the Google
Groups Clojure group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
Clojure group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.