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 <ton...@gmail.com> 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 clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
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 clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to