// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_unit_test
int gt_intset_16_unit_test(GtError *err)
{
  int had_err = 0;
  GtIntset *is;
  GtUword num_of_elems = gt_rand_max(((GtUword) 1) << 10) + 1,
          *arr = gt_malloc(sizeof (*arr) * num_of_elems),
          stepsize = GT_DIV2(num_of_elems <<4 / num_of_elems),
          idx;
  size_t is_size;

  gt_error_check(err);

  arr[0] = gt_rand_max(stepsize) + 1;
  for (idx = (GtUword) 1; idx < num_of_elems; ++idx) {
    arr[idx] = arr[idx - 1] + gt_rand_max(stepsize) + 1;
  }

  is_size = gt_intset_16_size_of_rep(arr[num_of_elems - 1], num_of_elems);

  if (!had_err) {
    if (is_size < (size_t) UINT_MAX) {
      is = gt_intset_16_new(arr[num_of_elems - 1], num_of_elems);
      for (idx = 0; idx < num_of_elems; idx++) {
        gt_intset_16_add(is, arr[idx]);
        gt_ensure(idx + 1 == gt_intset_16_size(is));
        if (idx < num_of_elems - 1)
          gt_ensure(gt_intset_16_get_idx_smallest_geq(is,
                                                      arr[idx] + 1) ==
                    num_of_elems);
      }

      gt_ensure(gt_intset_16_elems_is_valid(is));
      gt_ensure(gt_intset_16_secstart_is_valid(is));

      GT_INTSET_TEST_16_BINSEARCH(0);
      for (idx = 1; !had_err && idx < num_of_elems; idx++) {
        GtUword to_find = (arr[idx - 1] == (arr[idx] - 1)) ? idx - 1 : idx;
        gt_ensure(
          gt_intset_16_get_idx_smallest_geq_test(is, arr[idx] - 1) ==
          to_find);
        gt_ensure(
          gt_intset_16_get_idx_smallest_geq(is, arr[idx] - 1) ==
          to_find);
        GT_INTSET_TEST_16_BINSEARCH(idx);
      }
      if (!had_err)
        had_err = gt_intset_unit_test_notinset(is, 0, arr[0] - 1, err);
      if (!had_err)
        had_err = gt_intset_unit_test_check_seqnum(is, 0, arr[0] - 1, 0, err);
      for (idx = (GtUword) 1; !had_err && idx < num_of_elems; idx++) {
        had_err = gt_intset_unit_test_notinset(is, arr[idx - 1] + 1,
                                               arr[idx] - 1, err);
        if (!had_err)
          had_err = gt_intset_unit_test_check_seqnum(is, arr[idx - 1] + 1,
                                                     arr[idx] - 1, idx, err);
      }
      gt_intset_delete(is);
    }
  }
  gt_free(arr);
  return had_err;
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x70(%rsp)
movl $0x0, 0x6c(%rsp)
movl $0x400, %edi            # imm = 0x400
callq 0xec350
addq $0x1, %rax
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rdi
shlq $0x3, %rdi
leaq 0x11f788(%rip), %rsi    # 0x5b349c
movl $0x1e7, %edx            # imm = 0x1E7
callq 0xe80f0
movq %rax, 0x50(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x28(%rsp)
movl $0x4, %eax
xorl %ecx, %ecx
movl %ecx, %edx
divq 0x58(%rsp)
movq %rax, %rcx
movq 0x28(%rsp), %rax
shlq %cl, %rax
shrq %rax
movq %rax, 0x48(%rsp)
cmpq $0x0, 0x70(%rsp)
je 0x493d9e
movq 0x70(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x493d66
jmp 0x493d9e
movq 0x1a8233(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x8229c(%rip), %rsi     # 0x516013
leaq 0x82441(%rip), %rdx     # 0x5161bf
leaq 0x11fa03(%rip), %rcx    # 0x5b3788
leaq 0x11f710(%rip), %r8     # 0x5b349c
movl $0x1ec, %r9d            # imm = 0x1EC
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x493da0
movq 0x48(%rsp), %rdi
callq 0xec350
movq %rax, %rcx
addq $0x1, %rcx
movq 0x50(%rsp), %rax
movq %rcx, (%rax)
movq $0x1, 0x40(%rsp)
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
jae 0x493e19
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x20(%rsp)
movq 0x48(%rsp), %rdi
callq 0xec350
movq 0x20(%rsp), %rdx
addq %rax, %rdx
addq $0x1, %rdx
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x493dc2
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdi
movq 0x58(%rsp), %rsi
callq 0x493c20
movq %rax, 0x38(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x4945df
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, 0x38(%rsp)
jae 0x4945dd
movq 0x50(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdi
movq 0x58(%rsp), %rsi
callq 0x492a20
movq %rax, 0x60(%rsp)
movq $0x0, 0x40(%rsp)
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
jae 0x493f9d
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x493290
cmpl $0x0, 0x6c(%rsp)
jne 0x493f0b
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
movq 0x60(%rsp), %rdi
callq 0x493790
movq %rax, %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
je 0x493f09
movq 0x70(%rsp), %rdi
leaq 0x9b71b(%rip), %rsi     # 0x52f5fa
leaq 0x11f8b9(%rip), %rdx    # 0x5b379f
leaq 0x11f89b(%rip), %rcx    # 0x5b3788
leaq 0x11f5a8(%rip), %r8     # 0x5b349c
movl $0x1fa, %r9d            # imm = 0x1FA
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x493f0b
jmp 0x493f0d
movq 0x40(%rsp), %rax
movq 0x58(%rsp), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jae 0x493f88
jmp 0x493f22
cmpl $0x0, 0x6c(%rsp)
jne 0x493f84
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
callq 0x493960
cmpq 0x58(%rsp), %rax
je 0x493f82
movq 0x70(%rsp), %rdi
leaq 0x9b6a2(%rip), %rsi     # 0x52f5fa
leaq 0x11f861(%rip), %rdx    # 0x5b37c0
leaq 0x11f822(%rip), %rcx    # 0x5b3788
leaq 0x11f52f(%rip), %r8     # 0x5b349c
movl $0x1fe, %r9d            # imm = 0x1FE
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x493f84
jmp 0x493f86
jmp 0x493f88
jmp 0x493f8a
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x493e7f
jmp 0x493f9f
cmpl $0x0, 0x6c(%rsp)
jne 0x493fec
movq 0x60(%rsp), %rdi
callq 0x494600
testb $0x1, %al
jne 0x493fea
movq 0x70(%rsp), %rdi
leaq 0x9b63a(%rip), %rsi     # 0x52f5fa
leaq 0x11f83d(%rip), %rdx    # 0x5b3804
leaq 0x11f7ba(%rip), %rcx    # 0x5b3788
leaq 0x11f4c7(%rip), %r8     # 0x5b349c
movl $0x201, %r9d            # imm = 0x201
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x493fec
jmp 0x493fee
jmp 0x493ff0
cmpl $0x0, 0x6c(%rsp)
jne 0x49403d
movq 0x60(%rsp), %rdi
callq 0x4946f0
testb $0x1, %al
jne 0x49403b
movq 0x70(%rsp), %rdi
leaq 0x9b5e9(%rip), %rsi     # 0x52f5fa
leaq 0x11f80c(%rip), %rdx    # 0x5b3824
leaq 0x11f769(%rip), %rcx    # 0x5b3788
leaq 0x11f476(%rip), %r8     # 0x5b349c
movl $0x202, %r9d            # imm = 0x202
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x49403d
jmp 0x49403f
jmp 0x494041
cmpl $0x0, 0x6c(%rsp)
jne 0x494098
movq 0x60(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x494770
movq 0x50(%rsp), %rcx
cmpq (%rcx), %rax
je 0x494096
movq 0x70(%rsp), %rdi
leaq 0x9b58e(%rip), %rsi     # 0x52f5fa
leaq 0x11f7d4(%rip), %rdx    # 0x5b3847
leaq 0x11f70e(%rip), %rcx    # 0x5b3788
leaq 0x11f41b(%rip), %r8     # 0x5b349c
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x494098
jmp 0x49409a
jmp 0x49409c
cmpl $0x0, 0x6c(%rsp)
jne 0x4940f3
movq 0x60(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x493550
movq 0x50(%rsp), %rcx
cmpq (%rcx), %rax
je 0x4940f1
movq 0x70(%rsp), %rdi
leaq 0x9b533(%rip), %rsi     # 0x52f5fa
leaq 0x11f7a0(%rip), %rdx    # 0x5b386e
leaq 0x11f6b3(%rip), %rcx    # 0x5b3788
leaq 0x11f3c0(%rip), %r8     # 0x5b349c
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x4940f3
jmp 0x4940f5
jmp 0x4940f7
cmpl $0x0, 0x6c(%rsp)
jne 0x494152
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rsi
addq $0x1, %rsi
callq 0x494830
cmpq $0x1, %rax
je 0x494150
movq 0x70(%rsp), %rdi
leaq 0x9b4d4(%rip), %rsi     # 0x52f5fa
leaq 0x11f763(%rip), %rdx    # 0x5b3890
leaq 0x11f654(%rip), %rcx    # 0x5b3788
leaq 0x11f361(%rip), %r8     # 0x5b349c
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x494152
jmp 0x494154
jmp 0x494156
cmpl $0x0, 0x6c(%rsp)
jne 0x4941b1
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rsi
addq $0x1, %rsi
callq 0x493960
cmpq $0x1, %rax
je 0x4941af
movq 0x70(%rsp), %rdi
leaq 0x9b475(%rip), %rsi     # 0x52f5fa
leaq 0x11f744(%rip), %rdx    # 0x5b38d0
leaq 0x11f5f5(%rip), %rcx    # 0x5b3788
leaq 0x11f302(%rip), %r8     # 0x5b349c
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x4941b1
jmp 0x4941b3
movq $0x1, 0x40(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x6c(%rsp)
movb %al, 0x17(%rsp)
jne 0x4941da
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
setb %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x4941e7
jmp 0x4944b1
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rdx
movq (%rcx,%rdx,8), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x494220
movq 0x40(%rsp), %rax
subq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x49422a
movq 0x40(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x30(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x494296
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
subq $0x1, %rsi
callq 0x494830
cmpq 0x30(%rsp), %rax
je 0x494294
movq 0x70(%rsp), %rdi
leaq 0x9b390(%rip), %rsi     # 0x52f5fa
leaq 0x11f69a(%rip), %rdx    # 0x5b390b
leaq 0x11f510(%rip), %rcx    # 0x5b3788
leaq 0x11f21d(%rip), %r8     # 0x5b349c
movl $0x209, %r9d            # imm = 0x209
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x494296
jmp 0x494298
jmp 0x49429a
cmpl $0x0, 0x6c(%rsp)
jne 0x4942fc
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
subq $0x1, %rsi
callq 0x493960
cmpq 0x30(%rsp), %rax
je 0x4942fa
movq 0x70(%rsp), %rdi
leaq 0x9b32a(%rip), %rsi     # 0x52f5fa
leaq 0x11f678(%rip), %rdx    # 0x5b394f
leaq 0x11f4aa(%rip), %rcx    # 0x5b3788
leaq 0x11f1b7(%rip), %r8     # 0x5b349c
movl $0x20c, %r9d            # imm = 0x20C
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x4942fc
jmp 0x4942fe
jmp 0x494300
cmpl $0x0, 0x6c(%rsp)
jne 0x49435e
movq 0x60(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x494770
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
je 0x49435c
movq 0x70(%rsp), %rdi
leaq 0x9b2c8(%rip), %rsi     # 0x52f5fa
leaq 0x11f655(%rip), %rdx    # 0x5b398e
leaq 0x11f448(%rip), %rcx    # 0x5b3788
leaq 0x11f155(%rip), %r8     # 0x5b349c
movl $0x20d, %r9d            # imm = 0x20D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x49435e
jmp 0x494360
jmp 0x494362
cmpl $0x0, 0x6c(%rsp)
jne 0x4943c0
movq 0x60(%rsp), %rdi
movq 0x40(%rsp), %rsi
callq 0x493550
movq 0x50(%rsp), %rcx
movq 0x40(%rsp), %rdx
cmpq (%rcx,%rdx,8), %rax
je 0x4943be
movq 0x70(%rsp), %rdi
leaq 0x9b266(%rip), %rsi     # 0x52f5fa
leaq 0x11f61e(%rip), %rdx    # 0x5b39b9
leaq 0x11f3e6(%rip), %rcx    # 0x5b3788
leaq 0x11f0f3(%rip), %r8     # 0x5b349c
movl $0x20d, %r9d            # imm = 0x20D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x4943c0
jmp 0x4943c2
jmp 0x4943c4
cmpl $0x0, 0x6c(%rsp)
jne 0x49442d
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
callq 0x494830
movq 0x40(%rsp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
je 0x49442b
movq 0x70(%rsp), %rdi
leaq 0x9b1f9(%rip), %rsi     # 0x52f5fa
leaq 0x11f5d7(%rip), %rdx    # 0x5b39df
leaq 0x11f379(%rip), %rcx    # 0x5b3788
leaq 0x11f086(%rip), %r8     # 0x5b349c
movl $0x20d, %r9d            # imm = 0x20D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x49442d
jmp 0x49442f
jmp 0x494431
cmpl $0x0, 0x6c(%rsp)
jne 0x49449a
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
callq 0x493960
movq 0x40(%rsp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
je 0x494498
movq 0x70(%rsp), %rdi
leaq 0x9b18c(%rip), %rsi     # 0x52f5fa
leaq 0x11f5ae(%rip), %rdx    # 0x5b3a23
leaq 0x11f30c(%rip), %rcx    # 0x5b3788
leaq 0x11f019(%rip), %r8     # 0x5b349c
movl $0x20d, %r9d            # imm = 0x20D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x49449a
jmp 0x49449c
jmp 0x49449e
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x4941bc
cmpl $0x0, 0x6c(%rsp)
jne 0x4944db
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rdx
subq $0x1, %rdx
movq 0x70(%rsp), %rcx
xorl %eax, %eax
movl %eax, %esi
callq 0x197230
movl %eax, 0x6c(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x494508
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq (%rax), %rdx
subq $0x1, %rdx
movq 0x70(%rsp), %r8
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rsi
callq 0x1972e0
movl %eax, 0x6c(%rsp)
movq $0x1, 0x40(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x6c(%rsp)
movb %al, 0x7(%rsp)
jne 0x49452f
movq 0x40(%rsp), %rax
cmpq 0x58(%rsp), %rax
setb %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x49453c
jmp 0x4945d3
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
subq $0x1, %rdx
movq 0x70(%rsp), %rcx
callq 0x197230
movl %eax, 0x6c(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x4945be
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rsi
addq $0x1, %rsi
movq 0x50(%rsp), %rax
movq 0x40(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
subq $0x1, %rdx
movq 0x40(%rsp), %rcx
movq 0x70(%rsp), %r8
callq 0x1972e0
movl %eax, 0x6c(%rsp)
jmp 0x4945c0
movq 0x40(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x40(%rsp)
jmp 0x494511
movq 0x60(%rsp), %rdi
callq 0x197140
jmp 0x4945df
movq 0x50(%rsp), %rdi
leaq 0x11eeb1(%rip), %rsi    # 0x5b349c
movl $0x21d, %edx            # imm = 0x21D
callq 0xe88c0
movl 0x6c(%rsp), %eax
addq $0x78, %rsp
retq
nop