probcomp/metaprob
View on GitHubBreak out `(is (and …))` forms into separate `(is …)` forms
Open
#105 opened on Jan 25, 2019
good first issuelow prioritytesting
Repository metrics
- Stars
- (170 stars)
- PR merge metrics
- (PR metrics pending)
Description
Combining multiple test assertions in a single is form using and will result in uninformative error messages. For example, the following test case yields two failures when run:
(deftest example-test
(is (= 3 (+ 1 1)))
(is (= 5 (+ 2 2))))
Test Summary
metaprob.compositional-test
Tested 1 namespaces
Ran 2 assertions, in 1 test functions
2 failures
Results
metaprob.compositional-test
2 non-passing tests:
Fail in example-test
expected: 3
actual: 2
diff: - 3
+ 2
Fail in example-test
expected: 5
actual: 4
diff: - 5
+ 4
Grouping together those two assertions into a single form with and produces less informative error reporting, however:
(deftest example-test
(is (and (= 3 (+ 1 1))
(= 5 (+ 2 2)))))
Test Summary
metaprob.compositional-test
Tested 1 namespaces
Ran 1 assertions, in 1 test functions
1 failures
Results
metaprob.compositional-test
1 non-passing tests:
Fail in example-test
expected: (and (= 3 (+ 1 1)) (= 5 (+ 2 2)))
actual: false
Not only do we only get one failure, but the "actual" value is simply false.