On Friday, 2 August 2013 at 14:36:55 UTC, Ivan Kazmenko wrote:
On Thursday, 1 August 2013 at 13:34:31 UTC, Ivan Kazmenko wrote:
On Thursday, 1 August 2013 at 12:55:30 UTC, John Colvin wrote:
On Thursday, 1 August 2013 at 12:27:51 UTC, Ivan Kazmenko
wrote:
On a relevant note, I find the unittests of RedBlackTree a
bit excessive even when they compile successfully. They
seem to test the integrity of the whole tree every time a
tree operation takes place, and that makes the unittests
version of my local code run too slowly. Is there a way to
turn unittests on only for user code and turn them off for
the standard library?
Ivan Kazmenko.
Unless you've compiled phobos with -unittest, the unittests
in the standard library won't even exist in the binary, let
alone take up time to run.
Unless... I'm mistaken and actually for some bizarre reason
unittests get dragged in from the import files, but that
seems very unlikely.
There is a
version(unittest) version = RBDoChecks;
line and the following
version(RBDoChecks) check();
calls in the tree implementation.
Perhaps the approach is special to RedBlackTree.
I agree that RBDoChecks can be useful occasionally, for
example, when there is a bug in comparison function. But I
would be happy if the aforementioned line is removed from the
library, or at least a way to override it is provided.
I'm confused. I think none of RedBlackTree code is
pre-compiled since it has compile-time parameters. But when I
comment the
version(unittest) version = RBDoChecks;
line in Phobos and recompile my example 4, I still get the same
errors with "-unittest" compiler option. What's going on?
ugh yeah that's not nice. There is also the variable doUnittest
in there
The unittests really need sorting out there. My suggestion for
now would be to strip out all the unittests from it yourself.
Also, create a bug report for it and hopefully someone will fix
it.