Split printing results into separate function
This commit is contained in:
parent
39a1a56724
commit
a28db7bc32
19
source/app.d
19
source/app.d
|
@ -1,5 +1,7 @@
|
||||||
import util : make, rcarray, StdArray, StdxArray, EMSIArray;
|
import util : make, rcarray, StdArray, StdxArray, EMSIArray;
|
||||||
|
|
||||||
import std.stdio : stderr, writeln;
|
import std.stdio : stderr, writeln;
|
||||||
|
import std.datetime : Duration;
|
||||||
|
|
||||||
void testInsert(Container, int times = 100)()
|
void testInsert(Container, int times = 100)()
|
||||||
{
|
{
|
||||||
|
@ -53,9 +55,8 @@ void testConcat(Container, int times = 100)()
|
||||||
import std.meta : AliasSeq;
|
import std.meta : AliasSeq;
|
||||||
alias tests = AliasSeq!(testInsert, testInsertDelete, testConcat);
|
alias tests = AliasSeq!(testInsert, testInsertDelete, testConcat);
|
||||||
|
|
||||||
void testContainers(Containers...)(int times = 100000)
|
auto testContainers(Containers...)(int times = 100000)
|
||||||
{
|
{
|
||||||
import std.datetime : Duration;
|
|
||||||
import std.datetime.stopwatch : benchmark;
|
import std.datetime.stopwatch : benchmark;
|
||||||
import std.meta : staticMap;
|
import std.meta : staticMap;
|
||||||
|
|
||||||
|
@ -66,6 +67,11 @@ void testContainers(Containers...)(int times = 100000)
|
||||||
results[test.stringof] = benchmark!(staticMap!(test, Containers))(times);
|
results[test.stringof] = benchmark!(staticMap!(test, Containers))(times);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
void printResults(Containers...)(Duration[][string] results)
|
||||||
|
{
|
||||||
static foreach (test; tests)
|
static foreach (test; tests)
|
||||||
{
|
{
|
||||||
import std.stdio : writeln;
|
import std.stdio : writeln;
|
||||||
|
@ -80,7 +86,10 @@ void testContainers(Containers...)(int times = 100000)
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
import std.meta : AliasSeq, staticMap;
|
import std.meta : AliasSeq;
|
||||||
alias tests = AliasSeq!(testInsert, testInsertDelete);
|
|
||||||
testContainers!(int[], StdArray!int, StdxArray!int, EMSIArray!int, rcarray!int);
|
alias containers = AliasSeq!(int[], StdArray!int, StdxArray!int, EMSIArray!int, rcarray!int);
|
||||||
|
|
||||||
|
auto results = testContainers!containers;
|
||||||
|
results.printResults!containers;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue