@Test
  public void howto_iterate_all_leafs_test() {
    createSimpleGraph();

    List<String> levels = new ArrayList<String>();
    BitSet knownLeafs = matrix.getLeafs();
    levels.add(knownLeafs.toString());

    BitSet newLeafs = matrix.findAncestorLeafs(knownLeafs);
    while (!newLeafs.isEmpty()) {
      levels.add(newLeafs.toString());
      knownLeafs.or(newLeafs);
      newLeafs = matrix.findAncestorLeafs(knownLeafs);
    }

    assertThat(levels.get(0), is("{1}"));
    assertThat(levels.get(1), is("{4}"));
    assertThat(levels.get(2), is("{3}"));
    assertThat(levels.get(3), is("{2}"));
    assertThat(levels.get(4), is("{0}"));
  }
 @Test
 public void return_leafs_of_graph() {
   createSimpleGraph();
   assertThat(matrix.getLeafs().toString(), is("{1}"));
 }