testing: make Eq(nan,<meh>) return False, Ne(nan, <meh>) return True

Not necessarily intended for a merge...
Someone else can speak to the idea of testing: whether it should be for the purpose of coverage -- to make sure that the code that is written is right -- or whether it should be proactive and guard against future changes. I'll defer to someone else on this. 

My suggestion that you use random testing is that it is the best of both: after coverage, additional random tests will guard against future errors. The regular testing will eventually raise an error and it will be taken as seriously if it came from a random test as if it came from a complete enumeration of tests as you are suggesting. The cost of letting the test suite bloat is something to consider, IMHO.