// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/rdj-strgraph.c
// Function: gt_strgraph_redtrans_unit_test
static int gt_strgraph_redtrans_unit_test(GtError *err)
{
  int had_err = 0;
  GtStrgraph *strgraph;
  GtUword nofreads = 5UL;
  GT_ENSURE_OUTPUT_DECLARE(2000);

  gt_error_check(err);

  /*
  test case:
                          --------2-------------
                   ----------0-----------
             --------RC(1)---------
          ---------3------------
       -------RC(4)----------
  */

  strgraph = gt_strgraph_new(nofreads);
  gt_spmproc_strgraph_count(4UL, 3UL, 19UL, false, true, strgraph);
  gt_spmproc_strgraph_count(1UL, 4UL, 16UL, true, true, strgraph);
  gt_spmproc_strgraph_count(4UL, 0UL, 10UL, false, true, strgraph);
  gt_spmproc_strgraph_count(4UL, 2UL, 3UL, false, true, strgraph);
  gt_spmproc_strgraph_count(3UL, 1UL, 19UL, true, false, strgraph);
  gt_spmproc_strgraph_count(3UL, 0UL, 13UL, true, true, strgraph);
  gt_spmproc_strgraph_count(3UL, 2UL, 6UL, true, true, strgraph);
  gt_spmproc_strgraph_count(1UL, 0UL, 16UL, false, true, strgraph);
  gt_spmproc_strgraph_count(1UL, 2UL, 9UL, false, true, strgraph);
  gt_spmproc_strgraph_count(0UL, 2UL, 15UL, true, true, strgraph);
  gt_strgraph_allocate_graph(strgraph, 22UL, NULL);
  gt_spmproc_strgraph_add(4UL, 3UL, 19UL, false, true, strgraph);
  gt_spmproc_strgraph_add(1UL, 4UL, 16UL, true, true, strgraph);
  gt_spmproc_strgraph_add(4UL, 0UL, 10UL, false, true, strgraph);
  gt_spmproc_strgraph_add(4UL, 2UL, 3UL, false, true, strgraph);
  gt_spmproc_strgraph_add(3UL, 1UL, 19UL, true, false, strgraph);
  gt_spmproc_strgraph_add(3UL, 0UL, 13UL, true, true, strgraph);
  gt_spmproc_strgraph_add(3UL, 2UL, 6UL, true, true, strgraph);
  gt_spmproc_strgraph_add(1UL, 0UL, 16UL, false, true, strgraph);
  gt_spmproc_strgraph_add(1UL, 2UL, 9UL, false, true, strgraph);
  gt_spmproc_strgraph_add(0UL, 2UL, 15UL, true, true, strgraph);
  GT_ENSURE_OUTPUT(gt_strgraph_dot_show(strgraph, outfp, false),
      "digraph StringGraph {\n"
      " \"0B\" -> \"4E\" [label=12];\n"
      " \"0B\" -> \"3B\" [label=9];\n"
      " \"0B\" -> \"1E\" [label=6];\n"
      " \"0E\" -> \"2E\" [label=7];\n"
      " \"1B\" -> \"0E\" [label=6];\n"
      " \"1B\" -> \"2E\" [label=13];\n"
      " \"1E\" -> \"4E\" [label=6];\n"
      " \"1E\" -> \"3B\" [label=3];\n"
      " \"2B\" -> \"4E\" [label=19];\n"
      " \"2B\" -> \"3B\" [label=16];\n"
      " \"2B\" -> \"1E\" [label=13];\n"
      " \"2B\" -> \"0B\" [label=7];\n"
      " \"3B\" -> \"4E\" [label=3];\n"
      " \"3E\" -> \"1B\" [label=3];\n"
      " \"3E\" -> \"0E\" [label=9];\n"
      " \"3E\" -> \"2E\" [label=16];\n"
      " \"4B\" -> \"3E\" [label=3];\n"
      " \"4B\" -> \"1B\" [label=6];\n"
      " \"4B\" -> \"0E\" [label=12];\n"
      " \"4B\" -> \"2E\" [label=19];\n"
      "}\n"
    );
  gt_strgraph_sort_edges_by_len(strgraph, false);
  GT_ENSURE_OUTPUT(gt_strgraph_dot_show(strgraph, outfp, false),
      "digraph StringGraph {\n"
      " \"0B\" -> \"1E\" [label=6];\n"
      " \"0B\" -> \"3B\" [label=9];\n"
      " \"0B\" -> \"4E\" [label=12];\n"
      " \"0E\" -> \"2E\" [label=7];\n"
      " \"1B\" -> \"0E\" [label=6];\n"
      " \"1B\" -> \"2E\" [label=13];\n"
      " \"1E\" -> \"3B\" [label=3];\n"
      " \"1E\" -> \"4E\" [label=6];\n"
      " \"2B\" -> \"0B\" [label=7];\n"
      " \"2B\" -> \"1E\" [label=13];\n"
      " \"2B\" -> \"3B\" [label=16];\n"
      " \"2B\" -> \"4E\" [label=19];\n"
      " \"3B\" -> \"4E\" [label=3];\n"
      " \"3E\" -> \"1B\" [label=3];\n"
      " \"3E\" -> \"0E\" [label=9];\n"
      " \"3E\" -> \"2E\" [label=16];\n"
      " \"4B\" -> \"3E\" [label=3];\n"
      " \"4B\" -> \"1B\" [label=6];\n"
      " \"4B\" -> \"0E\" [label=12];\n"
      " \"4B\" -> \"2E\" [label=19];\n"
      "}\n"
    );
  (void)gt_strgraph_redtrans(strgraph, false);
  GT_ENSURE_OUTPUT(gt_strgraph_dot_show(strgraph, outfp, false),
      "digraph StringGraph {\n"
      " \"0B\" -> \"1E\" [label=6];\n"
      " \"0E\" -> \"2E\" [label=7];\n"
      " \"1B\" -> \"0E\" [label=6];\n"
      " \"1E\" -> \"3B\" [label=3];\n"
      " \"2B\" -> \"0B\" [label=7];\n"
      " \"3B\" -> \"4E\" [label=3];\n"
      " \"3E\" -> \"1B\" [label=3];\n"
      " \"4B\" -> \"3E\" [label=3];\n"
      "}\n"
    );

  gt_strgraph_delete(strgraph);
  return had_err;
}

// Assembly:
subq $0x818, %rsp            # imm = 0x818
movq %rdi, 0x810(%rsp)
movl $0x0, 0x80c(%rsp)
movq $0x5, 0x7f8(%rsp)
cmpq $0x0, 0x810(%rsp)
je 0x29d1ec
movq 0x810(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x29d1b4
jmp 0x29d1ec
movq 0x39ede5(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x278e4e(%rip), %rsi    # 0x516013
leaq 0x278ff3(%rip), %rdx    # 0x5161bf
leaq 0x2e6925(%rip), %rcx    # 0x583af8
leaq 0x2e4e66(%rip), %r8     # 0x582040
movl $0xb65, %r9d            # imm = 0xB65
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x29d1ee
movq 0x7f8(%rsp), %rdi
callq 0x28fae0
movq %rax, 0x800(%rsp)
movq 0x800(%rsp), %r9
movl $0x4, %edi
movl $0x3, %esi
movl $0x13, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x291410
movq 0x800(%rsp), %r9
movl $0x1, %edi
movl $0x4, %esi
movl $0x10, %edx
movl $0x1, %r8d
movl %r8d, %ecx
callq 0x291410
movq 0x800(%rsp), %r9
movl $0x4, %edi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x291410
movq 0x800(%rsp), %r9
movl $0x4, %edi
movl $0x2, %esi
movl $0x3, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x291410
movq 0x800(%rsp), %r9
movl $0x3, %edi
movl $0x1, %esi
movl $0x13, %edx
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x291410
movq 0x800(%rsp), %r9
movl $0x3, %edi
xorl %eax, %eax
movl %eax, %esi
movl $0xd, %edx
movl $0x1, %r8d
movl %r8d, %ecx
callq 0x291410
movq 0x800(%rsp), %r9
movl $0x3, %edi
movl $0x2, %esi
movl $0x6, %edx
movl $0x1, %r8d
movl %r8d, %ecx
callq 0x291410
movq 0x800(%rsp), %r9
movl $0x1, %edi
xorl %eax, %eax
movl %eax, %esi
movl $0x10, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x291410
movq 0x800(%rsp), %r9
movl $0x1, %edi
movl $0x2, %esi
movl $0x9, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x291410
movq 0x800(%rsp), %r9
xorl %eax, %eax
movl %eax, %edi
movl $0x2, %esi
movl $0xf, %edx
movl $0x1, %r8d
movl %r8d, %ecx
callq 0x291410
movq 0x800(%rsp), %rdi
movl $0x16, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0x28fbf0
movq 0x800(%rsp), %r9
movl $0x4, %edi
movl $0x3, %esi
movl $0x13, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x292260
movq 0x800(%rsp), %r9
movl $0x1, %edi
movl $0x4, %esi
movl $0x10, %edx
movl $0x1, %r8d
movl %r8d, %ecx
callq 0x292260
movq 0x800(%rsp), %r9
movl $0x4, %edi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x292260
movq 0x800(%rsp), %r9
movl $0x4, %edi
movl $0x2, %esi
movl $0x3, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x292260
movq 0x800(%rsp), %r9
movl $0x3, %edi
movl $0x1, %esi
movl $0x13, %edx
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0x292260
movq 0x800(%rsp), %r9
movl $0x3, %edi
xorl %eax, %eax
movl %eax, %esi
movl $0xd, %edx
movl $0x1, %r8d
movl %r8d, %ecx
callq 0x292260
movq 0x800(%rsp), %r9
movl $0x3, %edi
movl $0x2, %esi
movl $0x6, %edx
movl $0x1, %r8d
movl %r8d, %ecx
callq 0x292260
movq 0x800(%rsp), %r9
movl $0x1, %edi
xorl %eax, %eax
movl %eax, %esi
movl $0x10, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x292260
movq 0x800(%rsp), %r9
movl $0x1, %edi
movl $0x2, %esi
movl $0x9, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x292260
movq 0x800(%rsp), %r9
xorl %eax, %eax
movl %eax, %edi
movl $0x2, %esi
movl $0xf, %edx
movl $0x1, %r8d
movl %r8d, %ecx
callq 0x292260
callq 0x11d4a0
movq %rax, 0x7f0(%rsp)
movq 0x7f0(%rsp), %rdi
xorl %esi, %esi
leaq 0x2e4b39(%rip), %rdx    # 0x582040
movl $0xb9d, %ecx            # imm = 0xB9D
callq 0xd9e50
movq %rax, 0x7e0(%rsp)
movq 0x7e0(%rsp), %rdi
callq 0xdda20
movq %rax, 0x7d8(%rsp)
movq 0x800(%rsp), %rdi
movq 0x7d8(%rsp), %rsi
xorl %edx, %edx
callq 0x2981b0
movq 0x7e0(%rsp), %rdi
callq 0x19840
movq 0x7d8(%rsp), %rdi
callq 0xde330
movq 0x7d8(%rsp), %rdi
movq %rsp, %rsi
movl $0x214, %edx            # imm = 0x214
callq 0xde110
cltq
movq %rax, 0x7d0(%rsp)
cmpl $0x0, 0x80c(%rsp)
jne 0x29d5d4
cmpq $0x214, 0x7d0(%rsp) # imm = 0x214
je 0x29d5d2
movq 0x810(%rsp), %rdi
leaq 0x292055(%rip), %rsi    # 0x52f5fa
leaq 0x2e656b(%rip), %rdx    # 0x583b17
leaq 0x2e6545(%rip), %rcx    # 0x583af8
leaq 0x2e4a86(%rip), %r8     # 0x582040
movl $0xb9d, %r9d            # imm = 0xB9D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x80c(%rsp) # imm = 0xFFFFFFFF
jmp 0x29d5d4
jmp 0x29d5d6
jmp 0x29d5d8
cmpl $0x0, 0x80c(%rsp)
jne 0x29d63c
movq %rsp, %rsi
movq 0x7d0(%rsp), %rdx
leaq 0x2e67f2(%rip), %rdi    # 0x583de6
callq 0x192c0
cmpl $0x0, %eax
je 0x29d63a
movq 0x810(%rsp), %rdi
leaq 0x291fed(%rip), %rsi    # 0x52f5fa
leaq 0x2e69e7(%rip), %rdx    # 0x583ffb
leaq 0x2e64dd(%rip), %rcx    # 0x583af8
leaq 0x2e4a1e(%rip), %r8     # 0x582040
movl $0xb9d, %r9d            # imm = 0xB9D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x80c(%rsp) # imm = 0xFFFFFFFF
jmp 0x29d63c
jmp 0x29d63e
cmpl $0x0, 0x80c(%rsp)
je 0x29d687
movq 0x39e951(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2e4123(%rip), %rsi    # 0x58177c
leaq 0x2e6786(%rip), %rdx    # 0x583de6
movb $0x0, %al
callq 0x199f0
movq 0x39e932(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
movq %rsp, %rcx
leaq 0x2e411e(%rip), %rsi    # 0x581799
movl $0x214, %edx            # imm = 0x214
movb $0x0, %al
callq 0x199f0
movq 0x7d8(%rsp), %rdi
callq 0xde430
movq 0x7f0(%rsp), %rdi
callq 0x11dee0
movq %rax, 0x7e8(%rsp)
movq 0x7e8(%rsp), %rdi
callq 0x126e90
movq 0x7f0(%rsp), %rdi
callq 0x11f560
movq 0x800(%rsp), %rdi
xorl %esi, %esi
callq 0x292b40
callq 0x11d4a0
movq %rax, 0x7f0(%rsp)
movq 0x7f0(%rsp), %rdi
xorl %esi, %esi
leaq 0x2e4950(%rip), %rdx    # 0x582040
movl $0xbb6, %ecx            # imm = 0xBB6
callq 0xd9e50
movq %rax, 0x7e0(%rsp)
movq 0x7e0(%rsp), %rdi
callq 0xdda20
movq %rax, 0x7d8(%rsp)
movq 0x800(%rsp), %rdi
movq 0x7d8(%rsp), %rsi
xorl %edx, %edx
callq 0x2981b0
movq 0x7e0(%rsp), %rdi
callq 0x19840
movq 0x7d8(%rsp), %rdi
callq 0xde330
movq 0x7d8(%rsp), %rdi
movq %rsp, %rsi
movl $0x214, %edx            # imm = 0x214
callq 0xde110
cltq
movq %rax, 0x7d0(%rsp)
cmpl $0x0, 0x80c(%rsp)
jne 0x29d7bd
cmpq $0x214, 0x7d0(%rsp) # imm = 0x214
je 0x29d7bb
movq 0x810(%rsp), %rdi
leaq 0x291e6c(%rip), %rsi    # 0x52f5fa
leaq 0x2e6b42(%rip), %rdx    # 0x5842d7
leaq 0x2e635c(%rip), %rcx    # 0x583af8
leaq 0x2e489d(%rip), %r8     # 0x582040
movl $0xbb6, %r9d            # imm = 0xBB6
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x80c(%rsp) # imm = 0xFFFFFFFF
jmp 0x29d7bd
jmp 0x29d7bf
jmp 0x29d7c1
cmpl $0x0, 0x80c(%rsp)
jne 0x29d825
movq %rsp, %rsi
movq 0x7d0(%rsp), %rdx
leaq 0x2e6dc9(%rip), %rdi    # 0x5845a6
callq 0x192c0
cmpl $0x0, %eax
je 0x29d823
movq 0x810(%rsp), %rdi
leaq 0x291e04(%rip), %rsi    # 0x52f5fa
leaq 0x2e6fbe(%rip), %rdx    # 0x5847bb
leaq 0x2e62f4(%rip), %rcx    # 0x583af8
leaq 0x2e4835(%rip), %r8     # 0x582040
movl $0xbb6, %r9d            # imm = 0xBB6
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x80c(%rsp) # imm = 0xFFFFFFFF
jmp 0x29d825
jmp 0x29d827
cmpl $0x0, 0x80c(%rsp)
je 0x29d870
movq 0x39e768(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2e3f3a(%rip), %rsi    # 0x58177c
leaq 0x2e6d5d(%rip), %rdx    # 0x5845a6
movb $0x0, %al
callq 0x199f0
movq 0x39e749(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
movq %rsp, %rcx
leaq 0x2e3f35(%rip), %rsi    # 0x581799
movl $0x214, %edx            # imm = 0x214
movb $0x0, %al
callq 0x199f0
movq 0x7d8(%rsp), %rdi
callq 0xde430
movq 0x7f0(%rsp), %rdi
callq 0x11dee0
movq %rax, 0x7e8(%rsp)
movq 0x7e8(%rsp), %rdi
callq 0x126e90
movq 0x7f0(%rsp), %rdi
callq 0x11f560
movq 0x800(%rsp), %rdi
xorl %esi, %esi
callq 0x293f20
callq 0x11d4a0
movq %rax, 0x7f0(%rsp)
movq 0x7f0(%rsp), %rdi
xorl %esi, %esi
leaq 0x2e4767(%rip), %rdx    # 0x582040
movl $0xbc3, %ecx            # imm = 0xBC3
callq 0xd9e50
movq %rax, 0x7e0(%rsp)
movq 0x7e0(%rsp), %rdi
callq 0xdda20
movq %rax, 0x7d8(%rsp)
movq 0x800(%rsp), %rdi
movq 0x7d8(%rsp), %rsi
xorl %edx, %edx
callq 0x2981b0
movq 0x7e0(%rsp), %rdi
callq 0x19840
movq 0x7d8(%rsp), %rdi
callq 0xde330
movq 0x7d8(%rsp), %rdi
movq %rsp, %rsi
movl $0xe0, %edx
callq 0xde110
cltq
movq %rax, 0x7d0(%rsp)
cmpl $0x0, 0x80c(%rsp)
jne 0x29d9a6
cmpq $0xe0, 0x7d0(%rsp)
je 0x29d9a4
movq 0x810(%rsp), %rdi
leaq 0x291c83(%rip), %rsi    # 0x52f5fa
leaq 0x2e7119(%rip), %rdx    # 0x584a97
leaq 0x2e6173(%rip), %rcx    # 0x583af8
leaq 0x2e46b4(%rip), %r8     # 0x582040
movl $0xbc3, %r9d            # imm = 0xBC3
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x80c(%rsp) # imm = 0xFFFFFFFF
jmp 0x29d9a6
jmp 0x29d9a8
jmp 0x29d9aa
cmpl $0x0, 0x80c(%rsp)
jne 0x29da0e
movq %rsp, %rsi
movq 0x7d0(%rsp), %rdx
leaq 0x2e720c(%rip), %rdi    # 0x584bd2
callq 0x192c0
cmpl $0x0, %eax
je 0x29da0c
movq 0x810(%rsp), %rdi
leaq 0x291c1b(%rip), %rsi    # 0x52f5fa
leaq 0x2e72cd(%rip), %rdx    # 0x584cb3
leaq 0x2e610b(%rip), %rcx    # 0x583af8
leaq 0x2e464c(%rip), %r8     # 0x582040
movl $0xbc3, %r9d            # imm = 0xBC3
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x80c(%rsp) # imm = 0xFFFFFFFF
jmp 0x29da0e
jmp 0x29da10
cmpl $0x0, 0x80c(%rsp)
je 0x29da59
movq 0x39e57f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2e3d51(%rip), %rsi    # 0x58177c
leaq 0x2e71a0(%rip), %rdx    # 0x584bd2
movb $0x0, %al
callq 0x199f0
movq 0x39e560(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
movq %rsp, %rcx
leaq 0x2e3d4c(%rip), %rsi    # 0x581799
movl $0xe0, %edx
movb $0x0, %al
callq 0x199f0
movq 0x7d8(%rsp), %rdi
callq 0xde430
movq 0x7f0(%rsp), %rdi
callq 0x11dee0
movq %rax, 0x7e8(%rsp)
movq 0x7e8(%rsp), %rdi
callq 0x126e90
movq 0x7f0(%rsp), %rdi
callq 0x11f560
movq 0x800(%rsp), %rdi
callq 0x290110
movl 0x80c(%rsp), %eax
addq $0x818, %rsp            # imm = 0x818
retq
nopw %cs:(%rax,%rax)