}
assertEquals(plan.getLeafJobs().size(), 2);
int mask = 0;
for (PlannedJob job : plan.getLeafJobs()) {
assertEquals(job.getInputJobCount(), 0);
CacheSelectHint hint = job.getCacheSelectHint();
if (matchJob(job, _testNode[2])) {
mask |= 1;
assertEquals(job.getDependents().length, 3);
assertNull(job.getTails());
assertFalse(hint.isPrivateValue(_testValue20));
assertFalse(hint.isPrivateValue(_testValue21));
assertFalse(hint.isPrivateValue(_testValue24));
assertFalse(hint.isPrivateValue(_testValuex2));
for (PlannedJob job2 : job.getDependents()) {
hint = job2.getCacheSelectHint();
assertNull(job2.getDependents());
assertNull(job2.getTails());
if (matchJob(job2, _testNode[0])) {
mask |= 2;
assertEquals(job2.getInputJobCount(), 1);
assertFalse(hint.isPrivateValue(_testValue0x));
assertFalse(hint.isPrivateValue(_testValue20));
} else if (matchJob(job2, _testNode[1])) {
mask |= 4;
assertEquals(job2.getInputJobCount(), 1);
assertFalse(hint.isPrivateValue(_testValue1x));
assertFalse(hint.isPrivateValue(_testValue21));
} else if (matchJob(job2, _testNode[4])) {
mask |= 8;
assertEquals(job2.getInputJobCount(), 2);
assertFalse(hint.isPrivateValue(_testValue4x));
assertFalse(hint.isPrivateValue(_testValue24));
assertFalse(hint.isPrivateValue(_testValue34));
} else {
fail();
}
}
} else if (matchJob(job, _testNode[3])) {
mask |= 16;
assertEquals(job.getDependents().length, 1);
assertNull(job.getTails());
assertFalse(hint.isPrivateValue(_testValue34));
assertFalse(hint.isPrivateValue(_testValuex3));
PlannedJob job2 = job.getDependents()[0];
hint = job2.getCacheSelectHint();
assertEquals(job2.getInputJobCount(), 2);
assertNull(job2.getDependents());
assertNull(job2.getTails());
assertTrue(matchJob(job2, _testNode[4]));
assertFalse(hint.isPrivateValue(_testValue4x));
assertFalse(hint.isPrivateValue(_testValue24));
assertFalse(hint.isPrivateValue(_testValue34));
} else {
fail();
}
}
assertEquals(mask, 31);