this is similar, but no the same as this post, which was the closest question I could find on this. I don't even see that answer as satisfactory for the question asked in that thread let alone TDD. If I'm writing my tests before I write my actual code, how am I supposed to come up with "special" cases if I can't even run my code yet?
I was thinking about this for the domain of things like Neural networks and Genetic programming; While I can mostly avoid unit tests on stochastic aspects of NN's, Genetic Programming is a whole different beast. Selection, recombination, mutation and pairing algorithms should all have certain statistical characteristics to be "correct" in the context of my program. Note this is not a case of "testing non units" because if my program does not have the right statistical properties at each of these levels, I have a bug even though my program may look like it works fine. How do I even test any Evolutionary Algorithm or algorithm with similar stochastic requirements?
EDIT: for some reason the question suggester wasn't working properly, but I just found this in the side bar. The top answer talks about Mocks, but how would that work in a genetic programming environment, where the distributions themselves need to be tested?