Refactored tests + support for grade datasets

This commit is divided in two parts:
First is a refactor of the test invocation.
Second is quite a long commit, as the datasets are quite big it's up to you to decide if it's worth integrating it.