Marius Gedminas wrote:
> On Sun, Aug 02, 2009 at 08:48:24PM +0200, Andreas Jung wrote:
>> Hi,
>> the doctests for zope.index 3.5.2 - as used in Zope 2.12  - fail badly:
>> File
>> "/home/ajung/.buildout/eggs/zope.index-3.5.2-py2.6-linux-x86_64.egg/zope/index/text/tests/../textindex.txt",
>> line 143, in textindex.txt
>> Failed example:
>>     [(k, "%.4f" % v) for (k, v) in index2.apply("Zorro").items()] == result
> I'm assuming items() returns a plain Python dictionary with string keys.
> Python's string hashes return different valuesfor half of all the strings
> on 64-bit machines.  This influences the ordering of dictionary keys and
> some other things too (such as the sequence of random numbers you get if
> you use a string as the seed).
> Add a sorted() on both sides and the test should pass.

Actually, those tests were plain insane and I've fixed them on the 
trunk.  I intend to make a new zope.index release today.

How insane were these tests?  Well, the author of the tests noticed that 
the C optimization produces different scores than the Python version, 
and compensated for that in a way that dramatically reduced readability. 
  Furthermore, the C code was producing incorrect results due to an 
unsafe optimization that accidentally took 32 bits of a Python float and 
pretended it was an integer.  The breakage only became obvious when we 
started taking 64 bits instead, leading to completely different results.

Zope-Dev maillist  -
**  No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to