<commit_before>getJasmineRequireObj().ConsoleReporter = function() {
  function ConsoleReporter(options) {
    var print = function(msg) { console.log(msg); },
      showColors = options.showColors || true,
      onComplete = options.onComplete || function() {},
      specCount,
      failureCount,
      passedCount,
      failedSpecs = [],
      pendingSpecs = [],
      pendingCount,
      ansi = {
        green: '\033[32m',
        red: '\033[31m',
        yellow: '\033[33m',
        none: '\033[0m'
      };

    this.jasmineStarted = function() {
      specCount = 0;
      failureCount = 0;
      passedCount = 0;
      pendingCount = 0;
      print("Running specs...");
    };

    this.jasmineDone = function(options) {
      for (var i = 0; i < pendingSpecs.length; i++) {
        specPendingDetails(pendingSpecs[i]);
      }

      for (var i = 0; i < failedSpecs.length; i++) {
        specFailureDetails(failedSpecs[i]);
      }

      var specCounts = specCount + " " + plural("spec", specCount) + ", " +
        colored("green", passedCount + " passed") + ", ";

      if (failureCount > 0) {
        specCounts += colored("red", failureCount + " " + plural("failure", failureCount));
      } else {
        specCounts += failureCount + " " + plural("failure", failureCount);
      }

      if (pendingCount) {
        specCounts += ", " + colored("yellow", pendingCount + " pending " + plural("spec", pendingCount));
      }
      
      printNewline();

      var seconds = options.executionTime / 1000;
      print("Finished in " + seconds + " " + plural("second", seconds));

      print(specCounts);

      onComplete();
    };

    this.specDone = function(result) {<commit_msg>Made the spec summary match RSpec output.<commit_after>getJasmineRequireObj().ConsoleReporter = function() {
  function ConsoleReporter(options) {
    var print = function(msg) { console.log(msg); },
      showColors = options.showColors || true,
      onComplete = options.onComplete || function() {},
      specCount,
      failureCount,
      passedCount,
      failedSpecs = [],
      pendingSpecs = [],
      pendingCount,
      ansi = {
        green: '\033[32m',
        red: '\033[31m',
        yellow: '\033[33m',
        none: '\033[0m'
      };

    this.jasmineStarted = function() {
      specCount = 0;
      failureCount = 0;
      passedCount = 0;
      pendingCount = 0;
      print("Running examples...");
    };

    this.jasmineDone = function(options) {
      for (var i = 0; i < pendingSpecs.length; i++) {
        specPendingDetails(pendingSpecs[i]);
      }

      for (var i = 0; i < failedSpecs.length; i++) {
        specFailureDetails(failedSpecs[i]);
      }

      var specCounts = specCount + " " + plural("example", specCount) + ", " + failureCount + " " + plural("failure", failureCount);

      if (pendingCount) {
        specCounts += ", " + pendingCount + " pending";
      }
      
      printNewline();

      var seconds = options.executionTime / 1000;
      print("Finished in " + seconds + " " + plural("second", seconds));

      if (failureCount > 0) { // have any failures
        print(colored("red", specCounts));
      } else if (pendingCount > 0) {
        print(colored("yellow", specCounts));
      } else {
        print(colored("green", specCounts));
      }

      onComplete();
    };

    this.specDone = function(result) {
{'fraction_non_alphanumeric': 0.14965986394557823, 'fraction_numerical': 0.018041999408459037, 'mean_word_length': 2.3353057199211045, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3620408', 'n_tokens_mistral': 1062, 'n_tokens_neox': 991, 'n_words': 210}