generalize testData generation and make abstract

Done so tests can implement their own test data, making it easier to reason
about cooked results.
more stringent Rate processor test