'Run the test in two phases: first calibrate, then
do the actual test. Be careful to keep the calibration
timing low w/r to the test timing.'

def run(self):

    test = self.test
    timer = self.get_timer()
    min_overhead = min(self.overhead_times)
    t = timer()
    test()
    t = (timer() - t)
    if (t < MIN_TEST_RUNTIME):
        raise ValueError('warp    factor    too    high:    test    times    are    <    10ms')
    eff_time = (t - min_overhead)
    if (eff_time < 0):
        raise ValueError('wrong    calibration')
    self.last_timing = (eff_time, t, min_overhead)
    self.times.append(eff_time)
