// File: /workspace/github_cpp_makefile_star2_O1/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 0x8a78
xorl %ecx, %ecx
movq (%rbx), %rax
movl %ecx, %edx
movslq %ecx, %rsi
movl (%rax,%rsi,4), %ecx
cmpl %esi, %ecx
jne 0x34a9
testl %edx, %edx
jne 0x361f
movl $0x9, %ecx
movl %ecx, %edx
movslq %ecx, %rsi
movl (%rax,%rsi,4), %ecx
cmpl %esi, %ecx
jne 0x34c2
cmpl $0x9, %edx
jne 0x363e
movq %rsp, %rbx
movl $0x9, %ebp
movq %rbx, %rdi
xorl %esi, %esi
movl $0x9, %edx
callq 0x8b72
movq (%rbx), %rax
movl %ebp, %ecx
movslq %ebp, %rdx
movl (%rax,%rdx,4), %ebp
cmpl %edx, %ebp
jne 0x34f1
testl %ecx, %ecx
jne 0x365d
cmpl $0x9, 0x10(%rsp)
jne 0x367c
movq %rsp, %rbx
movl $0x9, %ebp
movq %rbx, %rdi
movl $0x9, %esi
movl $0x3, %edx
callq 0x8b72
movq (%rbx), %rax
movl %ebp, %ecx
movslq %ebp, %rdx
movl (%rax,%rdx,4), %ebp
cmpl %edx, %ebp
jne 0x352d
testl %ecx, %ecx
jne 0x369b
cmpl $0x8, 0x10(%rsp)
jne 0x36ba
movq %rsp, %rbx
movq %rbx, %rdi
movl $0x4, %esi
movl $0x5, %edx
callq 0x8b72
movl $0x9, %ebp
movq %rbx, %rdi
movl $0x4, %esi
movl $0x9, %edx
callq 0x8b72
movq %rbx, %rdi
movl $0x5, %esi
movl $0x7, %edx
callq 0x8b72
movq (%rbx), %rax
movl %ebp, %ecx
movslq %ebp, %rdx
movl (%rax,%rdx,4), %ebp
cmpl %edx, %ebp
jne 0x358d
cmpl $0x4, %ecx
jne 0x36d9
movl $0x3, %ecx
movl %ecx, %edx
movslq %ecx, %rsi
movl (%rax,%rsi,4), %ecx
cmpl %esi, %ecx
jne 0x35a7
cmpl $0x4, %edx
jne 0x36f8
xorl %ecx, %ecx
movl %ecx, %edx
movslq %ecx, %rsi
movl (%rax,%rsi,4), %ecx
cmpl %esi, %ecx
jne 0x35be
cmpl $0x4, %edx
jne 0x3717
movq %rsp, %rbx
movq %rbx, %rdi
movl $0x3, %esi
movl $0x4, %edx
callq 0x8b72
cmpl $0x5, 0x10(%rbx)
jne 0x3736
movq %rsp, %rbx
movq %rbx, %rdi
xorl %esi, %esi
movl $0x7, %edx
callq 0x8b72
cmpl $0x5, 0x10(%rbx)
jne 0x3755
movq %rsp, %rdi
callq 0x8bba
movb $0x1, %al
addq $0x18, %rsp
popq %rbx
popq %rbp
retq
leaq 0xacf3(%rip), %rdi      # 0xe319
leaq 0xacfc(%rip), %rsi      # 0xe329
leaq 0xad09(%rip), %rcx      # 0xe33d
movl $0x5c, %edx
callq 0x2170
leaq 0xad19(%rip), %rdi      # 0xe35e
leaq 0xacdd(%rip), %rsi      # 0xe329
leaq 0xacea(%rip), %rcx      # 0xe33d
movl $0x5d, %edx
callq 0x2170
leaq 0xad0a(%rip), %rdi      # 0xe36e
leaq 0xacbe(%rip), %rsi      # 0xe329
leaq 0xaccb(%rip), %rcx      # 0xe33d
movl $0x60, %edx
callq 0x2170
leaq 0xacfb(%rip), %rdi      # 0xe37e
leaq 0xac9f(%rip), %rsi      # 0xe329
leaq 0xacac(%rip), %rcx      # 0xe33d
movl $0x61, %edx
callq 0x2170
leaq 0xaccc(%rip), %rdi      # 0xe36e
leaq 0xac80(%rip), %rsi      # 0xe329
leaq 0xac8d(%rip), %rcx      # 0xe33d
movl $0x64, %edx
callq 0x2170
leaq 0xaccd(%rip), %rdi      # 0xe38e
leaq 0xac61(%rip), %rsi      # 0xe329
leaq 0xac6e(%rip), %rcx      # 0xe33d
movl $0x65, %edx
callq 0x2170
leaq 0xacbe(%rip), %rdi      # 0xe39e
leaq 0xac42(%rip), %rsi      # 0xe329
leaq 0xac4f(%rip), %rcx      # 0xe33d
movl $0x6a, %edx
callq 0x2170
leaq 0xacaf(%rip), %rdi      # 0xe3ae
leaq 0xac23(%rip), %rsi      # 0xe329
leaq 0xac30(%rip), %rcx      # 0xe33d
movl $0x6b, %edx
callq 0x2170
leaq 0xaca0(%rip), %rdi      # 0xe3be
leaq 0xac04(%rip), %rsi      # 0xe329
leaq 0xac11(%rip), %rcx      # 0xe33d
movl $0x6c, %edx
callq 0x2170
leaq 0xac91(%rip), %rdi      # 0xe3ce
leaq 0xabe5(%rip), %rsi      # 0xe329
leaq 0xabf2(%rip), %rcx      # 0xe33d
movl $0x6e, %edx
callq 0x2170
leaq 0xac72(%rip), %rdi      # 0xe3ce
leaq 0xabc6(%rip), %rsi      # 0xe329
leaq 0xabd3(%rip), %rcx      # 0xe33d
movl $0x70, %edx
callq 0x2170