// File: /workspace/github_cpp_makefile_star2_O1/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 0x14de0
leaq 0x2f(%rsp), %rsi
movb $0x41, (%rsi)
leaq 0x2e(%rsp), %rdx
movb $0x42, (%rdx)
leaq 0x60(%rsp), %rcx
movl $0x0, (%rcx)
movq (%r14), %rdi
callq 0x176e8
leaq 0x2d(%rsp), %rsi
movb $0x42, (%rsi)
leaq 0x2c(%rsp), %rdx
movb $0x43, (%rdx)
leaq 0x30(%rsp), %rcx
movl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x176e8
leaq 0x2b(%rsp), %rsi
movb $0x43, (%rsi)
leaq 0x2a(%rsp), %rdx
movb $0x41, (%rdx)
leaq 0x5c(%rsp), %rcx
movl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x176e8
leaq 0x29(%rsp), %rsi
movb $0x44, (%rsi)
leaq 0x28(%rsp), %rdx
movb $0x42, (%rdx)
leaq 0x58(%rsp), %rcx
movl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x176e8
leaq 0x27(%rsp), %rsi
movb $0x44, (%rsi)
leaq 0x26(%rsp), %rdx
movb $0x43, (%rdx)
leaq 0x54(%rsp), %rcx
movl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x176e8
leaq 0x25(%rsp), %rsi
movb $0x44, (%rsi)
leaq 0x24(%rsp), %rdx
movb $0x45, (%rdx)
leaq 0x50(%rsp), %rcx
movl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x176e8
leaq 0x23(%rsp), %rsi
movb $0x45, (%rsi)
leaq 0x22(%rsp), %rdx
movb $0x44, (%rdx)
leaq 0x4c(%rsp), %rcx
movl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x176e8
leaq 0x21(%rsp), %rsi
movb $0x45, (%rsi)
leaq 0x20(%rsp), %rdx
movb $0x46, (%rdx)
leaq 0x48(%rsp), %rcx
movl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x176e8
leaq 0x1f(%rsp), %rsi
movb $0x46, (%rsi)
leaq 0x1e(%rsp), %rdx
movb $0x47, (%rdx)
leaq 0x44(%rsp), %rcx
movl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x176e8
leaq 0x1d(%rsp), %rsi
movb $0x47, (%rsi)
leaq 0x1c(%rsp), %rdx
movb $0x46, (%rdx)
leaq 0x40(%rsp), %rcx
movl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x176e8
leaq 0x1b(%rsp), %rsi
movb $0x48, (%rsi)
leaq 0x1a(%rsp), %rdx
movb $0x47, (%rdx)
leaq 0x3c(%rsp), %rcx
movl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x176e8
leaq 0x19(%rsp), %rsi
movb $0x48, (%rsi)
leaq 0x18(%rsp), %rdx
movb $0x45, (%rdx)
leaq 0x38(%rsp), %rcx
movl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x176e8
movb $0x48, %al
leaq 0x17(%rsp), %rsi
movb %al, (%rsi)
leaq 0x16(%rsp), %rdx
movb %al, (%rdx)
leaq 0x34(%rsp), %rcx
movl $0x0, (%rcx)
movq (%rsp), %rdi
callq 0x176e8
leaq 0xd47e(%rip), %rsi      # 0x1c4a9
movl $0x18, %edx
movq %rbx, %rdi
callq 0x21a0
leaq 0x60(%rsp), %rdi
movq %rsp, %rsi
callq 0x15032
leaq 0xf8(%rsp), %rax
movq 0x10(%rax), %r14
cmpq %rax, %r14
je 0xf0ef
leaq 0x30(%rsp), %r13
leaq 0xea2d(%rip), %rbp      # 0x1da93
movl $0x7, %edx
movq %rbx, %rdi
leaq 0xd44d(%rip), %rsi      # 0x1c4c2
callq 0x21a0
movq 0x38(%r14), %r15
leaq 0x28(%r14), %r12
cmpq %r12, %r15
je 0xf0bf
movb 0x20(%r15), %al
movb %al, 0x30(%rsp)
movl $0x1, %edx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x21a0
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x21a0
movq %r15, %rdi
callq 0x21b0
movq %rax, %r15
cmpq %r12, %rax
jne 0xf087
movl $0x2, %edx
movq %rbx, %rdi
leaq 0xd446(%rip), %rsi      # 0x1c514
callq 0x21a0
movq %r14, %rdi
callq 0x21b0
movq %rax, %r14
leaq 0xf8(%rsp), %rax
cmpq %rax, %r14
jne 0xf066
leaq 0xf0(%rsp), %rdi
callq 0x5be8
leaq 0xc0(%rsp), %rdi
callq 0x17556
leaq 0x70(%rsp), %rdi
callq 0x5c86
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0xf122
callq 0x35d6
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xf150
jmp 0xf150
jmp 0xf150
jmp 0xf150
jmp 0xf150
jmp 0xf150
jmp 0xf150
jmp 0xf150
jmp 0xf150
jmp 0xf150
jmp 0xf150
jmp 0xf150
jmp 0xf150
jmp 0xf150
movq %rax, %rbx
jmp 0xf164
jmp 0xf157
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x15162
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0xf173
callq 0x35d6
movq %rbx, %rdi
callq 0x2250