State s3NoCost = e3.traverse(s2NoCost);
State partialS0NoCost = new State(options);
State partialS1NoCost = e1.traverse(partialS0NoCost);
State partialS2ANoCost = partialE2First.traverse(partialS1NoCost);
State partialS2BNoCost = partialE2Second.traverse(partialS2ANoCost);
State partialS3NoCost = e3.traverse(partialS2BNoCost);
// Time and cost should be the same up to a rounding difference.
assertTrue(Math.abs(s3NoCost.getTimeSeconds() - partialS3NoCost.getTimeSeconds()) <= 1);
assertTrue(Math.abs(s3NoCost.getElapsedTimeSeconds() - partialS3NoCost.getElapsedTimeSeconds()) <= 1);