Liking cljdoc? Tell your friends :D

com.gfredericks.test.chuck.generators

Yes this namespace's name has five components.

Yes this namespace's name has five components.
raw docstring

bounded-intclj/sdeprecated

(bounded-int low high)

DEPRECATED: see clojure.test.check.generators/large-integer*

Like clojure.test.check.generators/choose, but generates smallish numbers for small sizes.

Both bounds are inclusive.

DEPRECATED: see clojure.test.check.generators/large-integer*

Like clojure.test.check.generators/choose, but generates
smallish numbers for small sizes.

Both bounds are inclusive.
sourceraw docstring

bounded-recursive-genclj/s

(bounded-recursive-gen container-gen-fn scalar-gen max-breadth max-height)

Same as gen/recursive-gen but allows a bound on both breadth and height. Height = Number of levels of nesting. Eg: level of nesting = 0: [15 -4] level of nesting = 1: [[5 1 -3 -10 -18] [17]] Breadth = Number of elements in a level (number of elements in each vector, in the above eg).

Example 1: Breadth=2, Height=10 This means that no vector will contain more than 2 elements. and there will be at most 10 levels of nested vectors. (last (gen/sample (bounded-recursive-gen gen/vector gen/int 2 10) 20)) => [[[[[] []] [[[[[[[[-11 1] []]]] [[[[3 10] []]] []]] []] []] [[[[[[[16 10] []]] []] []] [[] []]] [[[[]]] []]]]] [[[[]] []]]]]

Example 2: Breadth=10, Height=2 (Opposite of ex 1) This means that no vector will contain more than 10 elements. and there will be atmost 2 levels of nested vectors. (last (gen/sample (bounded-recursive-gen gen/vector gen/int 10 2) 20)) => [[[11 5 3 8 15 -19 -12 -2] [7 3 -12 -11 0 -10 19 -19 -1] [16 -15 19 1]] [[6 -18 -14 -10 -7 -5 5] [7 10 -5] [-19 -5 3 -15 15 17 -18] [16 -15 10 -7] [14 3 5 9 -2 8 -7 11] [-5 17 -19 5 -9 7] [11 -1 -4 5] [-2 13 -16 -4] [-3 -12 -1] [4 15]]] There are atmost 2 nested levels, and no vector contains more than 10 elements.

Same as gen/recursive-gen but allows a bound on both breadth and height.
Height = Number of levels of nesting. Eg:
  level of nesting = 0: [15 -4]
  level of nesting = 1: [[5 1 -3 -10 -18] [17]]
Breadth = Number of elements in a level (number of elements in each vector,
in the above eg).

Example 1: Breadth=2, Height=10
This means that no vector will contain more than 2 elements.
and there will be at most 10 levels of nested vectors.
(last (gen/sample (bounded-recursive-gen gen/vector
                                         gen/int
                                         2 10) 20))
=> [[[[[] []]
      [[[[[[[[-11 1] []]]] [[[[3 10] []]] []]] []] []]
       [[[[[[[16 10] []]] []] []] [[] []]] [[[[]]] []]]]]
     [[[[]] []]]]]

Example 2: Breadth=10, Height=2 (Opposite of ex 1)
This means that no vector will contain more than 10 elements.
and there will be atmost 2 levels of nested vectors.
(last (gen/sample (bounded-recursive-gen gen/vector
                                         gen/int
                                         10 2) 20))
=> [[[11 5 3 8 15 -19 -12 -2] [7 3 -12 -11 0 -10 19 -19 -1] [16 -15 19 1]]
    [[6 -18 -14 -10 -7 -5 5]
     [7 10 -5]
     [-19 -5 3 -15 15 17 -18]
     [16 -15 10 -7]
     [14 3 5 9 -2 8 -7 11]
     [-5 17 -19 5 -9 7]
     [11 -1 -4 5]
     [-2 13 -16 -4]
     [-3 -12 -1]
     [4 15]]]
There are atmost 2 nested levels, and no vector contains more than 10
elements.
sourceraw docstring

cap-sizeclj/s

(cap-size max-size gen)

Wraps the given generator so that it is never called with a size larger than the max given.

Wraps the given generator so that it is never called with a size
larger than the max given.
sourceraw docstring

datetimeclj/sdeprecated

(datetime & args)

Use com.gfredericks.test.chuck.generators.clj-time/datetime instead.

Use com.gfredericks.test.chuck.generators.clj-time/datetime instead.
source (clj)source (cljs)raw docstring

doubleclj/sdeprecated

DEPRECATED: see clojure.test.check.generators/double

Generates a Double, which can include Infinity and -Infinity but not NaN.

DEPRECATED: see clojure.test.check.generators/double

Generates a Double, which can include Infinity and -Infinity
but not NaN.
sourceraw docstring

forclj/smacro

(for bindings expr)

Like clojure.core/for, but builds up a generator using bind, fmap, and such-that. The right half of each binding pair is a generator, and the left half is the value it's generating. The body of the for should be a generated value.

Both :let and :when are available as in clojure.core/for. Using :when will apply a filter to the previous generator via such-that.

An additional available clause is the :parallel clause, which is an alternative to tuple, for use when several generators are independent.

Like clojure.core/for, but builds up a generator using bind, fmap,
and such-that. The right half of each binding pair is a generator,
and the left half is the value it's generating. The body of the for
should be a generated value.

Both :let and :when are available as in clojure.core/for. Using
:when will apply a filter to the previous generator via such-that.

An additional available clause is the :parallel clause, which is an
alternative to tuple, for use when several generators are
independent.
sourceraw docstring

map->hash-mapclj/s

(map->hash-map m)

Like test.check.generators/hash-map, but takes a single map argument instead of varargs.

Like test.check.generators/hash-map, but takes a single map argument
instead of varargs.
sourceraw docstring

partitionclj/s

(partition coll)
(partition coll avg-size)

Generates a collection of collection of the elements in coll, such that concatting them together gives the original collection. None of the subcollections will be empty.

Generates a collection of collection of the elements in coll, such
that concatting them together gives the original collection. None of
the subcollections will be empty.
sourceraw docstring

string-from-regexclj

(string-from-regex regex)

Given a regular expression, returns a generator that generates strings matching that regular expression.

As jvm regular expressions are quite complex, and certain features are quite challenging to implement as generators, this function does not support all of their features. However, it tries to at least accurately recognize features that it doesn't support and throw helpful exceptions if it is called with a regular expression using any of those features.

Given a regular expression, returns a generator that generates
strings matching that regular expression.

As jvm regular expressions are quite complex, and certain features
are quite challenging to implement as generators, this function does
not support all of their features. However, it tries to at least
accurately recognize features that it doesn't support and throw
helpful exceptions if it is called with a regular expression using
any of those features.
sourceraw docstring

sub-mapclj/s

(sub-map m)

Given a concrete map, randomly selects keys from it to create a subset of the given map. Note: the generated maps may be empty.

Example:

(gen/sample (sub-map {:a 1 :b 2 :c 3})) => ({} {:b 2} {:b 2, :c 3} {:a 1} ...)

Given a concrete map, randomly selects keys from it to create a
subset of the given map. Note: the generated maps may be empty.

Example:

  (gen/sample (sub-map {:a 1 :b 2 :c 3}))
  => ({} {:b 2} {:b 2, :c 3} {:a 1} ...)
sourceraw docstring

subsequenceclj/s

(subsequence elements)

Given a collection, generates "subsequences" which are sequences of (not necessarily contiguous) elements from the original collection, in the same order. For collections of distinct elements this is effectively a subset generator, with an ordering guarantee.

Given a collection, generates "subsequences" which are sequences
of (not necessarily contiguous) elements from the original
collection, in the same order. For collections of distinct elements
this is effectively a subset generator, with an ordering guarantee.
sourceraw docstring

subsetclj/s

(subset elements)

Deprecated variant of subsequence that coerces the result to a set.

Deprecated variant of subsequence that coerces the result to a set.
sourceraw docstring

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close