The font for this test case has
an AAT Extended Glyph Metamorphosis Table
with a single Rearrangement Subtable. Its finite-state machine
contains two states (0 and 1) with the following transitions:
For glyph A, the machine stays in its current
state. As a side effect, it sets both start
and end of the marked glyph sequence to the
current glyph position.
For glyphs B and C, the machine stays
in its current state. As a side effect, it sets both start
and end of the marked glyph sequence to the
current glyph position.
For glyph ➊:
from state 0, the machine makes a transition to state 1.
This transition carries the DontAdvance flag.
No rearrangement action is performed.
from state 1, the machine stays in state 1. This transition
carries no flags. However, it peforms a rearrangement of type 2
which moves the last marked glyph to the front of the marked
glyph sequence. This changes the marked sequence
from ABC to CAB.
For glyph ➋:
from state 0, the machine makes a transition to state 1.
This transition carries the DontAdvance flag, and
it performs a rearrangement of type 2. This rewrites the
marked glyph sequence from ABC to CAB.
from state 1, the machine stays in state 1. This transition
carries no flags and performs no actions.
For glyph ➌:
from state 0, the machine makes a transition to state 1.
This transition carries the DontAdvance flag, and
it performs a rearrangement of type 2. This rewrites the
marked glyph sequence from ABC to CAB.
from state 1, the machine stays in state 1. This transition
carries no flags. However, it peforms another rearrangement of
type 2. This second rewrite changes the
marked glyph sequence from CAB to BCA.
For any other glyphs and “end of text”, the machine performs
no action.
The input string for this test case is XABCX followed by
➊, ➋, or ➌. If your rendering system correctly implements Apple
Advanced Typography, the finite-state machine should follow the
DontAdvance transitions to state 1 and produce the expected
outputs.