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 ) } ============================================================