function testKeyOfIndex_CrossColumnKey() {
  var getSchema = function() {
    var tableBuilder = new lf.schema.TableBuilder('Table');
    tableBuilder.
        addColumn('datetime', lf.Type.DATE_TIME).
        addColumn('integer', lf.Type.INTEGER).
        addColumn('number', lf.Type.NUMBER).
        addColumn('string', lf.Type.STRING).
        addColumn('boolean', lf.Type.BOOLEAN).
        addPrimaryKey(['string', 'integer']).
        addIndex('idx_NumberInteger', ['number', 'integer']).
        addIndex('idx_NumberIntegerString', ['number', 'integer', 'string']).
        addIndex('idb_DateTimeString', ['datetime', 'string']).
        addIndex('idb_BooleanString', ['boolean', 'string']);
    return tableBuilder.getSchema();
  };

  var tableSchema = getSchema();
  var row = tableSchema.createRow({
    'boolean': true,
    'datetime': new Date(999),
    'integer': 2,
    'number': 3,
    'string': 'bar'
  });
  assertEquals(row.id(), row.keyOfIndex(tableSchema.getRowIdIndexName()));

  var indices = tableSchema.getIndices();
  var pkIndexSchema = indices[0];
  assertArrayEquals(
      ['bar', 2],
      row.keyOfIndex(pkIndexSchema.getNormalizedName()));

  var numberStringIndexSchema = indices[1];
  assertArrayEquals(
      [3, 2],
      row.keyOfIndex(numberStringIndexSchema.getNormalizedName()));

  var numberIntegerStringIndexSchema = indices[2];
  assertArrayEquals(
      [3, 2, 'bar'],
      row.keyOfIndex(numberIntegerStringIndexSchema.getNormalizedName()));

  var dateTimeStringIndexSchema = indices[3];
  assertArrayEquals(
      [999, 'bar'],
      row.keyOfIndex(dateTimeStringIndexSchema.getNormalizedName()));

  var booleanStringIndexSchema = indices[4];
  assertArrayEquals(
      [1, 'bar'],
      row.keyOfIndex(booleanStringIndexSchema.getNormalizedName()));
}
Tests that keyOfIndex() method returns the expected keys, for the case of
cross-column indices.