// File: /workspace/github_cpp_makefile_star2_O2/grame-cncm[P]digraph/tests.cpp
// Function: test1(std::ostream&)
void test1(std::ostream& ss)
{
    digraph<char, int> g;
    g.add('A', 'B', 0)
        .add('B', 'C', 0)
        .add('C', 'A', 0)
        .add('D', 'B', 0)
        .add('D', 'C', 0)
        .add('D', 'E', 0)
        .add('E', 'D', 0)
        .add('E', 'F', 0)
        .add('F', 'G', 0)
        .add('G', 'F', 0)
        .add('H', 'G', 0)
        .add('H', 'E', 0)
        .add('H', 'H', 0);

    ss << "Tarjan partition of g = ";
    Tarjan<char, int> tarj(g);
    for (const auto& cycle : tarj.partition()) {
        ss << "group{ ";
        for (const auto& n : cycle) {
            ss << n << " ";
        }
        ss << "} ";
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
movq %rdi, %rbx
movq %rsp, %r14
movq %r14, %rdi
callq 0xe2d6
leaq 0x2f(%rsp), %rsi
movb $0x41, (%rsi)
leaq 0x2e(%rsp), %rdx
movb $0x42, (%rdx)
leaq 0x60(%rsp), %rcx
andl $0x0, (%rcx)
movq (%r14), %rdi
callq 0x102c4
leaq 0x2d(%rsp), %rsi
movb $0x42, (%rsi)
leaq 0x2c(%rsp), %rdx
movb $0x43, (%rdx)
leaq 0x5c(%rsp), %rcx
andl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x102c4
leaq 0x2b(%rsp), %rsi
movb $0x43, (%rsi)
leaq 0x2a(%rsp), %rdx
movb $0x41, (%rdx)
leaq 0x58(%rsp), %rcx
andl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x102c4
leaq 0x29(%rsp), %rsi
movb $0x44, (%rsi)
leaq 0x28(%rsp), %rdx
movb $0x42, (%rdx)
leaq 0x54(%rsp), %rcx
andl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x102c4
leaq 0x27(%rsp), %rsi
movb $0x44, (%rsi)
leaq 0x26(%rsp), %rdx
movb $0x43, (%rdx)
leaq 0x50(%rsp), %rcx
andl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x102c4
leaq 0x25(%rsp), %rsi
movb $0x44, (%rsi)
leaq 0x24(%rsp), %rdx
movb $0x45, (%rdx)
leaq 0x4c(%rsp), %rcx
andl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x102c4
leaq 0x23(%rsp), %rsi
movb $0x45, (%rsi)
leaq 0x22(%rsp), %rdx
movb $0x44, (%rdx)
leaq 0x48(%rsp), %rcx
andl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x102c4
leaq 0x21(%rsp), %rsi
movb $0x45, (%rsi)
leaq 0x20(%rsp), %rdx
movb $0x46, (%rdx)
leaq 0x44(%rsp), %rcx
andl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x102c4
leaq 0x1f(%rsp), %rsi
movb $0x46, (%rsi)
leaq 0x1e(%rsp), %rdx
movb $0x47, (%rdx)
leaq 0x40(%rsp), %rcx
andl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x102c4
leaq 0x1d(%rsp), %rsi
movb $0x47, (%rsi)
leaq 0x1c(%rsp), %rdx
movb $0x46, (%rdx)
leaq 0x3c(%rsp), %rcx
andl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x102c4
leaq 0x1b(%rsp), %rsi
movb $0x48, (%rsi)
leaq 0x1a(%rsp), %rdx
movb $0x47, (%rdx)
leaq 0x38(%rsp), %rcx
andl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x102c4
leaq 0x19(%rsp), %rsi
movb $0x48, (%rsi)
leaq 0x18(%rsp), %rdx
movb $0x45, (%rdx)
leaq 0x34(%rsp), %rcx
andl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x102c4
movb $0x48, %al
leaq 0x17(%rsp), %rsi
movb %al, (%rsi)
leaq 0x16(%rsp), %rdx
movb %al, (%rdx)
leaq 0x30(%rsp), %rcx
andl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x102c4
leaq 0xaa38(%rip), %rsi      # 0x15463
movq %rbx, %rdi
callq 0x2140
leaq 0x60(%rsp), %rdi
movq %rsp, %rsi
callq 0xe482
leaq 0xf8(%rsp), %r14
movq 0x10(%r14), %r12
leaq 0xbffc(%rip), %r13      # 0x16a4f
cmpq %r14, %r12
je 0xaab6
movq %rbx, %rdi
leaq 0xaa1a(%rip), %rsi      # 0x1547c
callq 0x2140
movq 0x38(%r12), %rbp
leaq 0x28(%r12), %r15
cmpq %r15, %rbp
je 0xaa9a
movsbl 0x20(%rbp), %esi
movq %rbx, %rdi
callq 0x2190
movq %rax, %rdi
movq %r13, %rsi
callq 0x2140
movq %rbp, %rdi
callq 0x2170
movq %rax, %rbp
jmp 0xaa71
movq %rbx, %rdi
leaq 0xaa2a(%rip), %rsi      # 0x154ce
callq 0x2140
movq %r12, %rdi
callq 0x2170
movq %rax, %r12
jmp 0xaa53
leaq 0x60(%rsp), %rdi
callq 0xe57a
leaq 0x8(%rsp), %rdi
callq 0x2efc
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xaaf8
jmp 0xaaf8
jmp 0xaaf8
jmp 0xaaf8
jmp 0xaaf8
jmp 0xaaf8
jmp 0xaaf8
jmp 0xaaf8
jmp 0xaaf8
jmp 0xaaf8
jmp 0xaaf8
jmp 0xaaf8
jmp 0xaaf8
jmp 0xaaf8
movq %rax, %rbx
jmp 0xab0c
jmp 0xaaff
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xe57a
leaq 0x8(%rsp), %rdi
callq 0x2efc
movq %rbx, %rdi
callq 0x2220