Lately, I find myself wondering, if I should add parameterized unit tests to std.string, because the last few bugs I fixed where not caught by tests, as the test-data was not good enough. I know random data is not perfect either, but it would be good addition IMO.

Additionally, I thought these unit tests could be used to benchmark the performance of the functions and the compilers. Thus allowing continues monitoring of performance changes.

I'm thinking of something like:

version(unittest_benchmark) {
unittest {
    auto ben = Benchmark("bench_result_file", numberOfRuns);
    auto values = ValueGen!(StringGen(0, 12), IntGen(2, 24))(ben);

    foreach(string rStr, int rInt; values) {
        auto rslt = functionToTest(rStr, rInt);
        // some asserts
    }
}
}

The bench_result_file would be a csv with e.g. date,runtime,...

ideas, suggestions?

Reply via email to