function testTree_MultiplePredicates_SingleColumnIndices() {
  var treeBefore =
      'select(value_pred(Employee.salary lte 200))\n' +
      '-select(value_pred(Employee.id gt 100))\n' +
      '--select(value_pred(Employee.salary gte 100))\n' +
      '---table_access(Employee)\n';

  var treeAfter =
      'select(value_pred(Employee.id gt 100))\n' +
      '-table_access_by_row_id(Employee)\n' +
      '--index_range_scan(Employee.idx_salary, [100, 200], natural)\n';

  lf.testing.util.simulateIndexCost(
      propertyReplacer, indexStore, e.salary.getIndices()[0], 10);
  lf.testing.util.simulateIndexCost(
      propertyReplacer, indexStore, e.id.getIndices()[0], 500);

  lf.testing.treeutil.assertTreeTransformation(
      constructTree3(), treeBefore, treeAfter, pass);
}
Tests a tree where
 - 2 predicates for 'salary' column exist.
 - 1 predicate for 'id' column exists.
 - 2 indices exist, one for each colmn.
This test checks that two separate predicates can be replaced by an
IndexRangeScanPass if they refer to the same colmun in the case where that
column's index is chosen to be used for optimization.