Solver tst

I've refactored the way that exchange solvers are tested in order to more easily add test cases as well as additional solver configurations.

In short, typed tests are used, where each test case is its own class. New solvers can easily be added by providing solutions to each test Case and copying the typed test macro text.

This PR removes the current greedy solver tests and uses the refactored typed tests in its place. All prior tests have been migrated.