Implement test coverage through unittest module

- separate core code from main script
- add test.py test class (integration tests only)
- add test configurations
- update CI
8 jobs for feature/test-coverage-improvement in 14 minutes and 19 seconds