How about this:
(defmacro matches [value pattern]
`(is (match ~value ~pattern true :else false)
(str "(match " ~value " " '~pattern ")")))
(let [a {:x 2}]
(matches a {:y _}))
; => FAIL
; => (match {:x 2} {:y _})
; => expected: (clojure.core.match/match a {:y _} true :else false)
; => actual: false
> On Jun 21, 2015, at 10:24 AM, whodidthis <[email protected]> wrote:
>
> It would be fun to use core.match to have an easier time testing results that
> are hash-maps of different patterns. I'm just having a difficult time to get
> failing cases' input values show up in test results:
>
> (use 'clojure.test)
> (require '[clojure.core.match :refer [match]])
>
> (defmacro matches [value pattern]
> <> `(match ~value
> <> ~pattern true
> <> :else false))
> <>
> <>(let [a {:x 2}]
> <> (is (= a {:y 3})))
> <>; => FAIL
> <>; => expected: (= a {:y 3})
> <>; => actual: (not (= {:x 2} {:y 3}))
> <>
> <>(let [a {:x 2}]
> <> (is (matches a {:y _})))
> <>; => FAIL
> <>; => expected: (matches a {:y _})
> <>; => actual: false
>
> What I would like is have more around
> ; => actual: (not (matches {:x 2} {:y _}))
> if possible
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.