Cannot compare sets
Closed this issue · 2 comments
viebel commented
When two sets contains different elements, midje is unable to compare them.
I have been able to narrow down my problem to the following minimal cases:
(fact
#{"aa"} => #{"bb"})
(fact
{:a 1 :b #{"aa"}} => {:a 2 :b #{"aa"}})
which cause an exception:
1. Unhandled java.lang.ClassCastException
class midje.util.ordered_set.OrderedSet cannot be cast to class
midje.util.ordered_set.OrderedSet (midje.util.ordered_set.OrderedSet is in
unnamed module of loader clojure.lang.DynamicClassLoader @507760dc;
midje.util.ordered_set.OrderedSet is in unnamed module of loader
clojure.lang.DynamicClassLoader @3dfceefd)
ordered_set.clj: 129 midje.util.ordered-set/transient-ordered-set
ordered_set.clj: 128 midje.util.ordered-set/transient-ordered-set
ordered_set.clj: 90 midje.util.ordered-set.OrderedSet/asTransient
core.clj: 3347 clojure.core/transient
core.clj: 6895 clojure.core/into
core.clj: 6887 clojure.core/into
util.clj: 78 midje.emission.plugins.util/nested-sort
util.clj: 60 midje.emission.plugins.util/nested-sort
default_failure_lines.clj: 143 midje.emission.plugins.default-failure-lines/summarize
default_failure_lines.clj: 141 midje.emission.plugins.default-failure-lines/summarize
default.clj: 13 midje.emission.plugins.default/fail
default.clj: 12 midje.emission.plugins.default/fail
AFn.java: 154 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
Var.java: 705 clojure.lang.Var/applyTo
core.clj: 665 clojure.core/apply
core.clj: 660 clojure.core/apply
api.clj: 30 midje.emission.api/bounce-to-plugin
api.clj: 26 midje.emission.api/bounce-to-plugin
RestFn.java: 423 clojure.lang.RestFn/invoke
api.clj: 49 midje.emission.api/fail
api.clj: 46 midje.emission.api/fail
checkables.clj: 54 midje.checking.checkables/check-for-match
checkables.clj: 31 midje.checking.checkables/check-for-match
checkables.clj: 83 midje.checking.checkables/check-result
checkables.clj: 81 midje.checking.checkables/check-result
checkables.clj: 129 midje.checking.checkables/check-one/fn
thread_safe_var_nesting.clj: 32 midje.util.thread-safe-var-nesting/with-altered-roots*
thread_safe_var_nesting.clj: 30 midje.util.thread-safe-var-nesting/with-altered-roots*
checkables.clj: 122 midje.checking.checkables/check-one
checkables.clj: 116 midje.checking.checkables/check-one
2f4a71a9358344ac4cef041a5db18976aa2c7711-init.clj: 15 mr-peanutbutter.services.application-storage-test/eval63658/fn/fn
thread_safe_var_nesting.clj: 32 midje.util.thread-safe-var-nesting/with-altered-roots*
thread_safe_var_nesting.clj: 30 midje.util.thread-safe-var-nesting/with-altered-roots*
2f4a71a9358344ac4cef041a5db18976aa2c7711-init.clj: 15 mr-peanutbutter.services.application-storage-test/eval63658/fn
AFn.java: 152 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
AFunction.java: 31 clojure.lang.AFunction$1/doInvoke
RestFn.java: 397 clojure.lang.RestFn/invoke
facts.clj: 32 midje.checking.facts/check-one/fn
facts.clj: 31 midje.checking.facts/check-one
facts.clj: 9 midje.checking.facts/check-one
facts.clj: 36 midje.checking.facts/creation-time-check
facts.clj: 34 midje.checking.facts/creation-time-check
2f4a71a9358344ac4cef041a5db18976aa2c7711-init.clj: 15 mr-peanutbutter.services.application-storage-test/eval63658
2f4a71a9358344ac4cef041a5db18976aa2c7711-init.clj: 15 mr-peanutbutter.services.application-storage-test/eval63658
Compiler.java: 7176 clojure.lang.Compiler/eval
Compiler.java: 7131 clojure.lang.Compiler/eval
core.clj: 3214 clojure.core/eval
core.clj: 3210 clojure.core/eval
main.clj: 414 clojure.main/repl/read-eval-print/fn
main.clj: 414 clojure.main/repl/read-eval-print
main.clj: 435 clojure.main/repl/fn
main.clj: 435 clojure.main/repl
main.clj: 345 clojure.main/repl
RestFn.java: 137 clojure.lang.RestFn/applyTo
core.clj: 665 clojure.core/apply
core.clj: 660 clojure.core/apply
regrow.clj: 20 refactor-nrepl.ns.slam.hound.regrow/wrap-clojure-repl/fn
RestFn.java: 1523 clojure.lang.RestFn/invoke
interruptible_eval.clj: 79 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 55 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 142 nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
AFn.java: 22 clojure.lang.AFn/run
session.clj: 171 nrepl.middleware.session/session-exec/main-loop/fn
session.clj: 170 nrepl.middleware.session/session-exec/main-loop
AFn.java: 22 clojure.lang.AFn/run
Thread.java: 834 java.lang.Thread/run
philomates commented
Hey @viebel, I spun up your example in a blank project using Midje 1.9.9
and wasn't able to reproduce it. What version of the lib are you using?
viebel commented
lein clean
and my problem is solved