// File: /workspace/github_cpp_makefile_star2_O2/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 %r15
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rsp, %rbx
pushq $0xa
popq %rsi
movq %rbx, %rdi
callq 0x73a0
movq %rbx, %rdi
xorl %esi, %esi
callq 0x740e
testl %eax, %eax
jne 0x31f5
movq %rsp, %rdi
pushq $0x9
popq %rsi
callq 0x740e
cmpl $0x9, %eax
jne 0x3211
movq %rsp, %rbx
pushq $0x9
popq %rbp
movq %rbx, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x741e
movq %rbx, %rdi
movl %ebp, %esi
callq 0x740e
testl %eax, %eax
jne 0x322d
cmpl $0x9, 0x10(%rsp)
jne 0x3249
movq %rsp, %rbx
pushq $0x9
popq %rbp
pushq $0x3
popq %rdx
movq %rbx, %rdi
movl %ebp, %esi
callq 0x741e
movq %rbx, %rdi
movl %ebp, %esi
callq 0x740e
testl %eax, %eax
jne 0x3265
cmpl $0x8, 0x10(%rsp)
jne 0x3281
movq %rsp, %rbx
pushq $0x4
popq %rbp
pushq $0x5
popq %r14
movq %rbx, %rdi
movl %ebp, %esi
movl %r14d, %edx
callq 0x741e
pushq $0x9
popq %r15
movq %rbx, %rdi
movl %ebp, %esi
movl %r15d, %edx
callq 0x741e
pushq $0x7
popq %rdx
movq %rbx, %rdi
movl %r14d, %esi
callq 0x741e
movq %rbx, %rdi
movl %r15d, %esi
callq 0x740e
cmpl $0x4, %eax
jne 0x329a
movq %rsp, %rdi
pushq $0x3
popq %rsi
callq 0x740e
cmpl $0x4, %eax
jne 0x32b3
movq %rsp, %rdi
xorl %esi, %esi
callq 0x740e
cmpl $0x4, %eax
jne 0x32cc
movq %rsp, %rbx
pushq $0x3
popq %rsi
pushq $0x4
popq %rdx
movq %rbx, %rdi
callq 0x741e
cmpl $0x5, 0x10(%rbx)
jne 0x32e5
movq %rsp, %rbx
pushq $0x7
popq %rdx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x741e
cmpl $0x5, 0x10(%rbx)
jne 0x32fe
movq %rsp, %rdi
callq 0x746c
movb $0x1, %al
addq $0x18, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0xa0cd(%rip), %rdi      # 0xd2c9
leaq 0xa0d6(%rip), %rsi      # 0xd2d9
leaq 0xa0e3(%rip), %rcx      # 0xd2ed
pushq $0x5c
jmp 0x3315
leaq 0xa0f6(%rip), %rdi      # 0xd30e
leaq 0xa0ba(%rip), %rsi      # 0xd2d9
leaq 0xa0c7(%rip), %rcx      # 0xd2ed
pushq $0x5d
jmp 0x3315
leaq 0xa0ea(%rip), %rdi      # 0xd31e
leaq 0xa09e(%rip), %rsi      # 0xd2d9
leaq 0xa0ab(%rip), %rcx      # 0xd2ed
pushq $0x60
jmp 0x3315
leaq 0xa0de(%rip), %rdi      # 0xd32e
leaq 0xa082(%rip), %rsi      # 0xd2d9
leaq 0xa08f(%rip), %rcx      # 0xd2ed
pushq $0x61
jmp 0x3315
leaq 0xa0b2(%rip), %rdi      # 0xd31e
leaq 0xa066(%rip), %rsi      # 0xd2d9
leaq 0xa073(%rip), %rcx      # 0xd2ed
pushq $0x64
jmp 0x3315
leaq 0xa0b6(%rip), %rdi      # 0xd33e
leaq 0xa04a(%rip), %rsi      # 0xd2d9
leaq 0xa057(%rip), %rcx      # 0xd2ed
pushq $0x65
jmp 0x3315
leaq 0xa0ad(%rip), %rdi      # 0xd34e
leaq 0xa031(%rip), %rsi      # 0xd2d9
leaq 0xa03e(%rip), %rcx      # 0xd2ed
pushq $0x6a
jmp 0x3315
leaq 0xa0a4(%rip), %rdi      # 0xd35e
leaq 0xa018(%rip), %rsi      # 0xd2d9
leaq 0xa025(%rip), %rcx      # 0xd2ed
pushq $0x6b
jmp 0x3315
leaq 0xa09b(%rip), %rdi      # 0xd36e
leaq 0x9fff(%rip), %rsi      # 0xd2d9
leaq 0xa00c(%rip), %rcx      # 0xd2ed
pushq $0x6c
jmp 0x3315
leaq 0xa092(%rip), %rdi      # 0xd37e
leaq 0x9fe6(%rip), %rsi      # 0xd2d9
leaq 0x9ff3(%rip), %rcx      # 0xd2ed
pushq $0x6e
jmp 0x3315
leaq 0xa079(%rip), %rdi      # 0xd37e
leaq 0x9fcd(%rip), %rsi      # 0xd2d9
leaq 0x9fda(%rip), %rcx      # 0xd2ed
pushq $0x70
popq %rdx
callq 0x21b0