I've been trying to keep each of these patches under 20k or so. I guess 4+5 could have been left as one file, given how large 1 and now 7 ended up. Oh, well. In addition to adding tests for new code and for the misc. cases Oliver pointed out, I also moved a number of "unset"s from the end of the tests that created parameters to the beginning of the next test case that uses those parameter names. This should make the tests less order-dependent and maybe the extra tests for side-effects could be dropped.