I written things like this before, so something built-in would be useful
to me too.
David
On 11/19/12 5:01 PM, Matthias Felleisen wrote:
That is cute. Why don't you just create a pull request and Ryan can integrate
it into rackunit? -- Matthias
On Nov 19, 2012, at 4:22 PM, Joe Gibbs Politz wrote:
A small suggestion:
I used roughly this macro (credit Jonah Kagan) recently to help me write some
tests for parsing code that agnostic to which source position is generated in
the parse:
(define-syntax test/match
(syntax-rules ()
[(test/match actual expected pred)
(let ([actual-val actual])
(with-check-info* (list (make-check-actual actual-val)
(make-check-expected 'expected))
(thunk (check-true (match actual-val
[expected pred]
[_ false])))))]
[(test/match actual expected)
(test/match actual expected true)]))
Shriram remarked that he was surprised some sort of check-match wasn't in
rackunit already. Is it worth adding something like this?
I'm doing things like:
(test/match (parse "5 'foo'") (s-block _ (list (s-num _ 5) (s-str _ "foo"))))
Where the structs s-block, s-num, and s-str all expect a srcloc as their first
argument, but I don't care about it for these tests.
The actual use is at:
https://github.com/brownplt/pyret-lang/blob/master/src/tests/parse-tests.rkt#L36
That file would be much, much uglier without this macro.
Cheers,
Joe P.
_________________________
Racket Developers list:
http://lists.racket-lang.org/dev
_________________________
Racket Developers list:
http://lists.racket-lang.org/dev
_________________________
Racket Developers list:
http://lists.racket-lang.org/dev