(ns my.test (:require [clojure.test.check :as tc :refer [quick-check]] [clojure.test.check.generators :as gen] [clojure.test.check.properties :as prop :include-macros true]))

Click here to make these examples interactive with ClojureScript.

clojure.test.check.properties

for-all

macro

(for-all bindings & body)

Macro sugar for for-all*. for-all lets you name the parameter and use them in expression, without wrapping them in a lambda. Like for-all*, it returns a property.

Examples

(for-all [a gen/int b gen/int] (>= (+ a b) a))

for-all*

(for-all* args function)

Creates a property (properties are also generators). A property is a generator that generates the result of applying the function under test with the realized arguments. Once realized, the arguments will be applied to function with apply.

Example:

(for-all* [gen/int gen/int] (fn [a b] (>= (+ a b) a)))