I don't think the test/code ratio is a useful measurement. If there's a useful measurement of the amount of tests, it is related to the pre- and postconditions. Or, if you will, the amount of flexibility. To take it to the extreme, if something is supposed to do one thing, all you need is one test. No matter how much code you've written. If pressing a button means the lights go on, and pressing it again means the lights go out, you only need two test cases:
- Press button. Success iff lights go on.
- Press button again. Success iff lights go off.
But a one-line regular expression might require thousands of tests, because it needs to give the correct answer for every possible string that it might be matched against.