The font for this test case has
an AAT Extended Glyph Metamorphosis Table
with a single Rearrangement Subtable. Its finite-state machine
contains three states (0, 1, 2) and the following transitions:
For glyph 0, the machine enters state 0.
For glyph 1, the machine enters state 1.
For glyph 2, the machine enters state 2.
For glyph A, the machine remains in its current
state. As a side effect, it sets both start
and end of the marked glyph sequence to the current
position.
For glyph B, the machine remains in its current
state. As a side effect, it changes the end of the
marked glyph sequence to the current position.
For glyph C, the machine remains in its current
state. As a side effect, the machine changes the end of
the marked glyph sequence to the current position. In
addition, it executes one of the following rearrangement
actions:
In state 0, a rearrangement of type 0. This is a no-op, so
the marked glyph sequence remains unchanged.
In state 1, a rearrangement of type 1. This moves the first
marked glyph to the back, so “ABC” gets rewritten to “BCA”.
In state 2, a rearrangement of type 2. This moves the last
marked glyph to the front, so “ABC” gets rewritten to “CAB”.
If your rendering system correctly implements Apple Advanced
Typography, the string “0ABC” should get rendered in the
original ordering, whereas “1ABC” and “2ABC” should get re-arranged
in a state-dependent way.