// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/alignment.c
// Function: gt_alignment_unit_test
int gt_alignment_unit_test(GtError *err)
{
  static char u[] = "acgtagatatatagat",
              v[] = "agaaagaggtaagaggga";
  GtAlignment *alignment;
  int had_err = 0;
  gt_error_check(err);

  /* construct the following alignment (backwards):

     acgtaga--tatata-gat
     |   |||  || | | |                  [R 7,I 2,R 2,D 1,R 3,I 1,R 3]
     agaaagaggta-agaggga
  */

  alignment = gt_alignment_new_with_seqs((const GtUchar *) u,
                                 (GtUword) strlen(u),
                                 (const GtUchar *) v,
                                 (GtUword) strlen(v));
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_insertion(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_deletion(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_insertion(alignment);
  gt_alignment_add_insertion(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_replacement(alignment);
  gt_alignment_add_replacement(alignment);

  gt_ensure(gt_alignment_eval(alignment) == 10UL);

  gt_alignment_delete(alignment);

  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdi, %rbx
testq %rdi, %rdi
je 0xb654e
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0xb666d
leaq 0x382aeb(%rip), %r14    # 0x439040
movq %r14, %rdi
callq 0x172d0
movq %rax, %r15
leaq 0x382af9(%rip), %r12    # 0x439060
movq %r12, %rdi
callq 0x172d0
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0xb4ea1
movq %rax, %r14
movq %rax, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb52a8
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb5258
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb52a8
movq %r14, %rdi
callq 0xb52a8
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb5208
movq %r14, %rdi
callq 0xb55be
xorl %ebp, %ebp
cmpq $0xa, %rax
je 0xb665a
leaq 0x247dc0(%rip), %rsi    # 0x2fe3f2
leaq 0x25ed21(%rip), %rdx    # 0x31535a
leaq 0x25ed03(%rip), %rcx    # 0x315343
leaq 0x25e8c9(%rip), %r8     # 0x314f10
movq %rbx, %rdi
movl $0x363, %r9d            # imm = 0x363
xorl %eax, %eax
callq 0x89dbb
pushq $-0x1
popq %rbp
movq %r14, %rdi
callq 0xb647f
movl %ebp, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x3818f4(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x22e995(%rip), %rsi    # 0x2e5013
leaq 0x22eb3a(%rip), %rdx    # 0x2e51bf
leaq 0x25ecb7(%rip), %rcx    # 0x315343
leaq 0x25e87d(%rip), %r8     # 0x314f10
movl $0x342, %r9d            # imm = 0x342
xorl %eax, %eax
callq 0x17a50
callq 0x17390
nopl (%rax)