Feature/top level tests

This is just the framework. It needs to be updated with actual tests. Currently, `rubocop` will fail due to presence of `.rubocop.yml` and `.rubocop_todo.yml` files in subdirectories.
does this need to be checked in?