ENH: Better tests

Ready for review/merge.

Closes #179.
lambda is usually better, I didn't do it because at one point I thought I needed to use `functools.partial` (which doesn't like lambda functions), I'll change it