Showing unittest in documentation (Was Re: std.unittests
spir
denis.spir at gmail.com
Tue Jan 25 05:27:56 PST 2011
On 01/25/2011 11:10 AM, foobar wrote:
>> The simple syntax of
>> >
>> > /++ Example +/
>> > unittest
>> > {
>> > }
>> >
>> >
>> > making that unittest block go in the documentation of the preceding function
>> > should work just fine. We already have /++ Ditto +/ which puts a function in with
>> > the preceding function's documentation. So, having /++ Example +/ on top of that
>> > isn't much of a stretch.
>> >
>> > - Jonathan M Davis
> Depends on what you mean by example.
> It seems to me that by "Example" you mean something like a line or two that just show how to call a function. I meant by "Example" a more complicated small program that exercises several functions in the module.
> something more like a tutorial for using the module.
>
> For my kind of example you need to provide just one or two examples for a module, it makes more sense to put it at the module level and also in a unit-test block.
>
> Your kind of example looks less useful to me and I personally wouldn't bother with unit-testing it.
>
> I guess it's just personal style and preferences.
Seems doc meta-languages are usually too complicated and this complication
never helps meeting practicle needs. Think at Walter' repeted argument that
unittests are highly used precisely because they are that simple. The same
applies to doc, imo. I would thus favor an extremely simple doc feature, along
with use recommandations, and stricter guidelines for public/std packages.
About the current issue of examples applying to several elements of a module, a
simple solution would be to have an example section at a standard location (eg
at the bottom, or just below the general module doc). Each example there would
be /named/, so that function docs could point to them. A refinement would make
example names link targets and pointers to them link pointers.
In the same vein: named unittests would allow pointing to them, and possibly
generate link targets in the html doc, under their own name.
/** blah
* blah blah blah
* blah blah blah
*
* Example:
* ...
* See also:
* example $(target MapFilterCombination)
* unittest $(target testFilter)
*/
T[] filter (T) (T[] elements, bool function (T) predicate)
{
...
}
Denis
--
_________________
vita es estrany
spir.wikidot.com
More information about the Digitalmars-d
mailing list