function testCrossTableOrPredicates_Unaffected() {
  var treeBefore =
      'project()\n' +
      '-select(combined_pred_or)\n' +
      '--join(type: inner, impl: hash, join_pred(Job.id eq Employee.jobId))\n' +
      '---table_access(Employee)\n' +
      '---table_access(Job)\n';

  var constructTree = function() {
    var queryContext = new lf.query.SelectContext(schema);
    queryContext.from = [e, j];
    var joinPredicate = j['id'].eq(e['jobId']);
    var orPredicate = lf.op.or(e['salary'].lte(1000), j['maxSalary'].gte(200));
    queryContext.where = lf.op.and(orPredicate, joinPredicate);

    var projectStep = new lf.proc.ProjectStep([], null);
    var selectStep = new lf.proc.SelectStep(orPredicate.getId());
    var joinStep = new lf.proc.JoinStep(global, joinPredicate, false);
    var tableAccessStep1 = new lf.proc.TableAccessFullStep(
        global, queryContext.from[0]);
    var tableAccessStep2 = new lf.proc.TableAccessFullStep(
        global, queryContext.from[1]);

    projectStep.addChild(selectStep);
    selectStep.addChild(joinStep);
    joinStep.addChild(tableAccessStep1);
    joinStep.addChild(tableAccessStep2);

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

  lf.testing.treeutil.assertTreeTransformation(
      constructTree(), treeBefore, treeBefore, pass);
}
Tests a tree where an OR predicate that refers to multiple tables exists.
Ensures that the optimization is not be applied and the tree remains
unaffected.