public static boolean isDone(
      Map<String, StepTransition> runtimeDag,
      Map<String, Boolean> idStatusMap,
      RestartConfig restartConfig) {

    Map<String, Set<String>> parentMap = new HashMap<>();
    Map<String, Set<String>> childMap = new HashMap<>();
    Deque<String> deque =
        prepareDagForTraversal(
            runtimeDag, idStatusMap.keySet(), restartConfig, parentMap, childMap);

    return isDone(idStatusMap, deque, parentMap, childMap);
  }
@Test
  public void testRestartDoneWithFailedStep() {
    Map<String, Boolean> idStatusMap = new LinkedHashMap<>();
    idStatusMap.put("job_3", Boolean.FALSE);
    idStatusMap.put("job_9", Boolean.TRUE);
    idStatusMap.put("job_8", Boolean.TRUE);
    Assert.assertTrue(
        DagHelper.isDone(
            runtimeDag1,
            idStatusMap,
            RestartConfig.builder().addRestartNode("sample-dag-test-1", 1, "job_9").build()));
  }