// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_unit_test
int gt_multieoplist_unit_test(GtError *err)
{
  int had_err = 0;
  GtUword idx, num;
  GtMultieoplist *list = gt_multieoplist_new(),
                 *list2 = NULL;

  gt_error_check(err);

  gt_multieoplist_add_deletion(list);
  gt_ensure(gt_multieoplist_get_num_entries(list) == (GtUword) 1);
  gt_ensure(list->meoplist.spaceEop[0] >> GT_MEOPS_STEPS_BITS == GT_MEOPS_DEL);
  gt_ensure((int) (list->meoplist.spaceEop[0] & GT_MEOPS_STEPS_MASK) == 1);
  if (!had_err) {
    GtMultieop meop = gt_multieoplist_get_entry(list, 0);
    gt_ensure(meop.type = Deletion);
    gt_ensure(meop.steps == (GtUword) 1UL);
  }

  for (idx = 0; idx < (GtUword) GT_MEOPS_STEPS_MASK; idx++) {
    gt_multieoplist_add_deletion(list);
  }
  gt_ensure(gt_multieoplist_get_num_entries(list) == (GtUword) 2);
  gt_ensure(list->meoplist.spaceEop[1] >> GT_MEOPS_STEPS_BITS == GT_MEOPS_DEL);
  gt_ensure((GtUword) (list->meoplist.spaceEop[1] & GT_MEOPS_STEPS_MASK) ==
            (GtUword) 1);
  gt_ensure((GtUword) (list->meoplist.spaceEop[0] & GT_MEOPS_STEPS_MASK) ==
            (GtUword) GT_MEOPS_STEPS_MASK);
  gt_ensure(gt_multieoplist_get_repdel_length(list) ==
            (GtUword) GT_MEOPS_STEPS_MASK + 1);

  if (!had_err)
    gt_multieoplist_add_eops(list, Match, (GtUword) (GT_MEOPS_STEPS_MASK >> 1));
  gt_ensure(gt_multieoplist_get_num_entries(list) == (GtUword) 3);
  gt_ensure(list->meoplist.spaceEop[2] >> GT_MEOPS_STEPS_BITS ==
            GT_MEOPS_MATCH);
  gt_ensure((GtUword) (list->meoplist.spaceEop[2] & GT_MEOPS_STEPS_MASK) ==
            (GtUword) GT_MEOPS_STEPS_MASK >> 1);

  if (!had_err)
    gt_multieoplist_add_eops(list, Match, (GtUword) (GT_MEOPS_STEPS_MASK << 1));
  gt_ensure(gt_multieoplist_get_num_entries(list) == (GtUword) 5);
  gt_ensure(list->meoplist.spaceEop[4] >> GT_MEOPS_STEPS_BITS ==
            GT_MEOPS_MATCH);
  gt_ensure((list->meoplist.spaceEop[4] & GT_MEOPS_STEPS_MASK) ==
            GT_MEOPS_STEPS_MASK >> 1);

  if (!had_err) {
    list2 = gt_multieoplist_clone(list2, list);
  }

  gt_ensure(gt_multieoplist_get_length(list) ==
            gt_multieoplist_get_length(list2));
  gt_ensure(gt_multieoplist_get_repdel_length(list) ==
            gt_multieoplist_get_repdel_length(list2));
  if (!had_err) {
    num = gt_multieoplist_get_num_entries(list);

    for (idx = 0; idx < num; idx++) {
      GtMultieop eop1 = gt_multieoplist_get_entry(list, idx),
                 eop2 = gt_multieoplist_get_entry(list2, idx);
      gt_ensure(eop1.type == eop2.type);
      gt_ensure(eop1.steps == eop2.steps);
    }
  }

  if (!had_err) {
    gt_multieoplist_combine(list, list2, true);
  }
  gt_multieoplist_delete(list);
  gt_multieoplist_delete(list2);

  had_err = gt_multieoplist_unit_test_2(err);
  return had_err;
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x70(%rsp)
movl $0x0, 0x6c(%rsp)
callq 0x1af960
movq %rax, 0x50(%rsp)
movq $0x0, 0x48(%rsp)
cmpq $0x0, 0x70(%rsp)
je 0x1b0cb4
movq 0x70(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1b0c7c
jmp 0x1b0cb4
movq 0x48b31d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x365386(%rip), %rsi    # 0x516013
leaq 0x36552b(%rip), %rdx    # 0x5161bf
leaq 0x3ae98c(%rip), %rcx    # 0x55f627
leaq 0x3ae726(%rip), %r8     # 0x55f3c8
movl $0x1b9, %r9d            # imm = 0x1B9
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b0cb6
movq 0x50(%rsp), %rdi
callq 0x1afff0
cmpl $0x0, 0x6c(%rsp)
jne 0x1b0d0f
movq 0x50(%rsp), %rdi
callq 0x1b0390
cmpq $0x1, %rax
je 0x1b0d0d
movq 0x70(%rsp), %rdi
leaq 0x37e917(%rip), %rsi    # 0x52f5fa
leaq 0x3ae957(%rip), %rdx    # 0x55f641
leaq 0x3ae936(%rip), %rcx    # 0x55f627
leaq 0x3ae6d0(%rip), %r8     # 0x55f3c8
movl $0x1bc, %r9d            # imm = 0x1BC
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b0d0f
jmp 0x1b0d11
jmp 0x1b0d13
cmpl $0x0, 0x6c(%rsp)
jne 0x1b0d66
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
sarl $0x6, %eax
cmpl $0x2, %eax
je 0x1b0d64
movq 0x70(%rsp), %rdi
leaq 0x37e8c0(%rip), %rsi    # 0x52f5fa
leaq 0x3ae935(%rip), %rdx    # 0x55f676
leaq 0x3ae8df(%rip), %rcx    # 0x55f627
leaq 0x3ae679(%rip), %r8     # 0x55f3c8
movl $0x1bd, %r9d            # imm = 0x1BD
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b0d66
jmp 0x1b0d68
jmp 0x1b0d6a
cmpl $0x0, 0x6c(%rsp)
jne 0x1b0dbd
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
andl $0x3f, %eax
cmpl $0x1, %eax
je 0x1b0dbb
movq 0x70(%rsp), %rdi
leaq 0x37e869(%rip), %rsi    # 0x52f5fa
leaq 0x3ae920(%rip), %rdx    # 0x55f6b8
leaq 0x3ae888(%rip), %rcx    # 0x55f627
leaq 0x3ae622(%rip), %r8     # 0x55f3c8
movl $0x1be, %r9d            # imm = 0x1BE
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b0dbd
jmp 0x1b0dbf
cmpl $0x0, 0x6c(%rsp)
jne 0x1b0e7d
movq 0x50(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1b03a0
movl %eax, 0x38(%rsp)
movq %rdx, 0x40(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x1b0e2e
movl $0x3, 0x38(%rsp)
movb $0x1, %al
testb $0x1, %al
jne 0x1b0e2c
movq 0x70(%rsp), %rdi
leaq 0x37e7f8(%rip), %rsi    # 0x52f5fa
leaq 0x3ae8ed(%rip), %rdx    # 0x55f6f6
leaq 0x3ae817(%rip), %rcx    # 0x55f627
leaq 0x3ae5b1(%rip), %r8     # 0x55f3c8
movl $0x1c1, %r9d            # imm = 0x1C1
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b0e2e
jmp 0x1b0e30
jmp 0x1b0e32
cmpl $0x0, 0x6c(%rsp)
jne 0x1b0e79
cmpq $0x1, 0x40(%rsp)
je 0x1b0e77
movq 0x70(%rsp), %rdi
leaq 0x37e7ad(%rip), %rsi    # 0x52f5fa
leaq 0x3ae8b7(%rip), %rdx    # 0x55f70b
leaq 0x3ae7cc(%rip), %rcx    # 0x55f627
leaq 0x3ae566(%rip), %r8     # 0x55f3c8
movl $0x1c2, %r9d            # imm = 0x1C2
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b0e79
jmp 0x1b0e7b
jmp 0x1b0e7d
movq $0x0, 0x60(%rsp)
cmpq $0x3f, 0x60(%rsp)
jae 0x1b0ea8
movq 0x50(%rsp), %rdi
callq 0x1afff0
movq 0x60(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x60(%rsp)
jmp 0x1b0e86
jmp 0x1b0eaa
cmpl $0x0, 0x6c(%rsp)
jne 0x1b0ef9
movq 0x50(%rsp), %rdi
callq 0x1b0390
cmpq $0x2, %rax
je 0x1b0ef7
movq 0x70(%rsp), %rdi
leaq 0x37e72d(%rip), %rsi    # 0x52f5fa
leaq 0x3ae853(%rip), %rdx    # 0x55f727
leaq 0x3ae74c(%rip), %rcx    # 0x55f627
leaq 0x3ae4e6(%rip), %r8     # 0x55f3c8
movl $0x1c8, %r9d            # imm = 0x1C8
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b0ef9
jmp 0x1b0efb
jmp 0x1b0efd
cmpl $0x0, 0x6c(%rsp)
jne 0x1b0f51
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movzbl 0x1(%rax), %eax
sarl $0x6, %eax
cmpl $0x2, %eax
je 0x1b0f4f
movq 0x70(%rsp), %rdi
leaq 0x37e6d5(%rip), %rsi    # 0x52f5fa
leaq 0x3ae830(%rip), %rdx    # 0x55f75c
leaq 0x3ae6f4(%rip), %rcx    # 0x55f627
leaq 0x3ae48e(%rip), %r8     # 0x55f3c8
movl $0x1c9, %r9d            # imm = 0x1C9
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b0f51
jmp 0x1b0f53
jmp 0x1b0f55
cmpl $0x0, 0x6c(%rsp)
jne 0x1b0fac
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movzbl 0x1(%rax), %eax
andl $0x3f, %eax
cltq
cmpq $0x1, %rax
je 0x1b0faa
movq 0x70(%rsp), %rdi
leaq 0x37e67a(%rip), %rsi    # 0x52f5fa
leaq 0x3ae817(%rip), %rdx    # 0x55f79e
leaq 0x3ae699(%rip), %rcx    # 0x55f627
leaq 0x3ae433(%rip), %r8     # 0x55f3c8
movl $0x1cb, %r9d            # imm = 0x1CB
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b0fac
jmp 0x1b0fae
jmp 0x1b0fb0
cmpl $0x0, 0x6c(%rsp)
jne 0x1b1006
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movzbl (%rax), %eax
andl $0x3f, %eax
cltq
cmpq $0x3f, %rax
je 0x1b1004
movq 0x70(%rsp), %rdi
leaq 0x37e620(%rip), %rsi    # 0x52f5fa
leaq 0x3ae809(%rip), %rdx    # 0x55f7ea
leaq 0x3ae63f(%rip), %rcx    # 0x55f627
leaq 0x3ae3d9(%rip), %r8     # 0x55f3c8
movl $0x1cd, %r9d            # imm = 0x1CD
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b1006
jmp 0x1b1008
jmp 0x1b100a
cmpl $0x0, 0x6c(%rsp)
jne 0x1b1059
movq 0x50(%rsp), %rdi
callq 0x1b0130
cmpq $0x40, %rax
je 0x1b1057
movq 0x70(%rsp), %rdi
leaq 0x37e5cd(%rip), %rsi    # 0x52f5fa
leaq 0x3ae814(%rip), %rdx    # 0x55f848
leaq 0x3ae5ec(%rip), %rcx    # 0x55f627
leaq 0x3ae386(%rip), %r8     # 0x55f3c8
movl $0x1cf, %r9d            # imm = 0x1CF
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b1059
jmp 0x1b105b
cmpl $0x0, 0x6c(%rsp)
jne 0x1b1073
movq 0x50(%rsp), %rdi
xorl %esi, %esi
movl $0x1f, %edx
callq 0x1afc50
jmp 0x1b1075
cmpl $0x0, 0x6c(%rsp)
jne 0x1b10c4
movq 0x50(%rsp), %rdi
callq 0x1b0390
cmpq $0x3, %rax
je 0x1b10c2
movq 0x70(%rsp), %rdi
leaq 0x37e562(%rip), %rsi    # 0x52f5fa
leaq 0x3ae7f6(%rip), %rdx    # 0x55f895
leaq 0x3ae581(%rip), %rcx    # 0x55f627
leaq 0x3ae31b(%rip), %r8     # 0x55f3c8
movl $0x1d3, %r9d            # imm = 0x1D3
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b10c4
jmp 0x1b10c6
jmp 0x1b10c8
cmpl $0x0, 0x6c(%rsp)
jne 0x1b111c
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movzbl 0x2(%rax), %eax
sarl $0x6, %eax
cmpl $0x0, %eax
je 0x1b111a
movq 0x70(%rsp), %rdi
leaq 0x37e50a(%rip), %rsi    # 0x52f5fa
leaq 0x3ae7d3(%rip), %rdx    # 0x55f8ca
leaq 0x3ae529(%rip), %rcx    # 0x55f627
leaq 0x3ae2c3(%rip), %r8     # 0x55f3c8
movl $0x1d5, %r9d            # imm = 0x1D5
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b111c
jmp 0x1b111e
jmp 0x1b1120
cmpl $0x0, 0x6c(%rsp)
jne 0x1b1177
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movzbl 0x2(%rax), %eax
andl $0x3f, %eax
cltq
cmpq $0x1f, %rax
je 0x1b1175
movq 0x70(%rsp), %rdi
leaq 0x37e4af(%rip), %rsi    # 0x52f5fa
leaq 0x3ae7bc(%rip), %rdx    # 0x55f90e
leaq 0x3ae4ce(%rip), %rcx    # 0x55f627
leaq 0x3ae268(%rip), %r8     # 0x55f3c8
movl $0x1d7, %r9d            # imm = 0x1D7
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b1177
jmp 0x1b1179
cmpl $0x0, 0x6c(%rsp)
jne 0x1b1191
movq 0x50(%rsp), %rdi
xorl %esi, %esi
movl $0x7e, %edx
callq 0x1afc50
jmp 0x1b1193
cmpl $0x0, 0x6c(%rsp)
jne 0x1b11e2
movq 0x50(%rsp), %rdi
callq 0x1b0390
cmpq $0x5, %rax
je 0x1b11e0
movq 0x70(%rsp), %rdi
leaq 0x37e444(%rip), %rsi    # 0x52f5fa
leaq 0x3ae7b4(%rip), %rdx    # 0x55f971
leaq 0x3ae463(%rip), %rcx    # 0x55f627
leaq 0x3ae1fd(%rip), %r8     # 0x55f3c8
movl $0x1db, %r9d            # imm = 0x1DB
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b11e2
jmp 0x1b11e4
jmp 0x1b11e6
cmpl $0x0, 0x6c(%rsp)
jne 0x1b123a
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movzbl 0x4(%rax), %eax
sarl $0x6, %eax
cmpl $0x0, %eax
je 0x1b1238
movq 0x70(%rsp), %rdi
leaq 0x37e3ec(%rip), %rsi    # 0x52f5fa
leaq 0x3ae791(%rip), %rdx    # 0x55f9a6
leaq 0x3ae40b(%rip), %rcx    # 0x55f627
leaq 0x3ae1a5(%rip), %r8     # 0x55f3c8
movl $0x1dd, %r9d            # imm = 0x1DD
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b123a
jmp 0x1b123c
jmp 0x1b123e
cmpl $0x0, 0x6c(%rsp)
jne 0x1b1292
movq 0x50(%rsp), %rax
movq 0x8(%rax), %rax
movzbl 0x4(%rax), %eax
andl $0x3f, %eax
cmpl $0x1f, %eax
je 0x1b1290
movq 0x70(%rsp), %rdi
leaq 0x37e394(%rip), %rsi    # 0x52f5fa
leaq 0x3ae77d(%rip), %rdx    # 0x55f9ea
leaq 0x3ae3b3(%rip), %rcx    # 0x55f627
leaq 0x3ae14d(%rip), %r8     # 0x55f3c8
movl $0x1df, %r9d            # imm = 0x1DF
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b1292
jmp 0x1b1294
cmpl $0x0, 0x6c(%rsp)
jne 0x1b12af
movq 0x48(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0x1afa50
movq %rax, 0x48(%rsp)
jmp 0x1b12b1
cmpl $0x0, 0x6c(%rsp)
jne 0x1b1316
movq 0x50(%rsp), %rdi
callq 0x1b02d0
movq %rax, 0x10(%rsp)
movq 0x48(%rsp), %rdi
callq 0x1b02d0
movq %rax, %rcx
movq 0x10(%rsp), %rax
cmpq %rcx, %rax
je 0x1b1314
movq 0x70(%rsp), %rdi
leaq 0x37e310(%rip), %rsi    # 0x52f5fa
leaq 0x3ae748(%rip), %rdx    # 0x55fa39
leaq 0x3ae32f(%rip), %rcx    # 0x55f627
leaq 0x3ae0c9(%rip), %r8     # 0x55f3c8
movl $0x1e6, %r9d            # imm = 0x1E6
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b1316
jmp 0x1b1318
jmp 0x1b131a
cmpl $0x0, 0x6c(%rsp)
jne 0x1b137f
movq 0x50(%rsp), %rdi
callq 0x1b0130
movq %rax, 0x8(%rsp)
movq 0x48(%rsp), %rdi
callq 0x1b0130
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
je 0x1b137d
movq 0x70(%rsp), %rdi
leaq 0x37e2a7(%rip), %rsi    # 0x52f5fa
leaq 0x3ae725(%rip), %rdx    # 0x55fa7f
leaq 0x3ae2c6(%rip), %rcx    # 0x55f627
leaq 0x3ae060(%rip), %r8     # 0x55f3c8
movl $0x1e8, %r9d            # imm = 0x1E8
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b137f
jmp 0x1b1381
cmpl $0x0, 0x6c(%rsp)
jne 0x1b1495
movq 0x50(%rsp), %rdi
callq 0x1b0390
movq %rax, 0x58(%rsp)
movq $0x0, 0x60(%rsp)
movq 0x60(%rsp), %rax
cmpq 0x58(%rsp), %rax
jae 0x1b1493
movq 0x50(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x1b03a0
movl %eax, 0x28(%rsp)
movq %rdx, 0x30(%rsp)
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x1b03a0
movl %eax, 0x18(%rsp)
movq %rdx, 0x20(%rsp)
cmpl $0x0, 0x6c(%rsp)
jne 0x1b142d
movl 0x28(%rsp), %eax
cmpl 0x18(%rsp), %eax
je 0x1b142b
movq 0x70(%rsp), %rdi
leaq 0x37e1f9(%rip), %rsi    # 0x52f5fa
leaq 0x3ae6cb(%rip), %rdx    # 0x55fad3
leaq 0x3ae218(%rip), %rcx    # 0x55f627
leaq 0x3adfb2(%rip), %r8     # 0x55f3c8
movl $0x1ef, %r9d            # imm = 0x1EF
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b142d
jmp 0x1b142f
jmp 0x1b1431
cmpl $0x0, 0x6c(%rsp)
jne 0x1b147c
movq 0x30(%rsp), %rax
cmpq 0x20(%rsp), %rax
je 0x1b147a
movq 0x70(%rsp), %rdi
leaq 0x37e1aa(%rip), %rsi    # 0x52f5fa
leaq 0x3ae693(%rip), %rdx    # 0x55faea
leaq 0x3ae1c9(%rip), %rcx    # 0x55f627
leaq 0x3adf63(%rip), %r8     # 0x55f3c8
movl $0x1f0, %r9d            # imm = 0x1F0
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
jmp 0x1b147c
jmp 0x1b147e
jmp 0x1b1480
movq 0x60(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x60(%rsp)
jmp 0x1b13a4
jmp 0x1b1495
cmpl $0x0, 0x6c(%rsp)
jne 0x1b14b0
movq 0x50(%rsp), %rdi
movq 0x48(%rsp), %rsi
movl $0x1, %edx
callq 0x1b0850
movq 0x50(%rsp), %rdi
callq 0x1afba0
movq 0x48(%rsp), %rdi
callq 0x1afba0
movq 0x70(%rsp), %rdi
callq 0x1b0b50
movl %eax, 0x6c(%rsp)
movl 0x6c(%rsp), %eax
addq $0x78, %rsp
retq
nopl (%rax,%rax)