Skip to content

Instantly share code, notes, and snippets.

@mhuebert
Last active April 28, 2017 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mhuebert/8fdeedae57bf797778054dcf8f33ab8b to your computer and use it in GitHub Desktop.
Save mhuebert/8fdeedae57bf797778054dcf8f33ab8b to your computer and use it in GitHub Desktop.
Return vectors from a Clojure spec regular expression generator
(ns spec-test.as-vec
(:require [clojure.spec :as s :include-macros true]
[cljs.spec.impl.gen :as gen]
[clojure.test.check.generators]))
(defn as-vec
"Wrap the generator of expr to return a vector"
[expr]
(s/with-gen expr #(gen/bind (s/gen expr)
(comp gen/return vec))))
(s/def ::vec-test
(as-vec (s/cat :number int? :string (s/? string?))))
(prn (map first (s/exercise ::vec-test)))
;; returns
([0] [0 "i"] [-2 "6n"] [1 "6"] [1] [-11] [-2] [-2 "yKi"] [-1] [11 "2"])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment