function testSimpleTree() {
  var treeBefore =
      'limit(20)\n' +
      '-project()\n' +
      '--select(value_pred(Employee.id gt 100))\n' +
      '---table_access(Employee)\n';

  var treeAfter =
      'limit(20)\n' +
      '-project()\n' +
      '--table_access_by_row_id(Employee)\n' +
      '---index_range_scan(Employee.pkEmployee, (100, unbound], natural)\n';

  var constructTree = function() {
    var queryContext = new lf.query.SelectContext(hr.db.getSchema());
    queryContext.from = [e];
    queryContext.where = e.id.gt('100');
    queryContext.limit = 20;

    var limitNode = new lf.proc.LimitStep();
    var projectNode = new lf.proc.ProjectStep([], null);
    limitNode.addChild(projectNode);
    var selectNode = new lf.proc.SelectStep(queryContext.where.getId());
    projectNode.addChild(selectNode);
    var tableAccessNode = new lf.proc.TableAccessFullStep(
        hr.db.getGlobal(), queryContext.from[0]);
    selectNode.addChild(tableAccessNode);

    return {
      queryContext: queryContext,
      root: limitNode
    };
  };

  lf.testing.treeutil.assertTreeTransformation(
      constructTree(), treeBefore, treeAfter, pass);
}
Tests a simple tree, where only one value predicate exists.