startTest = async (initiator, test, idx) => {
      if (test.agent) {
        agent = helper.instrumentMockedAgent(test.agent.config)
      }

      if (typeof test.initialize === 'function') {
        await test.initialize(agent)
      }

      const samples = []
      for (let i = 0; i < test.runs; i++) {
        await runTest(i, test, (_, delta) => {
          samples.push(delta)
        }) // reliant on callback; should refactor test simply to return delta
      }

      return afterTestRuns(initiator, test, samples, idx)
    }
`startTest` begins the suite of tests, passing its initiator argument to subsequent tests.
@param {function} initiator Sets up and executes tests, and is passed to the
  afterTestRuns function to be passed on to subsequent tests
@param {object} test Configuration object for this suite's test
@param {number} idx Integer for tracking progress through the recursive tests
@returns {function} invocation of `afterTestRuns`, which continues the chain of recursion.