<commit_before>import { exec } from 'child_process'

// test/mock
// ├── empty
// ├── file1.jsx
// ├── file2.jsx
// └── inner
//     ├── deep
//     │   ├── file6.js
//     │   └── file7.jsx
//     ├── file3.txt
//     ├── file4.jsx
//     └── file5.js

function createTestDirectory (cb) {
  exec('mkdir -p test/mock && touch test/mock/file1.jsx ' +
        '&& touch test/mock/file2.jsx && mkdir -p test/mock/empty ' +
        '&& mkdir -p test/mock/inner && touch test/mock/inner/file3.txt ' +
        '&& touch test/mock/inner/file4.jsx && ' +
        'touch test/mock/inner/file5.js && ' +
        'mkdir test/mock/inner/deep && ' +
        'touch test/mock/inner/deep/file6.js &&' +
        'touch test/mock/inner/deep/file7.jsx ', (err, stdout, stderr) => {
    if (err) {
      console.log('Child process exited with error code', err)
      return
    }
    // console.log(stdout)
    if (cb) cb()
  })
}

function removeTestDirectory (cb) {
  exec('rm -rf test/mock', (err, stdout, stderr) => {
    if (err) {
      console.log('Child process exited with error code', err)
      return
    }
    // console.log(stdout)
    if (cb) cb()
  })
}<commit_msg>Add another folder to test directory<commit_after>import { exec } from 'child_process'

// test/mock
// ├── empty
// ├── file1.jsx
// ├── file2.jsx
// └── inner
//     ├── deep
//     │   ├── do-not-touch
//     │   │   ├── file8.jsx
//     │   │   └── file9.jsx
//     │   ├── file6.js
//     │   └── file7.jsx
//     ├── file3.txt
//     ├── file4.jsx
//     └── file5.js

function createTestDirectory (cb) {
  exec('mkdir -p test/mock && touch test/mock/file1.jsx ' +
        '&& touch test/mock/file2.jsx && mkdir -p test/mock/empty ' +
        '&& mkdir -p test/mock/inner && touch test/mock/inner/file3.txt ' +
        '&& touch test/mock/inner/file4.jsx && ' +
        'touch test/mock/inner/file5.js && ' +
        'mkdir test/mock/inner/deep && ' +
        'touch test/mock/inner/deep/file6.js &&' +
        'touch test/mock/inner/deep/file7.jsx &&' +
        'mkdir -p test/mock/inner/deep/do-not-touch && ' +
        'touch test/mock/inner/deep/do-not-touch/file8.jsx &&' +
        'touch test/mock/inner/deep/do-not-touch/file9.jsx ', (err, stdout, stderr) => {
    if (err) {
      console.log('Child process exited with error code', err)
      return
    }
    // console.log(stdout)
    if (cb) cb()
  })
}

function removeTestDirectory (cb) {
  exec('rm -rf test/mock', (err, stdout, stderr) => {
    if (err) {
      console.log('Child process exited with error code', err)
      return
    }
    // console.log(stdout)
    if (cb) cb()
  })
}
{'fraction_non_alphanumeric': 0.19374523264683446, 'fraction_numerical': 0.012204424103737605, 'mean_word_length': 2.025374855824683, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 7, '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': '7532124', 'n_tokens_mistral': 1005, 'n_tokens_neox': 1001, 'n_words': 213}