Testing loop edge elimination in undirected graph

Loops eliminated: {
  0: ( 1 3 3 )
  1: ( 0 2 )
  2: ( 1 3 )
  3: ( 0 0 2 4 )
  4: ( 3 )
}

Loops listed once: {
  0: ( 1 3 3 )
  1: ( 0 2 )
  2: ( 1 2 3 )
  3: ( 0 0 2 4 )
  4: ( 3 4 4 )
}

Loops listed twice: {
  0: ( 1 3 3 )
  1: ( 0 2 )
  2: ( 1 2 2 3 )
  3: ( 0 0 2 4 )
  4: ( 3 4 4 4 4 )
}

============================================================

Testing lazy loop edge elimination in undirected graph

Loops eliminated: {
  0: ( 1 3 3 )
  1: ( 0 2 )
  2: ( 1 3 )
  3: ( 0 0 2 4 )
  4: ( 3 )
}

Loops listed once: {
  0: ( 1 3 3 )
  1: ( 0 2 )
  2: ( 1 2 3 )
  3: ( 0 0 2 4 )
  4: ( 3 4 4 )
}

Loops listed twice: {
  0: ( 1 3 3 )
  1: ( 0 2 )
  2: ( 1 2 2 3 )
  3: ( 0 0 2 4 )
  4: ( 3 4 4 4 4 )
}

============================================================

Testing loop edge elimination in directed graph

In-edges, loops eliminated: {
  0: ( 3 )
  1: ( 0 )
  2: ( 1 )
  3: ( 0 2 )
  4: ( 3 )
}

In-edges, loops listed once: {
  0: ( 3 )
  1: ( 0 )
  2: ( 1 2 )
  3: ( 0 2 )
  4: ( 3 4 4 )
}

In-edges, loops listed once even if IGRAPH_LOOPS_TWICE is given: {
  0: ( 3 )
  1: ( 0 )
  2: ( 1 2 )
  3: ( 0 2 )
  4: ( 3 4 4 )
}

Out-edges, loops eliminated: {
  0: ( 1 3 )
  1: ( 2 )
  2: ( 3 )
  3: ( 0 4 )
  4: ( )
}

Out-edges, loops listed once: {
  0: ( 1 3 )
  1: ( 2 )
  2: ( 2 3 )
  3: ( 0 4 )
  4: ( 4 4 )
}

Out-edges, loops listed once even if IGRAPH_LOOPS_TWICE is given: {
  0: ( 1 3 )
  1: ( 2 )
  2: ( 2 3 )
  3: ( 0 4 )
  4: ( 4 4 )
}

In- and out-edges, loops eliminated: {
  0: ( 1 3 3 )
  1: ( 0 2 )
  2: ( 1 3 )
  3: ( 0 0 2 4 )
  4: ( 3 )
}

In- and out-edges, loops listed once: {
  0: ( 1 3 3 )
  1: ( 0 2 )
  2: ( 1 2 3 )
  3: ( 0 0 2 4 )
  4: ( 3 4 4 )
}

In- and out-edges, loops listed twice: {
  0: ( 1 3 3 )
  1: ( 0 2 )
  2: ( 1 2 2 3 )
  3: ( 0 0 2 4 )
  4: ( 3 4 4 4 4 )
}

============================================================

Testing lazy loop edge elimination in directed graph

In-edges, loops eliminated: {
  0: ( 3 )
  1: ( 0 )
  2: ( 1 )
  3: ( 0 2 )
  4: ( 3 )
}

In-edges, loops listed once: {
  0: ( 3 )
  1: ( 0 )
  2: ( 1 2 )
  3: ( 0 2 )
  4: ( 3 4 4 )
}

In-edges, loops listed once even if IGRAPH_LOOPS_TWICE is given: {
  0: ( 3 )
  1: ( 0 )
  2: ( 1 2 )
  3: ( 0 2 )
  4: ( 3 4 4 )
}

Out-edges, loops eliminated: {
  0: ( 1 3 )
  1: ( 2 )
  2: ( 3 )
  3: ( 0 4 )
  4: ( )
}

Out-edges, loops listed once: {
  0: ( 1 3 )
  1: ( 2 )
  2: ( 2 3 )
  3: ( 0 4 )
  4: ( 4 4 )
}

Out-edges, loops listed once even if IGRAPH_LOOPS_TWICE is given: {
  0: ( 1 3 )
  1: ( 2 )
  2: ( 2 3 )
  3: ( 0 4 )
  4: ( 4 4 )
}

In- and out-edges, loops eliminated: {
  0: ( 1 3 3 )
  1: ( 0 2 )
  2: ( 1 3 )
  3: ( 0 0 2 4 )
  4: ( 3 )
}

In- and out-edges, loops listed once: {
  0: ( 1 3 3 )
  1: ( 0 2 )
  2: ( 1 2 3 )
  3: ( 0 0 2 4 )
  4: ( 3 4 4 )
}

In- and out-edges, loops listed twice: {
  0: ( 1 3 3 )
  1: ( 0 2 )
  2: ( 1 2 2 3 )
  3: ( 0 0 2 4 )
  4: ( 3 4 4 4 4 )
}

============================================================

Testing multiple edge elimination in undirected graph

Loops also eliminated: {
  0: ( 1 3 8 )
  1: ( 0 2 )
  2: ( 1 3 )
  3: ( 0 2 4 )
  4: ( 3 5 )
  5: ( 4 6 )
  6: ( 5 7 8 )
  7: ( 6 )
  8: ( 0 6 )
}

Loops listed once: {
  0: ( 1 3 8 )
  1: ( 0 2 )
  2: ( 1 2 3 )
  3: ( 0 2 4 )
  4: ( 3 4 5 )
  5: ( 4 6 )
  6: ( 5 7 8 )
  7: ( 6 )
  8: ( 0 6 )
}

Loops listed twice: {
  0: ( 1 3 8 )
  1: ( 0 2 )
  2: ( 1 2 2 3 )
  3: ( 0 2 4 )
  4: ( 3 4 4 5 )
  5: ( 4 6 )
  6: ( 5 7 8 )
  7: ( 6 )
  8: ( 0 6 )
}

============================================================

Testing lazy multiple edge elimination in undirected graph

Loops also eliminated: {
  0: ( 1 3 8 )
  1: ( 0 2 )
  2: ( 1 3 )
  3: ( 0 2 4 )
  4: ( 3 5 )
  5: ( 4 6 )
  6: ( 5 7 8 )
  7: ( 6 )
  8: ( 0 6 )
}

Loops listed once: {
  0: ( 1 3 8 )
  1: ( 0 2 )
  2: ( 1 2 3 )
  3: ( 0 2 4 )
  4: ( 3 4 5 )
  5: ( 4 6 )
  6: ( 5 7 8 )
  7: ( 6 )
  8: ( 0 6 )
}

Loops listed twice: {
  0: ( 1 3 8 )
  1: ( 0 2 )
  2: ( 1 2 2 3 )
  3: ( 0 2 4 )
  4: ( 3 4 4 5 )
  5: ( 4 6 )
  6: ( 5 7 8 )
  7: ( 6 )
  8: ( 0 6 )
}

============================================================

Testing multiple edge elimination in directed graph

In-edges, loops also eliminated: {
  0: ( 3 8 )
  1: ( 0 )
  2: ( 1 )
  3: ( 0 2 )
  4: ( 3 )
  5: ( 4 )
  6: ( 5 )
  7: ( 6 )
  8: ( 0 6 )
}

In-edges, loops listed once: {
  0: ( 3 8 )
  1: ( 0 )
  2: ( 1 2 )
  3: ( 0 2 )
  4: ( 3 4 )
  5: ( 4 )
  6: ( 5 )
  7: ( 6 )
  8: ( 0 6 )
}

In-edges, loops listed once even if IGRAPH_LOOPS_TWICE is given: {
  0: ( 3 8 )
  1: ( 0 )
  2: ( 1 2 )
  3: ( 0 2 )
  4: ( 3 4 )
  5: ( 4 )
  6: ( 5 )
  7: ( 6 )
  8: ( 0 6 )
}

Out-edges, loops also eliminated: {
  0: ( 1 3 8 )
  1: ( 2 )
  2: ( 3 )
  3: ( 0 4 )
  4: ( 5 )
  5: ( 6 )
  6: ( 7 8 )
  7: ( )
  8: ( 0 )
}

Out-edges, loops listed once: {
  0: ( 1 3 8 )
  1: ( 2 )
  2: ( 2 3 )
  3: ( 0 4 )
  4: ( 4 5 )
  5: ( 6 )
  6: ( 7 8 )
  7: ( )
  8: ( 0 )
}

Out-edges, loops listed once even if IGRAPH_LOOPS_TWICE is given: {
  0: ( 1 3 8 )
  1: ( 2 )
  2: ( 2 3 )
  3: ( 0 4 )
  4: ( 4 5 )
  5: ( 6 )
  6: ( 7 8 )
  7: ( )
  8: ( 0 )
}

In- and out-edges, loops also eliminated: {
  0: ( 1 3 8 )
  1: ( 0 2 )
  2: ( 1 3 )
  3: ( 0 2 4 )
  4: ( 3 5 )
  5: ( 4 6 )
  6: ( 5 7 8 )
  7: ( 6 )
  8: ( 0 6 )
}

In- and out-edges, loops listed once: {
  0: ( 1 3 8 )
  1: ( 0 2 )
  2: ( 1 2 3 )
  3: ( 0 2 4 )
  4: ( 3 4 5 )
  5: ( 4 6 )
  6: ( 5 7 8 )
  7: ( 6 )
  8: ( 0 6 )
}

In- and out-edges, loops listed twice: {
  0: ( 1 3 8 )
  1: ( 0 2 )
  2: ( 1 2 2 3 )
  3: ( 0 2 4 )
  4: ( 3 4 4 5 )
  5: ( 4 6 )
  6: ( 5 7 8 )
  7: ( 6 )
  8: ( 0 6 )
}

============================================================

Testing lazy multiple edge elimination in directed graph

In-edges, loops also eliminated: {
  0: ( 3 8 )
  1: ( 0 )
  2: ( 1 )
  3: ( 0 2 )
  4: ( 3 )
  5: ( 4 )
  6: ( 5 )
  7: ( 6 )
  8: ( 0 6 )
}

In-edges, loops listed once: {
  0: ( 3 8 )
  1: ( 0 )
  2: ( 1 2 )
  3: ( 0 2 )
  4: ( 3 4 )
  5: ( 4 )
  6: ( 5 )
  7: ( 6 )
  8: ( 0 6 )
}

In-edges, loops listed once even if IGRAPH_LOOPS_TWICE is given: {
  0: ( 3 8 )
  1: ( 0 )
  2: ( 1 2 )
  3: ( 0 2 )
  4: ( 3 4 )
  5: ( 4 )
  6: ( 5 )
  7: ( 6 )
  8: ( 0 6 )
}

Out-edges, loops also eliminated: {
  0: ( 1 3 8 )
  1: ( 2 )
  2: ( 3 )
  3: ( 0 4 )
  4: ( 5 )
  5: ( 6 )
  6: ( 7 8 )
  7: ( )
  8: ( 0 )
}

Out-edges, loops listed once: {
  0: ( 1 3 8 )
  1: ( 2 )
  2: ( 2 3 )
  3: ( 0 4 )
  4: ( 4 5 )
  5: ( 6 )
  6: ( 7 8 )
  7: ( )
  8: ( 0 )
}

Out-edges, loops listed once even if IGRAPH_LOOPS_TWICE is given: {
  0: ( 1 3 8 )
  1: ( 2 )
  2: ( 2 3 )
  3: ( 0 4 )
  4: ( 4 5 )
  5: ( 6 )
  6: ( 7 8 )
  7: ( )
  8: ( 0 )
}

In- and out-edges, loops also eliminated: {
  0: ( 1 3 8 )
  1: ( 0 2 )
  2: ( 1 3 )
  3: ( 0 2 4 )
  4: ( 3 5 )
  5: ( 4 6 )
  6: ( 5 7 8 )
  7: ( 6 )
  8: ( 0 6 )
}

In- and out-edges, loops listed once: {
  0: ( 1 3 8 )
  1: ( 0 2 )
  2: ( 1 2 3 )
  3: ( 0 2 4 )
  4: ( 3 4 5 )
  5: ( 4 6 )
  6: ( 5 7 8 )
  7: ( 6 )
  8: ( 0 6 )
}

In- and out-edges, loops listed twice: {
  0: ( 1 3 8 )
  1: ( 0 2 )
  2: ( 1 2 2 3 )
  3: ( 0 2 4 )
  4: ( 3 4 4 5 )
  5: ( 4 6 )
  6: ( 5 7 8 )
  7: ( 6 )
  8: ( 0 6 )
}

============================================================

graph: simple, loop: 0 multi: 0, mode: 0
loop cached: 0
multi cached: 0
graph: simple, loop: 0 multi: 0, mode: 1
loop cached: 0
multi cached: 0
graph: simple, loop: 0 multi: 1, mode: 0
loop cached: 0
multi not cached
graph: simple, loop: 0 multi: 1, mode: 1
loop cached: 0
multi not cached
graph: simple, loop: 1 multi: 0, mode: 0
loop not cached
multi cached: 0
graph: simple, loop: 1 multi: 0, mode: 1
loop not cached
multi cached: 0
graph: simple, loop: 1 multi: 1, mode: 0
loop not cached
multi not cached
graph: simple, loop: 1 multi: 1, mode: 1
loop not cached
multi not cached
graph: simple, loop: 2 multi: 0, mode: 0
loop not cached
multi cached: 0
graph: simple, loop: 2 multi: 0, mode: 1
loop not cached
multi cached: 0
graph: simple, loop: 2 multi: 1, mode: 0
loop not cached
multi not cached
graph: simple, loop: 2 multi: 1, mode: 1
loop not cached
multi not cached
graph: loop, loop: 0 multi: 0, mode: 0
loop cached: 1
multi cached: 0
graph: loop, loop: 0 multi: 0, mode: 1
loop cached: 1
multi cached: 0
graph: loop, loop: 0 multi: 1, mode: 0
loop cached: 1
multi not cached
graph: loop, loop: 0 multi: 1, mode: 1
loop cached: 1
multi not cached
graph: loop, loop: 1 multi: 0, mode: 0
loop not cached
multi cached: 0
graph: loop, loop: 1 multi: 0, mode: 1
loop not cached
multi cached: 0
graph: loop, loop: 1 multi: 1, mode: 0
loop cached: 1
multi not cached
graph: loop, loop: 1 multi: 1, mode: 1
loop cached: 1
multi not cached
graph: loop, loop: 2 multi: 0, mode: 0
loop not cached
multi cached: 1
graph: loop, loop: 2 multi: 0, mode: 1
loop not cached
multi cached: 1
graph: loop, loop: 2 multi: 1, mode: 0
loop not cached
multi not cached
graph: loop, loop: 2 multi: 1, mode: 1
loop not cached
multi not cached
graph: multiloop, loop: 0 multi: 0, mode: 0
loop cached: 1
multi cached: 0
graph: multiloop, loop: 0 multi: 0, mode: 1
loop cached: 1
multi cached: 0
graph: multiloop, loop: 0 multi: 1, mode: 0
loop cached: 1
multi not cached
graph: multiloop, loop: 0 multi: 1, mode: 1
loop cached: 1
multi not cached
graph: multiloop, loop: 1 multi: 0, mode: 0
loop not cached
multi cached: 1
graph: multiloop, loop: 1 multi: 0, mode: 1
loop not cached
multi cached: 1
graph: multiloop, loop: 1 multi: 1, mode: 0
loop cached: 1
multi not cached
graph: multiloop, loop: 1 multi: 1, mode: 1
loop cached: 1
multi not cached
graph: multiloop, loop: 2 multi: 0, mode: 0
loop not cached
multi cached: 1
graph: multiloop, loop: 2 multi: 0, mode: 1
loop not cached
multi cached: 1
graph: multiloop, loop: 2 multi: 1, mode: 0
loop not cached
multi not cached
graph: multiloop, loop: 2 multi: 1, mode: 1
loop not cached
multi not cached
graph: multi, loop: 0 multi: 0, mode: 0
loop cached: 0
multi cached: 1
graph: multi, loop: 0 multi: 0, mode: 1
loop cached: 0
multi cached: 1
graph: multi, loop: 0 multi: 1, mode: 0
loop cached: 0
multi not cached
graph: multi, loop: 0 multi: 1, mode: 1
loop cached: 0
multi not cached
graph: multi, loop: 1 multi: 0, mode: 0
loop not cached
multi cached: 1
graph: multi, loop: 1 multi: 0, mode: 1
loop not cached
multi cached: 1
graph: multi, loop: 1 multi: 1, mode: 0
loop not cached
multi not cached
graph: multi, loop: 1 multi: 1, mode: 1
loop not cached
multi not cached
graph: multi, loop: 2 multi: 0, mode: 0
loop not cached
multi cached: 1
graph: multi, loop: 2 multi: 0, mode: 1
loop not cached
multi cached: 1
graph: multi, loop: 2 multi: 1, mode: 0
loop not cached
multi not cached
graph: multi, loop: 2 multi: 1, mode: 1
loop not cached
multi not cached
graph: multi and loop, loop: 0 multi: 0, mode: 0
loop cached: 1
multi cached: 1
graph: multi and loop, loop: 0 multi: 0, mode: 1
loop cached: 1
multi cached: 1
graph: multi and loop, loop: 0 multi: 1, mode: 0
loop cached: 1
multi not cached
graph: multi and loop, loop: 0 multi: 1, mode: 1
loop cached: 1
multi not cached
graph: multi and loop, loop: 1 multi: 0, mode: 0
loop not cached
multi cached: 1
graph: multi and loop, loop: 1 multi: 0, mode: 1
loop not cached
multi cached: 1
graph: multi and loop, loop: 1 multi: 1, mode: 0
loop cached: 1
multi not cached
graph: multi and loop, loop: 1 multi: 1, mode: 1
loop cached: 1
multi not cached
graph: multi and loop, loop: 2 multi: 0, mode: 0
loop not cached
multi cached: 1
graph: multi and loop, loop: 2 multi: 0, mode: 1
loop not cached
multi cached: 1
graph: multi and loop, loop: 2 multi: 1, mode: 0
loop not cached
multi not cached
graph: multi and loop, loop: 2 multi: 1, mode: 1
loop not cached
multi not cached
