This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-08-03
Channels
- # beginners (98)
- # boot (18)
- # chestnut (2)
- # cider (90)
- # cljdoc (3)
- # cljs-dev (1)
- # clojure (64)
- # clojure-dev (14)
- # clojure-dusseldorf (4)
- # clojure-italy (11)
- # clojure-nl (5)
- # clojure-spec (9)
- # clojure-uk (69)
- # clojurescript (63)
- # code-reviews (2)
- # core-logic (20)
- # cursive (13)
- # datomic (52)
- # dirac (2)
- # emacs (4)
- # figwheel (6)
- # hyperfiddle (13)
- # luminus (4)
- # nrepl (1)
- # off-topic (7)
- # onyx (9)
- # overtone (3)
- # parinfer (3)
- # pedestal (1)
- # re-frame (31)
- # reagent (74)
- # reitit (34)
- # rum (3)
- # shadow-cljs (51)
- # spacemacs (22)
- # specter (7)
- # tools-deps (23)
- # uncomplicate (3)
- # vim (9)
So question: I have the following...
(s/def ::name string?)
(s/def ::age (s/and integer? pos? #(< % 100)))
(s/def ::occupation #{:engineer :mechanic :manager :clerk})
(s/def ::person (s/keys :req [::name ::age ::occupation]))
(s/fdef do-it
:args (s/cat :people (s/coll-of ::person))
:ret (s/coll-of ::age))
(defn do-it
[people]
(map ::age people))
Running this does not work:
(stest/check `do-it)
=>ExceptionInfo Couldn't satisfy such-that predicate after 100 tries. clojure.core/ex-info (core.clj:4739)
However, I can exercise the fn:
(s/exercise-fn `do-it)
([([#:gentest.core{:name "", :age 1, :occupation :manager}]) (1)]
[([#:gentest.core{:name "A", :age 15, :occupation :engineer}]) (15)]
[([#:gentest.core{:name "", :age 3, :occupation :manager}]) (3)]
[([#:gentest.core{:name "nA0", :age 3, :occupation :clerk}]) (3)]
[([#:gentest.core{:name "1ZJO", :age 3, :occupation :engineer}]) (3)]
[([#:gentest.core{:name "80v", :age 20, :occupation :mechanic}]) (20)]
[([#:gentest.core{:name "M", :age 98, :occupation :engineer}]) (98)]
[([#:gentest.core{:name "", :age 2, :occupation :engineer}]) (2)]
[([#:gentest.core{:name "drn9G", :age 59, :occupation :mechanic}]) (59)]
[([#:gentest.core{:name "2p", :age 72, :occupation :clerk}]) (72)])
Why is this?