describe

describe
(
R
Config = DescribeConfig
)
(
auto ref R datalist
)

Examples

enum State
{
    Uninitialized,
    Running,
    Finish,
}

struct Test
{
    Object obj;
    string text;
    int number;
    Duration span;
    bool flag;
    State state;
}

auto result = describe([
        Test(null, "A", 10, 10.msecs, true, State.Uninitialized),
        Test(null, "A", 20, 20.msecs, true, State.Running),
        Test(null, "B", 30, 30.msecs, false, State.Uninitialized),
        Test(null, "B", 40, 40.msecs, false, State.Finish),
        Test(null, "B", 50, 50.msecs, true, State.Uninitialized),
        Test(null, "B", 60, 60.msecs, false, State.Running),
        ]);

assert(result.text.count == 6);
assert(result.text.unique == 2);
assert(result.number.count == 6);
assert(result.number.min == 10);
assert(result.number.max == 60);
assert(result.span.count == 6);
assert(result.span.min == 10.msecs);
assert(result.span.max == 60.msecs);
assert(result.flag.count == 6);
assert(result.flag.unique == 2);
assert(result.flag.top == false);
assert(result.flag.freq == 3);
assert(result.state.count == 6);
assert(result.state.top == State.Uninitialized);
assert(result.state.freq == 3);

Meta