statement unittest
Dom DiSc
dominikus at scherkl.de
Sat Mar 23 09:43:20 UTC 2024
On Thursday, 21 March 2024 at 19:39:41 UTC, monkyyy wrote:
> I have this code:
>
> ```d
> auto reduce(alias F,R)(R r)=>r.acc!F.last.front;
> unittest{ assert(counter(10).reduce!((a,int b=0)=>a+b)==45);}
>
> auto all(alias F,R)(R r)=>r.map!F.filter!(a=>!a).empty;
> unittest{ assert([1,3,5,7,9].torange.all!(a=>a%2));}
>
> auto any(alias F,R)(R r)=> ! r.filter!F.empty;
> unittest{ assert([1,2,3,4,15].torange.any!(a=>a==15));}
>
> auto count(R)(R r)=>r.reduce!((a,int b=0)=>b+1);
> unittest{ assert(counter(10).filter!(a=>a%2).count==5);}
> ```
I agree, that looks somewhat ugly. But if you have such short
functions and short unittest, why not sort them:
```d
auto reduce(alias F,R)(R r)=>r.acc!F.last.front;
auto all(alias F,R)(R r)=>r.map!F.filter!(a=>!a).empty;
auto any(alias F,R)(R r)=> ! r.filter!F.empty;
auto count(R)(R r)=>r.reduce!((a,int b=0)=>b+1);
unittest
{
assert(counter(10).reduce!((a,int b=0)=>a+b)==45);
assert([1,3,5,7,9].torange.all!(a=>a%2));
assert([1,2,3,4,15].torange.any!(a=>a==15));
assert(counter(10).filter!(a=>a%2).count==5);
}
```
That's pretty much as short as your proposal and even more
readable.
More information about the dip.ideas
mailing list