Re: Bidi reordering test results

From: Asmus Freytag (
Date: Sat Dec 04 1999 - 01:50:24 EST


At 10:08 AM 12/3/99 -0800, Mark Leisher wrote:
>I have a web page showing the results from tests of two (soon to be three)
>freely available bidi reordering packages for Unicode text. The text I used
>for the tests as well as the test programs I wrote for all three are
>as well:
>Please feel free to donate additional tests/code, point out problems, or make

The really interesting question is how do these algorithms compare with the
official bidi reference implementations published by the Unicode Consortium.

The Unicode sample code is availabe at

The Technical report states:

>1 Reference Code
>There are two versions of BIDI reference code available. Both have been
tested to produce identical results. One version is written in Java, while
the other is written in C++. The Java version is designed to closely follow
the steps of the algorithm as described in this report. The C++ code is
designed to show one of the optimization methods that can be applied to the
algorithm, using a state table for one phase.

It is very important to note that any implementations that don't match the
published algorithm, as evidenced by yielding different results than the
reference implementations, are *not conformant*.

Since the whole purpose of the bidi algorithm is to allow *writers* to
predict the ordering of their text on the *readers'* screen, adherence to
the conformance requirements is crucial.

The published reference implementations were tested exhaustively up to
sequences of length 6 against each other, and stochastically for much
longer sequences, with special prefixes used to force the implemenations to
hit the maximum nesting level during some portion of the tests.

I would encourage Mark to test his algorithms exhaustively against the
reference code and report his results here.

For more details on bidi and the conformance requirements read the report at:


This archive was generated by hypermail 2.1.2 : Tue Jul 10 2001 - 17:20:56 EDT