function checkEvalRelations_OuterJoin_UniqueKeys(evalFn) {
  var sampleRows = getSampleRows();
  // Remove the last job row.
  var lessJobs = sampleRows.jobs.slice(0, sampleRows.jobs.length - 1);
  var employeeRelation = lf.proc.Relation.fromRows(
      sampleRows.employees, [e.getName()]);
  var jobRelation = lf.proc.Relation.fromRows(
      lessJobs, [j.getName()]);
  // For every Job , there are 10 employees according to getSampleRows().
  var numEmployeesPerJob = 10;

  var joinPredicate1 = e.jobId.eq(j.id);
  var result = evalFn.call(
      joinPredicate1, employeeRelation, jobRelation, true);
  assertEquals(sampleRows.employees.length, result.entries.length);
  var numNullEntries = result.entries.filter(function(entry) {
    return hasNullEntry(entry, 'Job');
  }).length;
  assertEquals(numEmployeesPerJob, numNullEntries);
}
Checks that the given outer join implementation is correct for the case,
where the join predicate refers to unique keys.
@param {!function(!lf.proc.Relation, !lf.proc.Relation, boolean)
    :!lf.proc.Relation} evalFn The join implementation method should be
    either evalRelationsNestedLoopJoin_ or evalRelationsHashJoin_.