Tests - tests - tests
This PR adds a bunch of first test cases. This is just a first step and we should all create new cases when add features or file bugs. When you run those tests you will notice that some of them fail. I will file the issues soon.