Interesting, but doesn't look good to me. The minimum unit of code I test is function. Function is some peace of code with well defined behaviour, I can completely rewrite it, but tests still will be valid. Your test testing particular implementation of the function, it is possible that somebody will rewrite function using different algorithm, and function will return the same result as before, but tests will fail, cause they rely on particular implementation.
You can say that tests may be rewritten too, but it's not so easy. You expose some interface, and it is possible that some idiot use it to get incomplete result, and he rely on this functionality, so how could you know that you didn't broke anything?
In my opinion it maybe useful for debugging, but not for testing.