Testing package proposed for Phobos

John Colvin via Digitalmars-d digitalmars-d at puremagic.com
Mon Feb 9 03:03:37 PST 2015


On Monday, 9 February 2015 at 04:16:26 UTC, Walter Bright wrote:
> std.internal.test.dummyrange
>
> Cursory review:
>
> 1. Yes, it's what I was asking for, at least in part.
>
> 2. Being in std.internal.test implies it is not for general 
> usage. It needs to be for general usage.
>
> 3. It's used here:
>
> grep -r std.internal.test *.d
> algorithm\comparison.d:    import std.internal.test.dummyrange;
> algorithm\iteration.d:    import std.internal.test.dummyrange;
> algorithm\iteration.d:    import std.internal.test.dummyrange;
> algorithm\iteration.d:    import std.internal.test.dummyrange;
> algorithm\iteration.d:    import std.internal.test.dummyrange;
> algorithm\iteration.d:    import std.internal.test.dummyrange;
> algorithm\iteration.d:    import std.internal.test.dummyrange;
> algorithm\mutation.d:    import std.internal.test.dummyrange;
> algorithm\mutation.d:    import std.internal.test.dummyrange;
> algorithm\searching.d:    import std.internal.test.dummyrange;
> algorithm\searching.d:    import std.internal.test.dummyrange;
> algorithm\searching.d:    import std.internal.test.dummyrange;
> algorithm\searching.d:    import std.internal.test.dummyrange;
> algorithm\searching.d:    import std.internal.test.dummyrange;
> algorithm\searching.d:    import std.internal.test.dummyrange;
> internal\test\dummyrange.d:module std.internal.test.dummyrange;
> range\constraints.d:    import std.internal.test.dummyrange;
> range\interfaces.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\package.d:    import std.internal.test.dummyrange;
> range\primitives.d:    import std.internal.test.dummyrange;
>
> I'd like to see it used much more pervasively in Phobos - 
> essentially with every range that is defined, and every 
> component that takes a range as a parameter, unless there's a 
> good reason not to on a case-by-case basis.
>
> 4. It's only for uint data. This should be parameterized.
>
> 5. It's terribly underdocumented. I have no idea what ReturnBy, 
> Length, or RangeType are without reading the implementation 
> code.
>
> 6. It does not contain any protocol verification - for example, 
> front() does not check that empty() was called beforehand.
>
> 7. There's not a single unittest in it.
>
> 8. I don't see any connection between DummyRange and 
> ReferenceInputRange.
>
> 9. There are no test functions which accept an input range and 
> test that the protocol at least exists and does not crash.
>
> 10. No @system types.
>
> 11. No output ranges.

This looks like a good bugzilla enhancement request. As you often 
say: it will get lost here.


More information about the Digitalmars-d mailing list