Am 06.02.2012 09:45, schrieb Matej Cepl:
Also, how could I write a re-implementation of random.choice which would
work same on python 2.6 and python 3.2? It is not only matter of unit
tests, but I would really welcome if the results on both versions
produce the same results.

Two approaches come to mind:
1. make two runs and verify that they differ
This is a bit problematic, because there is a small but nonzero chance that two runs don't differ. Random numbers are just not random enough. Anyhow, afterwards, sort the results again and verify that it was just the order that differs.

2. hack the random module into something nonrandom
I think you can "import debug_random as random" and then have your testee automatically pick up that module instead of the real one. Since you already hardcoded the results to check against ("expected = ..." in your code), you can also hard-code the sequence of random numbers corresponding to that. This is even cleaner, as you don't rely on something being deterministic that is supposed to be random, which is not totally surprising but still somehow paradox.

Uli
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to