text: var finder = (function () {
  
  var exports = {};
  
  var _ = require('node_modules/underscore/underscore.js');
  var fs = require('fs');
  var path = require('path');
  
  exports.find_files_to_run = function () {
      var oneFileFilter = [];
      var testsDifference = [];
      if (process.argv[2]) {
          oneFileFilter = process.argv
              .slice(2)
              .filter(function (filename) {return (/[.]js$/).test(filename);})
              .map(function (filename) {return filename.replace(/\.js$/i, '');});
      }
  
      // tests_dir is where we find our specific unit tests (as opposed
      // to framework code)
      var tests_dir = __dirname.replace(/zjsunit/, 'node_tests');
  
      var tests = fs.readdirSync(tests_dir)
          .filter(function (filename) {return !(/^\./i).test(filename);})
          .filter(function (filename) {return (/\.js$/i).test(filename);})
          .map(function (filename) {return filename.replace(/\.js$/i, '');});
  
      if (oneFileFilter.length > 0) {
          tests = tests.filter(function (filename) {
              return oneFileFilter.indexOf(filename) !== -1;
          });
          testsDifference = _.difference(oneFileFilter, tests);
      }
  
      testsDifference.forEach(function (filename) {
          throw (filename + ".js does not exist");
      });
  
      tests.sort();
  
      var files = tests.map(function (fn) {
          var obj = {};
          obj.name = fn;
          obj.full_name = path.join(tests_dir, fn);
          return obj;
      });
  
      return files;
  };
  
  
  return exports;
  }());
  module.exports = finder;
  