What are the best std algo for testing a range implementation ?
Chris via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue May 27 04:20:04 PDT 2014
On Tuesday, 27 May 2014 at 10:50:54 UTC, BicMedium wrote:
> Let's say I have a set of containers, using a
> D-unfriendly-semantic. They rather use a kind of ADA vocabulary
> (according to https://en.wikipedia.org/wiki/Deque). I want to
> make them "range-aware".
>
> If the input/output ranges are easy to implement(so it's just
> reading/writing an element, keeping an index for the writer and
> another for the reader, and reseting it, isn't it ? So if
> (isInputRange!MyCont && isOutputRange!MyCont) then it's a
> "Deque", right ?).
> The bidirectionnal ranges or the forward ranges become more
> difficult to interpret with the idioms I
> use(Insert,Add,Remove)...Is this a kind of 3rd plane ("time":
> "return to previous state", "make a backup": copy/roll-back -
> undo/redo ?)
>
> Could you recommend me the algos from std.algo to test
> efficiently my implementations ? (example, if you want to be
> sure that the input ranges work then you'd use this...if you
> want to be sure that output ranges work then you'd use that
> ...Some kind of "reference" unit tests ?). At the present time,
> each time I try one I get rejected by the template
> constraints...
I'm not sure, if I understand your question correctly, but I
think what you need are RandomAccessRange's (cf.
http://ddili.org/ders/d.en/ranges.html). You can save their state
and access members randomly. However, as far as I know, the range
itself should not be modified while you iterate over it.
More information about the Digitalmars-d-learn
mailing list