// File: /workspace/github_cpp_makefile_star2_O3/Manca[P]algorithms2/./lib/UnionFind.hpp
// Function: DataStructures::TestCase1()
bool TestCase1()
    {
        // test on 10 elements starting from 0
        UnionFind uf(10);

        assert(uf.Find(0) == 0);
        assert(uf.Find(9) == 9);

        uf.Union(0, 9);
        assert(uf.Find(9) == 0);
        assert(uf.count() == 9);

        uf.Union(9, 3);
        assert(uf.Find(9) == 0);
        assert(uf.count() == 8);

        uf.Union(4, 5);
        uf.Union(4, 9);
        uf.Union(5, 7);
        assert(uf.Find(9) == 4);
        assert(uf.Find(3) == 4);
        assert(uf.Find(0) == 4);
        uf.Union(3, 4);
        assert(uf.count() == 5);
        uf.Union(0, 7);
        assert(uf.count() == 5);

        return true;
    }

// Assembly:
pushq %rbp
pushq %rbx
subq $0x18, %rsp
movq %rsp, %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x8ab6
xorl %ecx, %ecx
movq (%rbx), %rax
movl %ecx, %edx
movslq %ecx, %rsi
movl (%rax,%rsi,4), %ecx
cmpl %esi, %ecx
jne 0x348d
testl %edx, %edx
jne 0x3603
movl $0x9, %ecx
movl %ecx, %edx
movslq %ecx, %rsi
movl (%rax,%rsi,4), %ecx
cmpl %esi, %ecx
jne 0x34a6
cmpl $0x9, %edx
jne 0x3622
movq %rsp, %rbx
movl $0x9, %ebp
movq %rbx, %rdi
xorl %esi, %esi
movl $0x9, %edx
callq 0x8bb0
movq (%rbx), %rax
movl %ebp, %ecx
movslq %ebp, %rdx
movl (%rax,%rdx,4), %ebp
cmpl %edx, %ebp
jne 0x34d5
testl %ecx, %ecx
jne 0x3641
cmpl $0x9, 0x10(%rsp)
jne 0x3660
movq %rsp, %rbx
movl $0x9, %ebp
movq %rbx, %rdi
movl $0x9, %esi
movl $0x3, %edx
callq 0x8bb0
movq (%rbx), %rax
movl %ebp, %ecx
movslq %ebp, %rdx
movl (%rax,%rdx,4), %ebp
cmpl %edx, %ebp
jne 0x3511
testl %ecx, %ecx
jne 0x367f
cmpl $0x8, 0x10(%rsp)
jne 0x369e
movq %rsp, %rbx
movq %rbx, %rdi
movl $0x4, %esi
movl $0x5, %edx
callq 0x8bb0
movl $0x9, %ebp
movq %rbx, %rdi
movl $0x4, %esi
movl $0x9, %edx
callq 0x8bb0
movq %rbx, %rdi
movl $0x5, %esi
movl $0x7, %edx
callq 0x8bb0
movq (%rbx), %rax
movl %ebp, %ecx
movslq %ebp, %rdx
movl (%rax,%rdx,4), %ebp
cmpl %edx, %ebp
jne 0x3571
cmpl $0x4, %ecx
jne 0x36bd
movl $0x3, %ecx
movl %ecx, %edx
movslq %ecx, %rsi
movl (%rax,%rsi,4), %ecx
cmpl %esi, %ecx
jne 0x358b
cmpl $0x4, %edx
jne 0x36dc
xorl %ecx, %ecx
movl %ecx, %edx
movslq %ecx, %rsi
movl (%rax,%rsi,4), %ecx
cmpl %esi, %ecx
jne 0x35a2
cmpl $0x4, %edx
jne 0x36fb
movq %rsp, %rbx
movq %rbx, %rdi
movl $0x3, %esi
movl $0x4, %edx
callq 0x8bb0
cmpl $0x5, 0x10(%rbx)
jne 0x371a
movq %rsp, %rbx
movq %rbx, %rdi
xorl %esi, %esi
movl $0x7, %edx
callq 0x8bb0
cmpl $0x5, 0x10(%rbx)
jne 0x3739
movq %rsp, %rdi
callq 0x8bf8
movb $0x1, %al
addq $0x18, %rsp
popq %rbx
popq %rbp
retq
leaq 0xad0f(%rip), %rdi      # 0xe319
leaq 0xad18(%rip), %rsi      # 0xe329
leaq 0xad25(%rip), %rcx      # 0xe33d
movl $0x5c, %edx
callq 0x2170
leaq 0xad35(%rip), %rdi      # 0xe35e
leaq 0xacf9(%rip), %rsi      # 0xe329
leaq 0xad06(%rip), %rcx      # 0xe33d
movl $0x5d, %edx
callq 0x2170
leaq 0xad26(%rip), %rdi      # 0xe36e
leaq 0xacda(%rip), %rsi      # 0xe329
leaq 0xace7(%rip), %rcx      # 0xe33d
movl $0x60, %edx
callq 0x2170
leaq 0xad17(%rip), %rdi      # 0xe37e
leaq 0xacbb(%rip), %rsi      # 0xe329
leaq 0xacc8(%rip), %rcx      # 0xe33d
movl $0x61, %edx
callq 0x2170
leaq 0xace8(%rip), %rdi      # 0xe36e
leaq 0xac9c(%rip), %rsi      # 0xe329
leaq 0xaca9(%rip), %rcx      # 0xe33d
movl $0x64, %edx
callq 0x2170
leaq 0xace9(%rip), %rdi      # 0xe38e
leaq 0xac7d(%rip), %rsi      # 0xe329
leaq 0xac8a(%rip), %rcx      # 0xe33d
movl $0x65, %edx
callq 0x2170
leaq 0xacda(%rip), %rdi      # 0xe39e
leaq 0xac5e(%rip), %rsi      # 0xe329
leaq 0xac6b(%rip), %rcx      # 0xe33d
movl $0x6a, %edx
callq 0x2170
leaq 0xaccb(%rip), %rdi      # 0xe3ae
leaq 0xac3f(%rip), %rsi      # 0xe329
leaq 0xac4c(%rip), %rcx      # 0xe33d
movl $0x6b, %edx
callq 0x2170
leaq 0xacbc(%rip), %rdi      # 0xe3be
leaq 0xac20(%rip), %rsi      # 0xe329
leaq 0xac2d(%rip), %rcx      # 0xe33d
movl $0x6c, %edx
callq 0x2170
leaq 0xacad(%rip), %rdi      # 0xe3ce
leaq 0xac01(%rip), %rsi      # 0xe329
leaq 0xac0e(%rip), %rcx      # 0xe33d
movl $0x6e, %edx
callq 0x2170
leaq 0xac8e(%rip), %rdi      # 0xe3ce
leaq 0xabe2(%rip), %rsi      # 0xe329
leaq 0xabef(%rip), %rcx      # 0xe33d
movl $0x70, %edx
callq 0x2170