String fid = (String) td[0];
String lid = (String) td[1];
String script = (String) td[2];
String language = (String) td[3];
String feature = (String) td[4];
TTXFile tf = findTTX ( fid );
assertTrue ( tf != null );
GlyphPositioningTable gpos = tf.getGPOS();
assertTrue ( gpos != null );
GlyphPositioningSubtable[] sta = findGPOSSubtables ( gpos, script, language, feature, lid );
assertTrue ( sta != null );
assertTrue ( sta.length > 0 );
ScriptContextTester sct = findScriptContextTester ( script, language, feature );
Object[][] tia = (Object[][]) td[5]; // test instance array
for ( Object[] ti : tia ) { // test instance
if ( ti != null ) {
if ( ti.length > 0 ) { // must have at least input glyphs
String[] igia = (String[]) ti[0]; // input glyph id array
int[][] ogpa = (int[][]) ti[1]; // output glyph positioning array
GlyphSequence igs = tf.getGlyphSequence ( igia );
int[] widths = tf.getWidths();
int[][] tgpa = new int [ igia.length ] [ 4 ];
boolean adjusted = GlyphPositioningSubtable.position ( igs, script, language, feature, 1000, sta, widths, tgpa, sct );
assertTrue ( adjusted );
assertSamePositions ( ogpa, tgpa );
}