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

    ss << "g = " << g;
}

// Assembly:
subq $0x108, %rsp            # imm = 0x108
movq %rdi, 0x100(%rsp)
leaq 0xf0(%rsp), %rdi
movq %rdi, 0x68(%rsp)
callq 0x24270
movq 0x68(%rsp), %rdi
movb $0x41, 0xef(%rsp)
movb $0x42, 0xee(%rsp)
movl $0x0, 0xe8(%rsp)
leaq 0xef(%rsp), %rsi
leaq 0xee(%rsp), %rdx
leaq 0xe8(%rsp), %rcx
callq 0x242b0
movq %rax, 0x70(%rsp)
jmp 0x1c765
movq 0x70(%rsp), %rdi
movb $0x42, 0xdb(%rsp)
movb $0x43, 0xda(%rsp)
movl $0x1, 0xd4(%rsp)
leaq 0xdb(%rsp), %rsi
leaq 0xda(%rsp), %rdx
leaq 0xd4(%rsp), %rcx
callq 0x242b0
movq %rax, 0x60(%rsp)
jmp 0x1c7a9
movq 0x60(%rsp), %rdi
movb $0x43, 0xd3(%rsp)
movb $0x41, 0xd2(%rsp)
movl $0x0, 0xcc(%rsp)
leaq 0xd3(%rsp), %rsi
leaq 0xd2(%rsp), %rdx
leaq 0xcc(%rsp), %rcx
callq 0x242b0
movq %rax, 0x58(%rsp)
jmp 0x1c7ed
movq 0x58(%rsp), %rdi
movb $0x44, 0xcb(%rsp)
movb $0x42, 0xca(%rsp)
movl $0x0, 0xc4(%rsp)
leaq 0xcb(%rsp), %rsi
leaq 0xca(%rsp), %rdx
leaq 0xc4(%rsp), %rcx
callq 0x242b0
movq %rax, 0x50(%rsp)
jmp 0x1c831
movq 0x50(%rsp), %rdi
movb $0x44, 0xc3(%rsp)
movb $0x43, 0xc2(%rsp)
movl $0x0, 0xbc(%rsp)
leaq 0xc3(%rsp), %rsi
leaq 0xc2(%rsp), %rdx
leaq 0xbc(%rsp), %rcx
callq 0x242b0
movq %rax, 0x48(%rsp)
jmp 0x1c875
movq 0x48(%rsp), %rdi
movb $0x44, 0xbb(%rsp)
movb $0x45, 0xba(%rsp)
movl $0x1, 0xb4(%rsp)
leaq 0xbb(%rsp), %rsi
leaq 0xba(%rsp), %rdx
leaq 0xb4(%rsp), %rcx
callq 0x242b0
movq %rax, 0x40(%rsp)
jmp 0x1c8b9
movq 0x40(%rsp), %rdi
movb $0x45, 0xb3(%rsp)
movb $0x44, 0xb2(%rsp)
movl $0x0, 0xac(%rsp)
leaq 0xb3(%rsp), %rsi
leaq 0xb2(%rsp), %rdx
leaq 0xac(%rsp), %rcx
callq 0x242b0
movq %rax, 0x38(%rsp)
jmp 0x1c8fd
movq 0x38(%rsp), %rdi
movb $0x45, 0xab(%rsp)
movb $0x46, 0xaa(%rsp)
movl $0x0, 0xa4(%rsp)
leaq 0xab(%rsp), %rsi
leaq 0xaa(%rsp), %rdx
leaq 0xa4(%rsp), %rcx
callq 0x242b0
movq %rax, 0x30(%rsp)
jmp 0x1c941
movq 0x30(%rsp), %rdi
movb $0x46, 0xa3(%rsp)
movb $0x47, 0xa2(%rsp)
movl $0x0, 0x9c(%rsp)
leaq 0xa3(%rsp), %rsi
leaq 0xa2(%rsp), %rdx
leaq 0x9c(%rsp), %rcx
callq 0x242b0
movq %rax, 0x28(%rsp)
jmp 0x1c985
movq 0x28(%rsp), %rdi
movb $0x47, 0x9b(%rsp)
movb $0x46, 0x9a(%rsp)
movl $0x1, 0x94(%rsp)
leaq 0x9b(%rsp), %rsi
leaq 0x9a(%rsp), %rdx
leaq 0x94(%rsp), %rcx
callq 0x242b0
movq %rax, 0x20(%rsp)
jmp 0x1c9c9
movq 0x20(%rsp), %rdi
movb $0x48, 0x93(%rsp)
movb $0x47, 0x92(%rsp)
movl $0x0, 0x8c(%rsp)
leaq 0x93(%rsp), %rsi
leaq 0x92(%rsp), %rdx
leaq 0x8c(%rsp), %rcx
callq 0x242b0
movq %rax, 0x18(%rsp)
jmp 0x1ca0d
movq 0x18(%rsp), %rdi
movb $0x48, 0x8b(%rsp)
movb $0x45, 0x8a(%rsp)
movl $0x0, 0x84(%rsp)
leaq 0x8b(%rsp), %rsi
leaq 0x8a(%rsp), %rdx
leaq 0x84(%rsp), %rcx
callq 0x242b0
movq %rax, 0x10(%rsp)
jmp 0x1ca51
movq 0x10(%rsp), %rdi
movb $0x48, 0x83(%rsp)
movb $0x48, 0x82(%rsp)
movl $0x1, 0x7c(%rsp)
leaq 0x83(%rsp), %rsi
leaq 0x82(%rsp), %rdx
leaq 0x7c(%rsp), %rcx
callq 0x242b0
jmp 0x1ca8a
movq 0x100(%rsp), %rdi
leaq 0x218e8(%rip), %rsi     # 0x3e381
callq 0x2180
movq %rax, 0x8(%rsp)
jmp 0x1caa5
movq 0x8(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x24300
jmp 0x1cab9
leaq 0xf0(%rsp), %rdi
callq 0x24610
addq $0x108, %rsp            # imm = 0x108
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xe0(%rsp)
movl %eax, 0xdc(%rsp)
leaq 0xf0(%rsp), %rdi
callq 0x24610
movq 0xe0(%rsp), %rdi
callq 0x2290
nopl (%rax)