"Jonathan M Davis" <jmdavisp...@gmx.com> wrote in message news:mailman.888.1295879701.4748.digitalmar...@puremagic.com... > In case you didn't know, I have a set of unit test helper functions which > have > been being reviewed for possible inclusion in phobos. Here's an update. > > Most recent code: http://is.gd/F1OHat > > Okay. I took the previous suggestions into consideration and adjusted the > code a > bit more. However, most of the changes are to the documentation (though > there > are some changes to the code). Some of the code duplication was removed, > and the > way that some of the assertPred functions' errors are formatted has been > altered > so that values line up vertically, making them easier to compare. The big > change > is the docs though. There's now a fake version of assertPred at the top > with an > overall description for assertPred followed by the individual versions > with as > little documentation as seemed appropriate while still getting all of the > necessary information across. A couple of the functions still have > irritatingly > long example sections, but anything less wouldn't get the functionality > across. > > In any case. Here's the updated code. Review away. Andrei set the vote > deadline > for February 7th, at which point, if it passes majority vote, then it will > go > into Phobos. The number of functions is small enough now (thanks to having > consolidated most of them into the fantastically versatile assertPred) > that it > looks like it will likely go in std.exception if the vote passes rather > than > becoming a new module. So, the std.unittests title has now become a bit of > a > misnomer, but that's what I've been calling it, so it seemed appropriate > to > continue to label it that way in the thread's title. >
Very nice! One minor change I'd suggest, for both readability and consistency: assertPred!"a == b"(1, 2); Current result: assertPred!"a == b" failed: [1] (a), [2] (b). Suggested result: assertPred!"a == b" failed: [1] (a) [2] (b) Or maybe even: assertPred!"a == b" failed: 1 == 2 [1] (a) [2] (b) Note the variable->value subsitution made on the original predicate string.