On Wednesday, June 15, 2016 at 1:36:54 PM UTC-5, Oded Badt wrote:
>
> From https://clojure.org/guides/spec#_collections:
> *One important aspect of coll-of and map-of is that they both sample their 
> inputs, checking only a subset of the values for performance reasons. Due 
> to this, conform of these specs does not flow conformed values (because 
> they are not all conformed).*
>
>
This is really referring to something like this:

(s/explain (s/map-of keyword? string?) (zipmap (range 10) (range 10))
val: {0 0, 7 7, 1 1, 4 4, 6 6, 3 3, 2 2, 9 9, 5 5, 8 8} fails predicate: 
(coll-checker (tuple keyword? string?))

The spec fails but does not indicate more precisely the tuple where the 
error failed.

 

> From playing around a bit and reading the sources I came to the conclusion 
> that the above means that values are indeed returned by conform but those 
> values (specifically, from the sources, after the first 100 values) do 
> not necessarily conform to the predicates, is that the correct way to read 
> the above?
>

But also, yes that is how the predicates are checked.
 

> Are there any plans of implementing a more statistical approach in the 
> future in order to increase the chance of finding bugs?
>

No.
 

>
> Is it a bad idea to bind *coll-check-limit* to infinity in a local thread 
> binding for more thorough possibly time and CPU consuming testing of a 
> specific function?
>

That's up to you. Because this has come up a number of times, Rich may add 
some variant for this kind of thing in the future. 

-- 
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/d/optout.

Reply via email to