// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/clustered_set_uf.c
// Function: gt_clustered_set_union_find_unit_test
int gt_clustered_set_union_find_unit_test(GtError *err)
{
  int had_err = 0, i = 0, j = 0;
  GtClusteredSet *cs = NULL;
  cs = gt_clustered_set_union_find_new(1, err);
  gt_ensure(
            gt_clustered_set_union_find_num_of_elements(cs, err) ==
            gt_clustered_set_union_find_cluster_num(cs, 0, err));
  gt_ensure(
            gt_clustered_set_union_find_num_of_clusters(cs, err) == 0);
  gt_clustered_set_union_find_delete(cs, err);

  if (!had_err) {
    cs = gt_clustered_set_union_find_new(2, err);
    gt_clustered_set_union_find_merge_clusters(cs, 0, 1, err);

    gt_ensure(
              gt_clustered_set_union_find_num_of_clusters(cs, err) == 1);
    gt_ensure(
              gt_clustered_set_union_find_cluster_num(cs, 0, err) ==
              gt_clustered_set_union_find_cluster_num(cs, 1, err));
    gt_ensure(
              gt_clustered_set_union_find_num_of_clusters(cs, err) == 1);

    gt_clustered_set_union_find_delete(cs, err);
  }

  if (!had_err) {
    cs = gt_clustered_set_union_find_new(3, err);
    gt_clustered_set_union_find_merge_clusters(cs, 0, 1, err);
    gt_clustered_set_union_find_merge_clusters(cs, 1, 2, err);

    gt_ensure(
               gt_clustered_set_union_find_num_of_clusters(cs, err) == 1);
    gt_ensure(
               gt_clustered_set_union_find_cluster_num(cs, 0, err) ==
               gt_clustered_set_union_find_cluster_num(cs, 1, err));

    gt_ensure(
               gt_clustered_set_union_find_cluster_num(cs, 0, err) ==
               gt_clustered_set_union_find_cluster_num(cs, 2, err));

    gt_ensure(
              gt_clustered_set_union_find_cluster_num(cs, 1, err) ==
              gt_clustered_set_union_find_cluster_num(cs, 2, err));

    gt_clustered_set_union_find_delete(cs, err);
  }

  if (!had_err) {
    cs = gt_clustered_set_union_find_new(4, err);
    gt_clustered_set_union_find_merge_clusters(cs, 0, 1, err);
    gt_clustered_set_union_find_merge_clusters(cs, 2, 3, err);

    gt_ensure(
              gt_clustered_set_union_find_num_of_clusters(cs, err) == 2);

    gt_clustered_set_union_find_merge_clusters(cs, 0, 2, err);

    for (i = 0; i < 4 - 1; i++) {
      for (j = i + 1; j < 4; j++) {
        gt_ensure(
                  gt_clustered_set_union_find_cluster_num(cs, i, err) ==
                  gt_clustered_set_union_find_cluster_num(cs, j, err));
      }
    }
    gt_clustered_set_union_find_delete(cs, err);
  }

  if (!had_err) {
    cs = gt_clustered_set_union_find_new(CLUSTERED_SET_UNION_FIND_TEST_SIZE,
                                         err);

    for (i = 0; !had_err && i < CLUSTERED_SET_UNION_FIND_TEST_SIZE; i++) {
      gt_ensure(
                gt_clustered_set_union_find_num_of_elements(cs, err) ==
                gt_clustered_set_union_find_cluster_num(cs, i, err));
    }
    for (i = 1;!had_err && i < CLUSTERED_SET_UNION_FIND_TEST_SIZE; i++) {
      gt_clustered_set_union_find_merge_clusters(cs, 0, i, err);
    }

    for (i = 0; !had_err && i < CLUSTERED_SET_UNION_FIND_TEST_SIZE; i++) {
      gt_ensure(
                gt_clustered_set_union_find_cluster_num(cs, i, err) == 0);
    }
    gt_clustered_set_union_find_delete(cs, err);
  }

  return had_err;
}

// Assembly:
subq $0x68, %rsp
movq %rdi, 0x60(%rsp)
movl $0x0, 0x5c(%rsp)
movl $0x0, 0x58(%rsp)
movl $0x0, 0x54(%rsp)
movq $0x0, 0x48(%rsp)
movq 0x60(%rsp), %rsi
movl $0x1, %edi
callq 0x48c9d0
movq %rax, 0x48(%rsp)
cmpl $0x0, 0x5c(%rsp)
jne 0x48cb31
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x48c170
movq %rax, 0x40(%rsp)
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rdx
xorl %eax, %eax
movl %eax, %esi
callq 0x48c1e0
movq %rax, %rcx
movq 0x40(%rsp), %rax
cmpq %rcx, %rax
je 0x48cb2f
movq 0x60(%rsp), %rdi
leaq 0xa2af5(%rip), %rsi     # 0x52f5fa
leaq 0x1257d0(%rip), %rdx    # 0x5b22dc
leaq 0x125835(%rip), %rcx    # 0x5b2348
leaq 0x125669(%rip), %r8     # 0x5b2183
movl $0x148, %r9d            # imm = 0x148
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48cb31
jmp 0x48cb33
jmp 0x48cb35
cmpl $0x0, 0x5c(%rsp)
jne 0x48cb89
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x48c100
cmpq $0x0, %rax
je 0x48cb87
movq 0x60(%rsp), %rdi
leaq 0xa2a9d(%rip), %rsi     # 0x52f5fa
leaq 0x12580a(%rip), %rdx    # 0x5b236e
leaq 0x1257dd(%rip), %rcx    # 0x5b2348
leaq 0x125611(%rip), %r8     # 0x5b2183
movl $0x14a, %r9d            # imm = 0x14A
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48cb89
jmp 0x48cb8b
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x48c0a0
cmpl $0x0, 0x5c(%rsp)
jne 0x48cd0a
movq 0x60(%rsp), %rsi
movl $0x2, %edi
callq 0x48c9d0
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rcx
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x48c290
cmpl $0x0, 0x5c(%rsp)
jne 0x48cc25
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x48c100
cmpq $0x1, %rax
je 0x48cc23
movq 0x60(%rsp), %rdi
leaq 0xa2a01(%rip), %rsi     # 0x52f5fa
leaq 0x1257a8(%rip), %rdx    # 0x5b23a8
leaq 0x125741(%rip), %rcx    # 0x5b2348
leaq 0x125575(%rip), %r8     # 0x5b2183
movl $0x152, %r9d            # imm = 0x152
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48cc25
jmp 0x48cc27
jmp 0x48cc29
cmpl $0x0, 0x5c(%rsp)
jne 0x48cca1
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rdx
xorl %eax, %eax
movl %eax, %esi
callq 0x48c1e0
movq %rax, 0x38(%rsp)
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rdx
movl $0x1, %esi
callq 0x48c1e0
movq %rax, %rcx
movq 0x38(%rsp), %rax
cmpq %rcx, %rax
je 0x48cc9f
movq 0x60(%rsp), %rdi
leaq 0xa2985(%rip), %rsi     # 0x52f5fa
leaq 0x125766(%rip), %rdx    # 0x5b23e2
leaq 0x1256c5(%rip), %rcx    # 0x5b2348
leaq 0x1254f9(%rip), %r8     # 0x5b2183
movl $0x155, %r9d            # imm = 0x155
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48cca1
jmp 0x48cca3
jmp 0x48cca5
cmpl $0x0, 0x5c(%rsp)
jne 0x48ccf9
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x48c100
cmpq $0x1, %rax
je 0x48ccf7
movq 0x60(%rsp), %rdi
leaq 0xa292d(%rip), %rsi     # 0x52f5fa
leaq 0x1256d4(%rip), %rdx    # 0x5b23a8
leaq 0x12566d(%rip), %rcx    # 0x5b2348
leaq 0x1254a1(%rip), %r8     # 0x5b2183
movl $0x157, %r9d            # imm = 0x157
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48ccf9
jmp 0x48ccfb
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x48c0a0
cmpl $0x0, 0x5c(%rsp)
jne 0x48cf34
movq 0x60(%rsp), %rsi
movl $0x3, %edi
callq 0x48c9d0
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rcx
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x48c290
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rcx
movl $0x1, %esi
movl $0x2, %edx
callq 0x48c290
cmpl $0x0, 0x5c(%rsp)
jne 0x48cdae
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x48c100
cmpq $0x1, %rax
je 0x48cdac
movq 0x60(%rsp), %rdi
leaq 0xa2878(%rip), %rsi     # 0x52f5fa
leaq 0x12561f(%rip), %rdx    # 0x5b23a8
leaq 0x1255b8(%rip), %rcx    # 0x5b2348
leaq 0x1253ec(%rip), %r8     # 0x5b2183
movl $0x162, %r9d            # imm = 0x162
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48cdae
jmp 0x48cdb0
jmp 0x48cdb2
cmpl $0x0, 0x5c(%rsp)
jne 0x48ce2a
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rdx
xorl %eax, %eax
movl %eax, %esi
callq 0x48c1e0
movq %rax, 0x30(%rsp)
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rdx
movl $0x1, %esi
callq 0x48c1e0
movq %rax, %rcx
movq 0x30(%rsp), %rax
cmpq %rcx, %rax
je 0x48ce28
movq 0x60(%rsp), %rdi
leaq 0xa27fc(%rip), %rsi     # 0x52f5fa
leaq 0x1255dd(%rip), %rdx    # 0x5b23e2
leaq 0x12553c(%rip), %rcx    # 0x5b2348
leaq 0x125370(%rip), %r8     # 0x5b2183
movl $0x165, %r9d            # imm = 0x165
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48ce2a
jmp 0x48ce2c
jmp 0x48ce2e
cmpl $0x0, 0x5c(%rsp)
jne 0x48cea6
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rdx
xorl %eax, %eax
movl %eax, %esi
callq 0x48c1e0
movq %rax, 0x28(%rsp)
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rdx
movl $0x2, %esi
callq 0x48c1e0
movq %rax, %rcx
movq 0x28(%rsp), %rax
cmpq %rcx, %rax
je 0x48cea4
movq 0x60(%rsp), %rdi
leaq 0xa2780(%rip), %rsi     # 0x52f5fa
leaq 0x1255cc(%rip), %rdx    # 0x5b244d
leaq 0x1254c0(%rip), %rcx    # 0x5b2348
leaq 0x1252f4(%rip), %r8     # 0x5b2183
movl $0x169, %r9d            # imm = 0x169
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48cea6
jmp 0x48cea8
jmp 0x48ceaa
cmpl $0x0, 0x5c(%rsp)
jne 0x48cf23
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rdx
movl $0x1, %esi
callq 0x48c1e0
movq %rax, 0x20(%rsp)
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rdx
movl $0x2, %esi
callq 0x48c1e0
movq %rax, %rcx
movq 0x20(%rsp), %rax
cmpq %rcx, %rax
je 0x48cf21
movq 0x60(%rsp), %rdi
leaq 0xa2703(%rip), %rsi     # 0x52f5fa
leaq 0x1255ba(%rip), %rdx    # 0x5b24b8
leaq 0x125443(%rip), %rcx    # 0x5b2348
leaq 0x125277(%rip), %r8     # 0x5b2183
movl $0x16d, %r9d            # imm = 0x16D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48cf23
jmp 0x48cf25
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x48c0a0
cmpl $0x0, 0x5c(%rsp)
jne 0x48d0cb
movq 0x60(%rsp), %rsi
movl $0x4, %edi
callq 0x48c9d0
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rcx
xorl %eax, %eax
movl %eax, %esi
movl $0x1, %edx
callq 0x48c290
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rcx
movl $0x2, %esi
movl $0x3, %edx
callq 0x48c290
cmpl $0x0, 0x5c(%rsp)
jne 0x48cfd8
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x48c100
cmpq $0x2, %rax
je 0x48cfd6
movq 0x60(%rsp), %rdi
leaq 0xa264e(%rip), %rsi     # 0x52f5fa
leaq 0x125570(%rip), %rdx    # 0x5b2523
leaq 0x12538e(%rip), %rcx    # 0x5b2348
leaq 0x1251c2(%rip), %r8     # 0x5b2183
movl $0x178, %r9d            # imm = 0x178
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48cfd8
jmp 0x48cfda
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rcx
xorl %eax, %eax
movl %eax, %esi
movl $0x2, %edx
callq 0x48c290
movl $0x0, 0x58(%rsp)
cmpl $0x3, 0x58(%rsp)
jge 0x48d0bc
movl 0x58(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x54(%rsp)
cmpl $0x4, 0x54(%rsp)
jge 0x48d0aa
jmp 0x48d01d
cmpl $0x0, 0x5c(%rsp)
jne 0x48d096
movq 0x48(%rsp), %rdi
movslq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
callq 0x48c1e0
movq %rax, 0x18(%rsp)
movq 0x48(%rsp), %rdi
movslq 0x54(%rsp), %rsi
movq 0x60(%rsp), %rdx
callq 0x48c1e0
movq %rax, %rcx
movq 0x18(%rsp), %rax
cmpq %rcx, %rax
je 0x48d094
movq 0x60(%rsp), %rdi
leaq 0xa2590(%rip), %rsi     # 0x52f5fa
leaq 0x1254ec(%rip), %rdx    # 0x5b255d
leaq 0x1252d0(%rip), %rcx    # 0x5b2348
leaq 0x125104(%rip), %r8     # 0x5b2183
movl $0x180, %r9d            # imm = 0x180
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48d096
jmp 0x48d098
jmp 0x48d09a
movl 0x54(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x54(%rsp)
jmp 0x48d010
jmp 0x48d0ac
movl 0x58(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x58(%rsp)
jmp 0x48cffa
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x48c0a0
cmpl $0x0, 0x5c(%rsp)
jne 0x48d2a4
movq 0x60(%rsp), %rsi
movl $0x400, %edi            # imm = 0x400
callq 0x48c9d0
movq %rax, 0x48(%rsp)
movl $0x0, 0x58(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x5c(%rsp)
movb %al, 0x17(%rsp)
jne 0x48d10e
cmpl $0x400, 0x58(%rsp)      # imm = 0x400
setl %al
movb %al, 0x17(%rsp)
movb 0x17(%rsp), %al
testb $0x1, %al
jne 0x48d11b
jmp 0x48d1a5
jmp 0x48d11d
cmpl $0x0, 0x5c(%rsp)
jne 0x48d191
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x48c170
movq %rax, 0x8(%rsp)
movq 0x48(%rsp), %rdi
movslq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
callq 0x48c1e0
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
je 0x48d18f
movq 0x60(%rsp), %rdi
leaq 0xa2495(%rip), %rsi     # 0x52f5fa
leaq 0x12545c(%rip), %rdx    # 0x5b25c8
leaq 0x1251d5(%rip), %rcx    # 0x5b2348
leaq 0x125009(%rip), %r8     # 0x5b2183
movl $0x18d, %r9d            # imm = 0x18D
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48d191
jmp 0x48d193
jmp 0x48d195
movl 0x58(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x58(%rsp)
jmp 0x48d0f2
movl $0x1, 0x58(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x5c(%rsp)
movb %al, 0x7(%rsp)
jne 0x48d1c9
cmpl $0x400, 0x58(%rsp)      # imm = 0x400
setl %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x48d1d3
jmp 0x48d1f8
movq 0x48(%rsp), %rdi
movslq 0x58(%rsp), %rdx
movq 0x60(%rsp), %rcx
xorl %eax, %eax
movl %eax, %esi
callq 0x48c290
movl 0x58(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x58(%rsp)
jmp 0x48d1ad
movl $0x0, 0x58(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x5c(%rsp)
movb %al, 0x6(%rsp)
jne 0x48d21c
cmpl $0x400, 0x58(%rsp)      # imm = 0x400
setl %al
movb %al, 0x6(%rsp)
movb 0x6(%rsp), %al
testb $0x1, %al
jne 0x48d226
jmp 0x48d295
jmp 0x48d228
cmpl $0x0, 0x5c(%rsp)
jne 0x48d281
movq 0x48(%rsp), %rdi
movslq 0x58(%rsp), %rsi
movq 0x60(%rsp), %rdx
callq 0x48c1e0
cmpq $0x0, %rax
je 0x48d27f
movq 0x60(%rsp), %rdi
leaq 0xa23a5(%rip), %rsi     # 0x52f5fa
leaq 0x1253d8(%rip), %rdx    # 0x5b2634
leaq 0x1250e5(%rip), %rcx    # 0x5b2348
leaq 0x124f19(%rip), %r8     # 0x5b2183
movl $0x195, %r9d            # imm = 0x195
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x5c(%rsp) # imm = 0xFFFFFFFF
jmp 0x48d281
jmp 0x48d283
jmp 0x48d285
movl 0x58(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x58(%rsp)
jmp 0x48d200
movq 0x48(%rsp), %rdi
movq 0x60(%rsp), %rsi
callq 0x48c0a0
movl 0x5c(%rsp), %eax
addq $0x68, %rsp
retq
nopl (%rax)