Thread overview
Statement Unittest [DRAFT]
2 days ago
monkyyy
2 days ago
Paul Backus
3 hours ago
Guillaume Piolat
2 days ago

A module-level unittest statement( uses () instead of {}) for single asserts
, with an optional string message

unittest(1==1);
unittest(1==1,"math broke");

https://gist.github.com/crazymonkyyy/2afa7ae1402cd246fb98bdb86dd19605

2 days ago

On Tuesday, 15 October 2024 at 14:37:24 UTC, monkyyy wrote:

>

https://gist.github.com/crazymonkyyy/2afa7ae1402cd246fb98bdb86dd19605

For "Prior Work", I'd say the most obvious thing to cite is the shortened syntax for in, out, and invariant contracts:

// Short versions
in (n > 0);
out (ret; ret !is null);
invariant (start <= end);

// Long versions
in { assert(n > 0); }
out (ret) { assert(ret !is null); }
invariant { assert( start <= end); }

Spec links:

3 hours ago

On Tuesday, 15 October 2024 at 14:37:24 UTC, monkyyy wrote:

>

A module-level unittest statement( uses () instead of {}) for single asserts
, with an optional string message

unittest(1==1);
unittest(1==1,"math broke");

https://gist.github.com/crazymonkyyy/2afa7ae1402cd246fb98bdb86dd19605

This is a pretty cool idea.
unittest being one of the big win of D, why not have more of it.