function unit_init(verbosity, global_vars)
  ## Initialize the global structure unittest_results, which is needed
  ## in all functions of the *unittest module.  Debugging information
  ## is printed if verbosity==1.  global_vars is a cell array of the
  ## names of the global variables used in the tests.
  ##
  ## e.g. unit_init(1, {"g", "a", "x"})
  
  global unittest_results;
  
  unittest_results.verbose = 0;
  unittest_results.eval_globals = {};
  if (nargin > 0)
    if (!isscalar(verbosity) || verbosity < 0 || verbosity > 1)
      warning("unit_init: verbose must be 0 or 1");
    else
      unittest_results.verbose = verbosity;
    endif
    
    if (nargin == 2 && iscell(global_vars))
      for i = 1:length(global_vars)
        unittest_results.eval_globals{i} = strcat("global ", global_vars{i}, ";");
      endfor
    else
      error("global_vars must be a cell array");
    endif
    
    if (nargin > 2)
      usage("expecting 2 arguments only");
    end
  endif
  
  unittest_results.total = 0; # number of testcases attempted
  unittest_results.pass = 0;  # number of expected passed
  unittest_results.fail = 0;  # number of unexpected failures
  unittest_results.upass = 0; # number of unexpected passes
  unittest_results.xfail = 0; # number of expected failures
  unittest_results.unresolved = 0; # number of unresolved testcases
  
  default_eval_print_flag = 0;
endfunction
