<commit_before># CUTI
CUTI stands for C++ Unit Test Integrated

## What?
CUTI is a wrapper on top of the CPPUNIT testing framework allowing you to integrate you C++ unit tests in your favorite IDE like Microsoft Visual Studio and XCode.

## How?
CUTI uses CMake to setup its include and library path.

### Visual Studio
CUTI override CPPUNIT macros, and adds a few, to use Visual Studio's cppunit test framework.

### XCode
Here it is tricky :
CUTI uses CPPUNIT test framework but implements an interface allowing to load your tests in XCode at runtime.
Unfortunately it needs some manual configuration...

### Others
CUTI uses CPPUNIT framework as backend.

## Why?
* You can run your tests from within your IDE
* You have visual feedback when running your tests
* It is easier to use your IDE tools with your tests like code coverage, profiling, ...
* It is easier to debug your code

## Prerequisite
* Use CPPUNIT as a shared library
* Use CPPUNIT plugin feature
* Use CPPUNIT macros

## Issues
* In Visual Studio, CUTI (by default) uses Visual Studio's cppunit test framework, which could have a different behavior than CPPUNIT.
* In XCode CUTI uses the objective-c runtime to find the tests at runtime, which could change the behavior of your tests. (Unverified)
* In XCode, you need to manually create a test target and setup its include and link path. These settings are overridden every-time CMake is run.

## TO DO
* Tutorial on how to use CPPUNIT
* Tutorial on how to use CUTI
* Automatic creation of XCode targets
<commit_msg>readme update<commit_after># CUTI
CUTI stands for C++ Unit Test Integrated

## What?
CUTI is a wrapper on top of the CPPUNIT testing framework allowing you to integrate you C++ unit tests in your favorite IDE like Microsoft Visual Studio and XCode.

## How?
CUTI uses CMake to setup its include and library path.

### Visual Studio
CUTI override CPPUNIT macros, and adds a few, to use Visual Studio's cppunit test framework instead of CPPUNIT.

### XCode
CUTI uses the CPPUNIT test framework with a special test runner to dynamically register your test in XCode.

### Others
CUTI uses CPPUNIT framework as backend.

## Why?
* You can run your tests from within your IDE
* You have visual feedback when running your tests
* It is easier to use your IDE tools with your tests like code coverage, profiling, ...
* It is easier to debug your code
* You are more likely to run your tests

## Prerequisite
* Use CPPUNIT as a shared library
* Use CPPUNIT plugin feature
* Use CPPUNIT macros
* The code to test must be compiled as a library (static or shared)
* The test code must be compiled as a shared library (this is linked to the use of CPPUNIT's plugin feature)

## Known Issues
* In Visual Studio, CUTI (by default) uses Visual Studio's cppunit test framework, which could have a different behavior than CPPUNIT.
* In XCode CUTI uses the objective-c runtime to find the tests at runtime, which could change the behavior of your tests. (Unverified)
* In XCode, you can only test code compiled as a shared library

## TO DO
* Tutorial on how to use CPPUNIT
* Tutorial on how to use CUTI

{'fraction_non_alphanumeric': 0.04932735426008968, 'fraction_numerical': 0.0, 'mean_word_length': 4.187707641196013, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, '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': '547996', 'n_tokens_mistral': 863, 'n_tokens_neox': 833, 'n_words': 506}