Meikel  Brandmeyer avatar Meikel Brandmeyer committed 9cf9688

Added one-of combinator

* combinators.clj (one-of): new function

Comments (0)

Files changed (1)

src/de/kotka/tap/clojurecheck/combinators.clj

   | => (with-size s (let-gen [x [Integer 0 size]] x))"
   [sv & body]
   `(fn [_# size#] (arbitrary ((fn [~sv] ~@body) size#) size#)))
+
+(defn one-of
+  "one-of chooses one of the given generators with equal probability."
+  [& gens]
+  (let [len (dec (count gens))]
+    (let-gen [l [Integer 0 len]
+              v (nth gens l)]
+      v)))
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.