assert d.length >= 4;
String wf = (String) d[0];
int[] iga = (int[]) d[1];
int[] oga = (int[]) d[2];
int[][] paa = (int[][]) d[3];
GlyphSequence tigs = tf.mapCharsToGlyphs ( wf );
assertSameGlyphs ( iga, getGlyphs ( tigs ), "input glyphs", wf, tfn );
GlyphSequence togs = gsub.substitute ( tigs, script, language );
assertSameGlyphs ( oga, getGlyphs ( togs ), "output glyphs", wf, tfn );
int[][] tpaa = new int [ togs.getGlyphCount() ] [ 4 ];
if ( gpos.position ( togs, script, language, 1000, widths, tpaa ) ) {
assertSameAdjustments ( paa, tpaa, wf, tfn );
} else if ( paa != null ) {
assertEquals ( "unequal adjustment count, word form(" + wf + "), font (" + tfn + ")", paa.length, 0 );
}