whole_func_string: function pass(part, suiteIndex, testIndex) {
      var o;
      var isSuite = false;
  
      if (typeof testIndex === 'number') {
        o = suites[suiteIndex].tests[testIndex];
      } else {
        isSuite = true;
        o = suites[suiteIndex];
      }
  
      display.pass(part, o);
  
      if ( isSuite ) {  // Suite ----------------------------
        if (part === 'setup') {  // setup completed
          o.setup.status = true;
          // run the next test in suite
          if (!testIndex) {
            testIndex = 0;
          } else {
            testIndex = testIndex + 1;
          }
  
          if (typeof o.tests[testIndex] === 'object') {
            run('beforeEach', suiteIndex, testIndex);
          } else {
            run('takedown', suiteIndex);
          }
        } else if (part === 'takedown') {  // takedown completed
          o.takedown.status = true;
          if (o.next) {
            // move on to the next suite
            run('setup', suiteIndex + 1);
          } else {
            // finished, show summary results
            showSummary();
          }
        }
      } else {  // Test ----------------------------------------------
        if (part === 'beforeEach') {  // beforeEach completed
          o.beforeEach.status = true;
          // run the test setup
          run('setup', suiteIndex, testIndex);
        } else if (part === 'setup') {  // setup completed
          o.setup.status = true;
          // run the test
          run('actual', suiteIndex, testIndex);
        } else if (part === 'takedown') {  // takedown completed
          o.takedown.status = true;
          // call afterEach
          run('afterEach', suiteIndex, testIndex);
        } else if (part === 'afterEach') {  // afterEach completed
          o.afterEach.status = true;
          if (typeof o.parent.tests[testIndex + 1] === 'object') {
            o.parent.testIndex = testIndex + 1;
            run('beforeEach', suiteIndex, testIndex + 1);
          } else {
            // run suites takedown
            run('takedown', suiteIndex);
          }
        } else {
          // test is complete
          o.status = true;
          run('takedown', suiteIndex, testIndex);
        }
      }
    }
func_code_string: function pass(part, suiteIndex, testIndex) {
      var o;
      var isSuite = false;
  
      if (typeof testIndex === 'number') {
        o = suites[suiteIndex].tests[testIndex];
      } else {
        isSuite = true;
        o = suites[suiteIndex];
      }
  
      display.pass(part, o);
  
      if ( isSuite ) {  // Suite ----------------------------
        if (part === 'setup') {  // setup completed
          o.setup.status = true;
          // run the next test in suite
          if (!testIndex) {
            testIndex = 0;
          } else {
            testIndex = testIndex + 1;
          }
  
          if (typeof o.tests[testIndex] === 'object') {
            run('beforeEach', suiteIndex, testIndex);
          } else {
            run('takedown', suiteIndex);
          }
        } else if (part === 'takedown') {  // takedown completed
          o.takedown.status = true;
          if (o.next) {
            // move on to the next suite
            run('setup', suiteIndex + 1);
          } else {
            // finished, show summary results
            showSummary();
          }
        }
      } else {  // Test ----------------------------------------------
        if (part === 'beforeEach') {  // beforeEach completed
          o.beforeEach.status = true;
          // run the test setup
          run('setup', suiteIndex, testIndex);
        } else if (part === 'setup') {  // setup completed
          o.setup.status = true;
          // run the test
          run('actual', suiteIndex, testIndex);
        } else if (part === 'takedown') {  // takedown completed
          o.takedown.status = true;
          // call afterEach
          run('afterEach', suiteIndex, testIndex);
        } else if (part === 'afterEach') {  // afterEach completed
          o.afterEach.status = true;
          if (typeof o.parent.tests[testIndex + 1] === 'object') {
            o.parent.testIndex = testIndex + 1;
            run('beforeEach', suiteIndex, testIndex + 1);
          } else {
            // run suites takedown
            run('takedown', suiteIndex);
          }
        } else {
          // test is complete
          o.status = true;
          run('takedown', suiteIndex, testIndex);
        }
      }
    }
func_documentation_string: test object is passed here when it passes the test, setup or takedown.
  handles printing the result, and updating the objects status.
  
  @param  {string}  part       - indicates the portion of test just run
  @param  {number}  suiteIndex - the index number of the test run
  @param  {number}  testIndex  - the index number of the test run [optional]