// File: Manca[P]algorithms2/./assignment1.hpp
// Function: assignment1::prims_algorithm::test1()
bool test1()
        {
            // test case 1
            Graph test_g;
            test_g[1] = std::vector<Edge>
            {std::make_tuple(1, 2, 5),
            std::make_tuple(1, 3, 1),
            std::make_tuple(1, 4, 2)
            };
            test_g[2] = std::vector<Edge>
            {std::make_tuple(2, 1, 5),
            std::make_tuple(2, 4, 4)
            };
            test_g[3] = std::vector<Edge>
            {std::make_tuple(3, 1, 1),
            std::make_tuple(3, 4, 3)
            };
            test_g[4] = std::vector<Edge>
            {std::make_tuple(4, 1, 2),
            std::make_tuple(4, 2, 4),
            std::make_tuple(4, 3, 3)
            };

            assert(prims_algorithm(test_g) == 7);

            return true;
        }

// Assembly:
subq $0x258, %rsp            # imm = 0x258
leaq 0x228(%rsp), %rdi
callq 0x10820
movl $0x1, 0x1d8(%rsp)
movl $0x2, 0x1d4(%rsp)
movl $0x5, 0x1d0(%rsp)
leaq 0x1dc(%rsp), %rdi
leaq 0x1d8(%rsp), %rsi
leaq 0x1d4(%rsp), %rdx
leaq 0x1d0(%rsp), %rcx
callq 0x10830
jmp 0x437c
leaq 0x1e8(%rsp), %rdi
movl $0x1, 0x1c0(%rsp)
movl $0x3, 0x1bc(%rsp)
movl $0x1, 0x1b8(%rsp)
leaq 0x1c0(%rsp), %rsi
leaq 0x1bc(%rsp), %rdx
leaq 0x1b8(%rsp), %rcx
callq 0x10830
jmp 0x43c4
leaq 0x1f4(%rsp), %rdi
movl $0x1, 0x1b4(%rsp)
movl $0x4, 0x1b0(%rsp)
movl $0x2, 0x1ac(%rsp)
leaq 0x1b4(%rsp), %rsi
leaq 0x1b0(%rsp), %rdx
leaq 0x1ac(%rsp), %rcx
callq 0x10830
jmp 0x440c
leaq 0x1dc(%rsp), %rax
movq %rax, 0x200(%rsp)
movq $0x3, 0x208(%rsp)
leaq 0x1ab(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0x10870
movq 0x60(%rsp), %rcx
movq 0x200(%rsp), %rsi
movq 0x208(%rsp), %rdx
leaq 0x210(%rsp), %rdi
callq 0x10880
jmp 0x445e
movl $0x1, 0x1a4(%rsp)
leaq 0x228(%rsp), %rdi
leaq 0x1a4(%rsp), %rsi
callq 0x10910
movq %rax, 0x58(%rsp)
jmp 0x4485
movq 0x58(%rsp), %rdi
leaq 0x210(%rsp), %rsi
movq %rsi, 0x50(%rsp)
callq 0x10a00
movq 0x50(%rsp), %rdi
callq 0x10760
leaq 0x1ab(%rsp), %rdi
callq 0x10a40
movl $0x2, 0x15c(%rsp)
movl $0x1, 0x158(%rsp)
movl $0x5, 0x154(%rsp)
leaq 0x160(%rsp), %rdi
leaq 0x15c(%rsp), %rsi
leaq 0x158(%rsp), %rdx
leaq 0x154(%rsp), %rcx
callq 0x10830
jmp 0x44fb
leaq 0x16c(%rsp), %rdi
movl $0x2, 0x150(%rsp)
movl $0x4, 0x14c(%rsp)
movl $0x4, 0x148(%rsp)
leaq 0x150(%rsp), %rsi
leaq 0x14c(%rsp), %rdx
leaq 0x148(%rsp), %rcx
callq 0x10830
jmp 0x4543
leaq 0x160(%rsp), %rax
movq %rax, 0x178(%rsp)
movq $0x2, 0x180(%rsp)
leaq 0x147(%rsp), %rdi
movq %rdi, 0x48(%rsp)
callq 0x10870
movq 0x48(%rsp), %rcx
movq 0x178(%rsp), %rsi
movq 0x180(%rsp), %rdx
leaq 0x188(%rsp), %rdi
callq 0x10880
jmp 0x4595
movl $0x2, 0x140(%rsp)
leaq 0x228(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x10910
movq %rax, 0x40(%rsp)
jmp 0x45bc
movq 0x40(%rsp), %rdi
leaq 0x188(%rsp), %rsi
movq %rsi, 0x38(%rsp)
callq 0x10a00
movq 0x38(%rsp), %rdi
callq 0x10760
leaq 0x147(%rsp), %rdi
callq 0x10a40
movl $0x3, 0xfc(%rsp)
movl $0x1, 0xf8(%rsp)
movl $0x1, 0xf4(%rsp)
leaq 0x100(%rsp), %rdi
leaq 0xfc(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
leaq 0xf4(%rsp), %rcx
callq 0x10830
jmp 0x4632
leaq 0x10c(%rsp), %rdi
movl $0x3, 0xf0(%rsp)
movl $0x4, 0xec(%rsp)
movl $0x3, 0xe8(%rsp)
leaq 0xf0(%rsp), %rsi
leaq 0xec(%rsp), %rdx
leaq 0xe8(%rsp), %rcx
callq 0x10830
jmp 0x467a
leaq 0x100(%rsp), %rax
movq %rax, 0x118(%rsp)
movq $0x2, 0x120(%rsp)
leaq 0xe7(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0x10870
movq 0x30(%rsp), %rcx
movq 0x118(%rsp), %rsi
movq 0x120(%rsp), %rdx
leaq 0x128(%rsp), %rdi
callq 0x10880
jmp 0x46cc
movl $0x3, 0xe0(%rsp)
leaq 0x228(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x10910
movq %rax, 0x28(%rsp)
jmp 0x46f3
movq 0x28(%rsp), %rdi
leaq 0x128(%rsp), %rsi
movq %rsi, 0x20(%rsp)
callq 0x10a00
movq 0x20(%rsp), %rdi
callq 0x10760
leaq 0xe7(%rsp), %rdi
callq 0x10a40
movl $0x4, 0x90(%rsp)
movl $0x1, 0x8c(%rsp)
movl $0x2, 0x88(%rsp)
leaq 0x94(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x8c(%rsp), %rdx
leaq 0x88(%rsp), %rcx
callq 0x10830
jmp 0x4769
leaq 0xa0(%rsp), %rdi
movl $0x4, 0x84(%rsp)
movl $0x2, 0x80(%rsp)
movl $0x4, 0x7c(%rsp)
leaq 0x84(%rsp), %rsi
leaq 0x80(%rsp), %rdx
leaq 0x7c(%rsp), %rcx
callq 0x10830
jmp 0x47ab
leaq 0xac(%rsp), %rdi
movl $0x4, 0x78(%rsp)
movl $0x3, 0x74(%rsp)
movl $0x3, 0x70(%rsp)
leaq 0x78(%rsp), %rsi
leaq 0x74(%rsp), %rdx
leaq 0x70(%rsp), %rcx
callq 0x10830
jmp 0x47e1
leaq 0x94(%rsp), %rax
movq %rax, 0xb8(%rsp)
movq $0x3, 0xc0(%rsp)
leaq 0x6f(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x10870
movq 0x18(%rsp), %rcx
movq 0xb8(%rsp), %rsi
movq 0xc0(%rsp), %rdx
leaq 0xc8(%rsp), %rdi
callq 0x10880
jmp 0x4830
movl $0x4, 0x68(%rsp)
leaq 0x228(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x10910
movq %rax, 0x10(%rsp)
jmp 0x4851
movq 0x10(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movq %rsi, (%rsp)
callq 0x10a00
movq (%rsp), %rdi
callq 0x10760
leaq 0x6f(%rsp), %rdi
callq 0x10a40
leaq 0x228(%rsp), %rdi
callq 0x3f00
movq %rax, 0x8(%rsp)
jmp 0x488e
movq 0x8(%rsp), %rax
cmpq $0x7, %rax
jne 0x489e
jmp 0x49f1
leaq 0x2b8e3(%rip), %rdi     # 0x30188
leaq 0x2b835(%rip), %rsi     # 0x300e1
movl $0x101, %edx            # imm = 0x101
leaq 0x2b8ed(%rip), %rcx     # 0x301a5
callq 0x3200
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x4a0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x490d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
leaq 0x210(%rsp), %rdi
callq 0x10760
leaq 0x1ab(%rsp), %rdi
callq 0x10a40
jmp 0x4a0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x4956
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
leaq 0x188(%rsp), %rdi
callq 0x10760
leaq 0x147(%rsp), %rdi
callq 0x10a40
jmp 0x4a0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x499f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
leaq 0x128(%rsp), %rdi
callq 0x10760
leaq 0xe7(%rsp), %rdi
callq 0x10a40
jmp 0x4a0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
jmp 0x49e5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x1c8(%rsp)
movl %eax, 0x1c4(%rsp)
leaq 0xc8(%rsp), %rdi
callq 0x10760
leaq 0x6f(%rsp), %rdi
callq 0x10a40
jmp 0x4a0a
leaq 0x228(%rsp), %rdi
callq 0x10a50
movb $0x1, %al
andb $0x1, %al
addq $0x258, %rsp            # imm = 0x258
retq
leaq 0x228(%rsp), %rdi
callq 0x10a50
movq 0x1c8(%rsp), %rdi
callq 0x3460
nopw %cs:(%rax,%rax)