<commit_before>
         
   MOCHA  
         



ALTERNATIVES ==>                  #  - Mocha:
                                  #     - minimalistic
                                  #     - no CPU parallelism, unbounded I/O parallelism through library
                                  #  - Ava (prefered server-side):
                                  #     - less modular: runner + simple assertions + diff testing
                                  #     - unbounded I/O parallelism (concurrent tests), bounded CPU parallelism (CHILD_PROCESS.fork() each test file)
                                  #     - includes power-assert
                                  #     - includes babel
                                  #     - only server-side
                                  #  - Jest (prefered client-side):
                                  #     - much less modular: runner + assertions + data-driven testing + mocks/spies + timers mocks + modules mocks
                                  #       + diff testing + memory leaks detection + test coverage
                                  #     - test-framework-like features:
                                  #        - can be used to run other logic than testing (e.g. linting or compiling)
                                  #        - can pre-process files (e.g. Babel)
                                  #     - unbounded I/O parallelism (concurrent tests), bounded CPU parallelism (CHILD_PROCESS.fork() each test file)
                                  #     - interactive mode
                                  #     - nice reporting
                                  #     - can test only modified files
                                  #     - global sandboxing, including JSDOM
                                  #  - Jasmine:
                                  #     - less modular (runner + assertions + mocks/spies + timers mocks + XHR mocks)
                                  #     - less reporters
                                  #     - less features as a runner
                                  #     - no parallelism
                                  #  - QUnit: more TDD than BDD. Not as many features
                                  #  - Tape:
                                  #     - TAP serializer
                                  #     - in-JavaScript (no external test runner)
                                  #     - minimalistic: no PROMISE support, hooks, selection, bail, watch
                                  #     - no parallelism
                                  #     - no exception handling, and failed assertions do not throw
                                  #  - tape-modern: similar to tape but:
                                  #     - no need for TEST.end()
                                  #     - exception handling
                                  #     - slightly less TAP output capability
                                  #     - less test runners features: timeout, process 'exit' handler
                                  #  - node-tap:
                                  #     - less modular: runner + simple assertions + diff testing + test coverage
                                  #     - TAP output, but not great, so should use built-in reporters (similar to Mocha's)
                                  #     - either in-JavaScript or external test runner
                                  #     - bounded I/O parallelism (concurrent tests), bounded CPU parallelism (CHILD_PROCESS.spawn() each test file)
                                  #     - bad exception handling, failed assertions do not throw
                                  #     - can run only previously failed tests

VERSION ==>                       #6.1.2
                                  #Node.js, browser and CLI

REPORTERS ==>                     #See Mocha reporters doc


                                             /=+===============================+=\
                                            /  :                               :  \<commit_msg>no commit message<commit_after>
         
   MOCHA  
         



ALTERNATIVES ==>                  #  - Mocha:
                                  #     - minimalistic
                                  #     - no CPU parallelism, unbounded I/O parallelism through library
                                  #  - Ava (prefered server-side):
                                  #     - less modular: runner + simple assertions + diff testing
                                  #     - unbounded I/O parallelism (concurrent tests), bounded CPU parallelism (CHILD_PROCESS.fork() each test file)
                                  #     - includes power-assert
                                  #     - includes babel
                                  #     - only server-side
                                  #  - Jest (prefered client-side):
                                  #     - much less modular: runner + assertions + data-driven testing + mocks/spies + timers mocks + modules mocks
                                  #       + diff testing + memory leaks detection + test coverage
                                  #     - test-framework-like features:
                                  #        - can be used to run other logic than testing (e.g. linting or compiling)
                                  #        - can pre-process files (e.g. Babel)
                                  #     - unbounded I/O parallelism (concurrent tests), bounded CPU parallelism (CHILD_PROCESS.fork() each test file)
                                  #     - interactive mode
                                  #     - nice reporting
                                  #     - can test only modified files
                                  #     - global sandboxing, including JSDOM
                                  #  - Jasmine:
                                  #     - less modular (runner + assertions + mocks/spies + timers mocks + XHR mocks)
                                  #     - less reporters
                                  #     - less features as a runner
                                  #     - no parallelism
                                  #  - QUnit: more TDD than BDD. Not as many features
                                  #  - Tape:
                                  #     - TAP serializer
                                  #     - in-JavaScript (no external test runner)
                                  #     - minimalistic: no PROMISE support, hooks, selection, bail, watch
                                  #     - no parallelism
                                  #     - no exception handling, and failed assertions do not throw
                                  #  - tape-modern: similar to tape but:
                                  #     - no need for TEST.end()
                                  #     - exception handling
                                  #     - slightly less TAP output capability
                                  #     - less test runners features: timeout, process 'exit' handler
                                  #  - node-tap:
                                  #     - less modular: runner + simple assertions + diff testing + test coverage
                                  #     - TAP output, but not great, so should use built-in reporters (similar to Mocha's)
                                  #     - either in-JavaScript or external test runner
                                  #     - bounded I/O parallelism (concurrent tests), bounded CPU parallelism (CHILD_PROCESS.spawn() each test file)
                                  #     - bad exception handling, failed assertions do not throw
                                  #     - can run only previously failed tests

VERSION ==>                       #6.1.3
                                  #Node.js, browser and CLI

REPORTERS ==>                     #See Mocha reporters doc


                                             /=+===============================+=\
                                            /  :                               :  \
{'fraction_non_alphanumeric': 0.13782124175574256, 'fraction_numerical': 0.0006822833750284285, 'mean_word_length': 0.9024443002379408, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 172, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '16716', 'n_tokens_mistral': 3801, 'n_tokens_neox': 3631, 'n_words': 520}