From: Brent F. <bfu...@de...> - 2003-02-17 03:35:04
|
I finally decided to try out Noel's testing framework, and so I cobbled together a rather large set of tests for the Perl-Compatible Regular Expression module, using the test data from the Perl 5.8 release, as well as some of the more interesting tests from the recently-announced Common Lisp implementation. Dorai's PCRE package does fairly well, but there are several cases that just don't work well at all. A few others seem to trigger combinatoric explosion, taking far longer than I was willing to wait to complete, especially when Perl can handle the same routine in a fraction of a second. I'm really happy with Schemeunit, and have just one suggestion. I found myself building a lot of test cases like so: (map assert-pregexp-equal? (list (list exp "abc" (list "abc")) (list exp "abc" (list (cons 0 3))) (list (pregexp "abcd") "abcd" (list "abcd")) (list exp "xabcy" (list "abc")) (list exp "xabcy" (list (cons 1 4))) (list exp "ababc" (list "abc")) (list exp "ababc" (list (cons 2 5))) I was really wanting to build an individual test case for each one, but couldn't get the "make-test-case" macro to handle things properly, as I ended up returning a list of test cases, which "make-test-suite" does not understand. Other than that, Schemeunit works wonderfully. I put the regular expression tests under src/tests in CVS in case anyone else has use for this. I intend to add other test suites in the future as time allows. Thanks, -Brent |
From: MJ R. <mar...@cl...> - 2003-02-17 10:13:29
|
Brent Fulgham <bfu...@de...> wrote: > Dorai's PCRE package [...] pregexp is "portable regexp" rather than libPCRE. It definitely includes a couple of ways to do things I've never seen in Perl. http://www.ccs.neu.edu/~dorai/pregexp/pregexp.html |
From: Noel W. <noe...@ya...> - 2003-02-17 13:42:58
|
--- Brent Fulgham <bfu...@de...> wrote: > I was really wanting to build an individual test > case for each one, but > couldn't get the "make-test-case" macro to handle > things properly, > as I ended up returning a list of test cases, which > "make-test-suite" does > not understand. Hmmm. There isn't an easy solution to this. Sometimes I really do wonder about the utility of the macros. They work wonderfully for the most common case but fall down badly in this type of situation. You could use the raw: forms raw:make-test-suite name (list-of test) raw:make-test-case name action which are the actual structures used in the underlying representation. I'm not sure if they are exported by test.ss Does anyone have an opinion on the macros? The need for make-test-case would go away if we had a lightweight notation for lambda. make-test-suite could be done away with, or even turned into a function (did anyone see the light go on above my head; I'm a moron - I don't need a macro, I just need a multiple-arity function!) Humbly yours, Noel __________________________________________________ Do you Yahoo!? Yahoo! Shopping - Send Flowers for Valentine's Day http://shopping.yahoo.com |
From: Brent F. <bfu...@de...> - 2003-02-18 07:39:48
|
On Mon, 17 Feb 2003 05:42:52 -0800 (PST) Noel Welsh <noe...@ya...> wrote: > raw:make-test-suite name (list-of test) > raw:make-test-case name action > Fantastic! These work like a charm. I now show all 500+ tests running, and the errors come up with individual messages, just like I was hoping! > which are the actual structures used in the underlying > representation. I'm not sure if they are exported by > test.ss They are not -- I hacked my version locally. Would you please export them? My test suite is much nicer now with the changes in place! :-) > Does anyone have an opinion on the macros? The need > for make-test-case would go away if we had a > lightweight notation for lambda. make-test-suite > could be done away with, or even turned into a > function (did anyone see the light go on above my > head; I'm a moron - I don't need a macro, I just need > a multiple-arity function!) > My vote is to at least export the functions. The macros do seem useful as well, since I built some tests using them. -Brent |
From: Brent F. <bfu...@de...> - 2003-02-18 07:43:47
|
On Mon, 17 Feb 2003 10:01:01 GMT MJ Ray <mar...@cl...> wrote: > Brent Fulgham <bfu...@de...> wrote: > > Dorai's PCRE package [...] > pregexp is "portable regexp" rather than libPCRE. It definitely > includes a couple of ways to do things I've never seen in Perl. > http://www.ccs.neu.edu/~dorai/pregexp/pregexp.html > From DrScheme's "Help Desk" entry: "pregexp.ss: Perl-Style Regular Expressions This library provides regular expressions modeled on Perl's , and includes such powerful directives as numeric and nongreedy quantifiers, [...]" Perhaps Dorai changed his documents since the last time Matthew updated MzScheme? At any rate, I think the tests are useful to show where we differ at the very least. But I do agree with you -- Pregexp.ss has some very powerful constructs, and is quite easy to work with, now that I've been playing with it for a bit. By the way -- did you get my previous e-mail about Debian co-maintainer stuff? Let me know if you want me to add you on the package (heaven knows I could use the help!) :-) Thanks, -Brent |