// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/codon_iterator_simple.c
// Function: gt_codon_iterator_simple_unit_test
int gt_codon_iterator_simple_unit_test(GtError *err)
{
  int had_err = 0,
      i;
  const char *testseq = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  GtCodonIterator *ci;
  char n1, n2, n3;
  unsigned int frame;
  gt_error_check(err);

  ci = gt_codon_iterator_simple_new(testseq, 26, NULL);
  i = 0;
  while (!gt_codon_iterator_next(ci, &n1, &n2, &n3, &frame, NULL)) {
    gt_ensure(n1 == testseq[i]);
    gt_ensure(n2 == testseq[i+1]);
    gt_ensure(n3 == testseq[i+2]);
    i++;
  }
  gt_ensure(i == 24);
  gt_codon_iterator_delete(ci);
  return had_err;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movl $0x0, 0x1c(%rsp)
leaq 0x981ea(%rip), %rax     # 0x1784a2
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0xe030d
movq 0x20(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0xe02d5
jmp 0xe030d
movq 0xd3cfc(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x7dd80(%rip), %rsi     # 0x15e066
leaq 0x7e35b(%rip), %rdx     # 0x15e648
leaq 0x981c9(%rip), %rcx     # 0x1784bd
leaq 0x98186(%rip), %r8      # 0x178481
movl $0x74, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xe030f
movq 0x10(%rsp), %rdi
movl $0x1a, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0xe0180
movq %rax, 0x8(%rsp)
movl $0x0, 0x18(%rsp)
movq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rsi
leaq 0x6(%rsp), %rdx
leaq 0x5(%rsp), %rcx
movq %rsp, %r8
xorl %eax, %eax
movl %eax, %r9d
callq 0xdfd20
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xe0361
jmp 0xe0489
jmp 0xe0363
cmpl $0x0, 0x1c(%rsp)
jne 0xe03b9
movsbl 0x7(%rsp), %eax
movq 0x10(%rsp), %rcx
movslq 0x18(%rsp), %rdx
movsbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
je 0xe03b7
movq 0x20(%rsp), %rdi
leaq 0x7fdea(%rip), %rsi     # 0x160177
leaq 0x9814c(%rip), %rdx     # 0x1784e0
leaq 0x98122(%rip), %rcx     # 0x1784bd
leaq 0x980df(%rip), %r8      # 0x178481
movl $0x79, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe03b9
jmp 0xe03bb
jmp 0xe03bd
cmpl $0x0, 0x1c(%rsp)
jne 0xe0418
movsbl 0x6(%rsp), %eax
movq 0x10(%rsp), %rcx
movl 0x18(%rsp), %edx
addl $0x1, %edx
movslq %edx, %rdx
movsbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
je 0xe0416
movq 0x20(%rsp), %rdi
leaq 0x7fd8b(%rip), %rsi     # 0x160177
leaq 0x980fe(%rip), %rdx     # 0x1784f1
leaq 0x980c3(%rip), %rcx     # 0x1784bd
leaq 0x98080(%rip), %r8      # 0x178481
movl $0x7a, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe0418
jmp 0xe041a
jmp 0xe041c
cmpl $0x0, 0x1c(%rsp)
jne 0xe0477
movsbl 0x5(%rsp), %eax
movq 0x10(%rsp), %rcx
movl 0x18(%rsp), %edx
addl $0x2, %edx
movslq %edx, %rdx
movsbl (%rcx,%rdx), %ecx
cmpl %ecx, %eax
je 0xe0475
movq 0x20(%rsp), %rdi
leaq 0x7fd2c(%rip), %rsi     # 0x160177
leaq 0x980b2(%rip), %rdx     # 0x178504
leaq 0x98064(%rip), %rcx     # 0x1784bd
leaq 0x98021(%rip), %r8      # 0x178481
movl $0x7b, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe0477
jmp 0xe0479
movl 0x18(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x18(%rsp)
jmp 0xe032f
jmp 0xe048b
cmpl $0x0, 0x1c(%rsp)
jne 0xe04d1
cmpl $0x18, 0x18(%rsp)
je 0xe04cf
movq 0x20(%rsp), %rdi
leaq 0x7fcd2(%rip), %rsi     # 0x160177
leaq 0x9806b(%rip), %rdx     # 0x178517
leaq 0x9800a(%rip), %rcx     # 0x1784bd
leaq 0x97fc7(%rip), %r8      # 0x178481
movl $0x7e, %r9d
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x1c(%rsp) # imm = 0xFFFFFFFF
jmp 0xe04d1
jmp 0xe04d3
movq 0x8(%rsp), %rdi
callq 0xdfde0
movl 0x1c(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)