@Test public void testKeepSelfLoop_Edge() { Edge edge = new Edge(STATE1, STATE1, DUMMY); assertThat(optimize(ImmutableSet.of(edge), ImmutableSet.of(STATE1), false), contains(edge)); }
public static Collection<Edge> optimize( Collection<Edge> edges, Set<StateExpr> statesToKeep, boolean keepSelfLoops) { BDDReachabilityGraphOptimizer opt = new BDDReachabilityGraphOptimizer(edges, statesToKeep, keepSelfLoops); opt.optimize(); return opt._edges.cellSet().stream() .map(cell -> new Edge(cell.getRowKey(), cell.getColumnKey(), cell.getValue())) .collect(ImmutableList.toImmutableList()); }
BDDReachabilityGraphOptimizer { public static Collection<Edge> optimize( Collection<Edge> edges, Set<StateExpr> statesToKeep, boolean keepSelfLoops) { BDDReachabilityGraphOptimizer opt = new BDDReachabilityGraphOptimizer(edges, statesToKeep, keepSelfLoops); opt.optimize(); return opt._edges.cellSet().stream() .map(cell -> new Edge(cell.getRowKey(), cell.getColumnKey(), cell.getValue())) .collect(ImmutableList.toImmutableList()); } }
BDDReachabilityGraphOptimizer { public static Collection<Edge> optimize( Collection<Edge> edges, Set<StateExpr> statesToKeep, boolean keepSelfLoops) { BDDReachabilityGraphOptimizer opt = new BDDReachabilityGraphOptimizer(edges, statesToKeep, keepSelfLoops); opt.optimize(); return opt._edges.cellSet().stream() .map(cell -> new Edge(cell.getRowKey(), cell.getColumnKey(), cell.getValue())) .collect(ImmutableList.toImmutableList()); } private  BDDReachabilityGraphOptimizer(
      Collection<Edge> edges, Set<StateExpr> statesToKeep, boolean keepSelfLoops); }
BDDReachabilityGraphOptimizer { public static Collection<Edge> optimize( Collection<Edge> edges, Set<StateExpr> statesToKeep, boolean keepSelfLoops) { BDDReachabilityGraphOptimizer opt = new BDDReachabilityGraphOptimizer(edges, statesToKeep, keepSelfLoops); opt.optimize(); return opt._edges.cellSet().stream() .map(cell -> new Edge(cell.getRowKey(), cell.getColumnKey(), cell.getValue())) .collect(ImmutableList.toImmutableList()); } private  BDDReachabilityGraphOptimizer(
      Collection<Edge> edges, Set<StateExpr> statesToKeep, boolean keepSelfLoops); static Collection<Edge> optimize(
      Collection<Edge> edges, Set<StateExpr> statesToKeep, boolean keepSelfLoops); }
BDDReachabilityGraphOptimizer { public static Collection<Edge> optimize( Collection<Edge> edges, Set<StateExpr> statesToKeep, boolean keepSelfLoops) { BDDReachabilityGraphOptimizer opt = new BDDReachabilityGraphOptimizer(edges, statesToKeep, keepSelfLoops); opt.optimize(); return opt._edges.cellSet().stream() .map(cell -> new Edge(cell.getRowKey(), cell.getColumnKey(), cell.getValue())) .collect(ImmutableList.toImmutableList()); } private  BDDReachabilityGraphOptimizer(
      Collection<Edge> edges, Set<StateExpr> statesToKeep, boolean keepSelfLoops); static Collection<Edge> optimize(
      Collection<Edge> edges, Set<StateExpr> statesToKeep, boolean keepSelfLoops);  }