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

    ss << "graph h   : " << h << std::endl;
    ss << "deep-first    : " << dfcyclesschedule(h) << ", cost: " << schedulingcost(h, dfcyclesschedule(h))
       << std::endl;
    ss << "breadth-first : " << bfcyclesschedule(h) << ", cost: " << schedulingcost(h, bfcyclesschedule(h))
       << std::endl;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0xb8, %rsp
movq %rdi, %rbx
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0xe2d6
leaq 0x1(%rsp), %rsi
movb $0x41, (%rsi)
leaq 0x7(%rsp), %rdx
movb $0x42, (%rdx)
leaq 0x70(%rsp), %rcx
andl $0x0, (%rcx)
movq (%r14), %rdi
callq 0x102c4
leaq 0x6(%rsp), %rsi
movb $0x42, (%rsi)
leaq 0x5(%rsp), %rdx
movb $0x43, (%rdx)
leaq 0x28(%rsp), %rcx
andl $0x0, (%rcx)
movq 0x8(%rsp), %rdi
callq 0x102c4
leaq 0x4(%rsp), %rsi
movb $0x43, (%rsi)
leaq 0x3(%rsp), %rdx
movb $0x44, (%rdx)
leaq 0x24(%rsp), %rcx
andl $0x0, (%rcx)
movq 0x8(%rsp), %rdi
callq 0x102c4
leaq 0x2(%rsp), %rsi
movb $0x42, (%rsi)
leaq 0x1b(%rsp), %rdx
movb $0x47, (%rdx)
leaq 0x20(%rsp), %rcx
movl $0x1, (%rcx)
movq 0x8(%rsp), %rdi
callq 0x102c4
leaq 0x1a(%rsp), %rsi
movb $0x43, (%rsi)
leaq 0x19(%rsp), %rdx
movb $0x42, (%rdx)
leaq 0x1c(%rsp), %rcx
movl $0x1, (%rcx)
movq 0x8(%rsp), %rdi
callq 0x102c4
leaq 0x24(%rsp), %rsi
movb $0x44, (%rsi)
leaq 0x20(%rsp), %rdx
movb $0x55, (%rdx)
leaq 0x70(%rsp), %rcx
andl $0x0, (%rcx)
movq 0x8(%rsp), %rdi
callq 0x102c4
leaq 0x1c(%rsp), %rsi
movb $0x55, (%rsi)
leaq 0x1(%rsp), %rdx
movb $0x44, (%rdx)
leaq 0x28(%rsp), %rcx
movl $0x1, (%rcx)
movq 0x8(%rsp), %rdi
callq 0x102c4
leaq 0x1c(%rsp), %rsi
movb $0x45, (%rsi)
leaq 0x1(%rsp), %rdx
movb $0x46, (%rdx)
leaq 0x70(%rsp), %rcx
andl $0x0, (%rcx)
movq 0x8(%rsp), %rdi
callq 0x102c4
leaq 0x7(%rsp), %rsi
movb $0x46, (%rsi)
leaq 0x6(%rsp), %rdx
movb $0x47, (%rdx)
leaq 0x28(%rsp), %rcx
andl $0x0, (%rcx)
movq 0x8(%rsp), %rdi
callq 0x102c4
leaq 0x5(%rsp), %rsi
movb $0x47, (%rsi)
leaq 0x4(%rsp), %rdx
movb $0x48, (%rdx)
leaq 0x24(%rsp), %rcx
andl $0x0, (%rcx)
movq 0x8(%rsp), %rdi
callq 0x102c4
leaq 0x3(%rsp), %rsi
movb $0x47, (%rsi)
leaq 0x2(%rsp), %rdx
movb $0x46, (%rdx)
leaq 0x20(%rsp), %rcx
movl $0x2, (%rcx)
movq 0x8(%rsp), %rdi
callq 0x102c4
leaq 0x8c48(%rip), %rsi      # 0x16b9f
movq %rbx, %rdi
callq 0x2140
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0xe313
movq %rax, %rdi
callq 0x20b0
leaq 0x8e28(%rip), %rsi      # 0x16da3
movq %rbx, %rdi
callq 0x2140
movq %rax, %r14
leaq 0x70(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xfe9e
leaq 0x70(%rsp), %rsi
movq %r14, %rdi
callq 0xfb3b
leaq 0x8c1d(%rip), %rsi      # 0x16bc6
movq %rax, %rdi
callq 0x2140
movq %rax, %r14
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xfe9e
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xfd28
movq %r14, %rdi
movl %eax, %esi
callq 0x2210
movq %rax, %rdi
callq 0x20b0
leaq 0x28(%rsp), %rdi
callq 0xfdcc
leaq 0x70(%rsp), %rdi
callq 0xfdcc
leaq 0x8db5(%rip), %rsi      # 0x16db4
movq %rbx, %rdi
callq 0x2140
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xffbb
leaq 0x70(%rsp), %rsi
movq %rbx, %rdi
callq 0xfb3b
leaq 0x8b99(%rip), %rsi      # 0x16bc6
movq %rax, %rdi
callq 0x2140
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xffbb
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xfd28
movq %rbx, %rdi
movl %eax, %esi
callq 0x2210
movq %rax, %rdi
callq 0x20b0
leaq 0x28(%rsp), %rdi
callq 0xfdcc
leaq 0x70(%rsp), %rdi
callq 0xfdcc
leaq 0x10(%rsp), %rdi
callq 0x2efc
addq $0xb8, %rsp
popq %rbx
popq %r14
retq
jmp 0xe0b1
jmp 0xe0d1
jmp 0xe0b1
jmp 0xe0d1
jmp 0xe0d1
jmp 0xe0d1
jmp 0xe0d1
jmp 0xe0d1
jmp 0xe0d1
jmp 0xe0d1
jmp 0xe0d1
jmp 0xe0d1
jmp 0xe0d1
jmp 0xe0d1
jmp 0xe0d1
jmp 0xe0b1
movq %rax, %rbx
jmp 0xe0c5
jmp 0xe0b8
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xfdcc
leaq 0x70(%rsp), %rdi
callq 0xfdcc
jmp 0xe0d4
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2efc
movq %rbx, %rdi
callq 0x2220