private boolean adjustForCPU = true;  // true if test uses CPU, timings need to be recalibrated according to this agent CPU speed
<BUG>private TestInfo(@NotNull ThrowableRunnable test, int expected) {
</BUG>
this.test = test;
<BUG>this.expected = expected;
}</BUG>
public TestInfo setup(@NotNull ThrowableRunnable setup) { assert this.setup==null; this.setup = setup; return this; }
public TestInfo usesAllCPUCores() { assert adjustForCPU : "This test configured to be io-bound, it cannot use all cores"; usesAllCPUCores = true; return this; }
public TestInfo cpuBound() { adjustForIO = false; adjustForCPU = true; return this; }
public TestInfo ioBound() { adjustForIO = true; adjustForCPU = false; return this; }

private boolean adjustForCPU = true;  // true if test uses CPU, timings need to be recalibrated according to this agent CPU speed
private TestInfo(@NotNull ThrowableRunnable test, int expected, String message) {
this.test = test;
this.expected = expected;
this.message = message;
}
public TestInfo setup(@NotNull ThrowableRunnable setup) { assert this.setup==null; this.setup = setup; return this; }
public TestInfo usesAllCPUCores() { assert adjustForCPU : "This test configured to be io-bound, it cannot use all cores"; usesAllCPUCores = true; return this; }
public TestInfo cpuBound() { adjustForIO = false; adjustForCPU = true; return this; }
public TestInfo ioBound() { adjustForIO = true; adjustForCPU = false; return this; }
