First, we need to create an architecture.md file, but the purpose of why I split up the tests are:
- Isolate tests from each other
- Better integrate with ctest which is designed with the idea that tests are separate applications
The applications contain a run_test function because putting the tests in the main function, results in UB when built using Relase mode and LTO .
We cannot use test suites as they This does not work on Windows for some reason, with LLVM.