<commit_before># Installing `pytest`

First of all, install `pytest` through `pip`.
```
pip3 install pytest
```
In case your system wouldn't be able to find `pip` and return a _command not found_, response,  [here](https://pip.pypa.io/en/stable/installing/) you can find a tutorial on how to install it.

# Running the Tests

To run the tests for a specific exercise (we will take the `bob.py` exercise as an example here), place yourself in the directory where that exercise has been fetched and run:

```
pytest bob_test.py
```

This will run all the tests, wethere they fail or not. If you'd rather stop the process and exit on the first failure, run:

```
pytest -x bob_test.py
```

**Note:** To run the tests you have to pass the name of the testsuite file to `pytest` (generally, the file ending with `_test.py`), **NOT** the file you created to solve the problem (which is, your _implementation_). This because in the latter case, since there are no defined test cases in your implementation, `pytest` will just return a positive result, specifying that it ran zero tests. Like this:

```
=============================  bob.py  ==============================

----------------------------------------------------------------------

Ran 0 tests in 0.000s

OK
```
<commit_msg>Fix typo in documentation where pip is pip3<commit_after># Installing `pytest`

First of all, install `pytest` through `pip`.
```
pip install pytest
```
In case your system wouldn't be able to find `pip` and return a _command not found_, response,  [here](https://pip.pypa.io/en/stable/installing/) you can find a tutorial on how to install it.

# Running the Tests

To run the tests for a specific exercise (we will take the `bob.py` exercise as an example here), place yourself in the directory where that exercise has been fetched and run:

```
pytest bob_test.py
```

This will run all the tests, wethere they fail or not. If you'd rather stop the process and exit on the first failure, run:

```
pytest -x bob_test.py
```

**Note:** To run the tests you have to pass the name of the testsuite file to `pytest` (generally, the file ending with `_test.py`), **NOT** the file you created to solve the problem (which is, your _implementation_). This because in the latter case, since there are no defined test cases in your implementation, `pytest` will just return a positive result, specifying that it ran zero tests. Like this:

```
=============================  bob.py  ==============================

----------------------------------------------------------------------

Ran 0 tests in 0.000s

OK
```

{'fraction_non_alphanumeric': 0.17830953299884214, 'fraction_numerical': 0.004631416441528367, 'mean_word_length': 3.348993288590604, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, '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': '5779867', 'n_tokens_mistral': 729, 'n_tokens_neox': 688, 'n_words': 363}