// File: porzell[P]PTest/examples/unit_test.cpp
// Function: CanAddToVector5()
P_TEST(CanAddToVector) {
    std::vector<int> vec;
    vec.push_back(3);
    P_ASSERT(vec.size() == 1);
    vec.push_back(5);
    P_ASSERT(vec.size() == 2);
    vec.push_back(4);
    P_ASSERT(vec.size() == 3);
    vec.clear();
    // Assertion will fail.
    P_ASSERT(vec.size() != 0);
    // This will not run.
    printf("You shouldn't see me!\n");
    vec.push_back(4);
    P_ASSERT(vec.size() == 3);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2c0, %rsp            # imm = 0x2C0
leaq -0x18(%rbp), %rdi
movq %rdi, -0x290(%rbp)
callq 0x62d0
movq -0x290(%rbp), %rdi
movl $0x3, -0x1c(%rbp)
leaq -0x1c(%rbp), %rsi
callq 0x62f0
jmp 0x2534
leaq -0x18(%rbp), %rdi
callq 0x6320
subq $0x1, %rax
sete -0x2d(%rbp)
callq 0x2e00
movq %rax, -0x298(%rbp)
jmp 0x2553
movzbl -0x2d(%rbp), %esi
andl $0x1, %esi
leaq 0x6b68(%rip), %rdx      # 0x90c9
leaq 0x6b78(%rip), %r8       # 0x90e0
xorl %eax, %eax
movl %eax, %r9d
leaq -0xa0(%rbp), %rdi
movl $0x8, %ecx
callq 0x6480
jmp 0x2580
movq -0x298(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
xorl %edx, %edx
callq 0x6340
jmp 0x2597
leaq -0xa0(%rbp), %rdi
callq 0x5790
testb $0x1, -0x2d(%rbp)
jne 0x25e6
movl $0x1, -0xa4(%rbp)
jmp 0x2908
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x291a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x5790
jmp 0x291a
movl $0x5, -0xa8(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x62f0
jmp 0x2602
leaq -0x18(%rbp), %rdi
callq 0x6320
subq $0x2, %rax
sete -0xa9(%rbp)
callq 0x2e00
movq %rax, -0x2a0(%rbp)
jmp 0x2624
movzbl -0xa9(%rbp), %esi
andl $0x1, %esi
leaq 0x6a94(%rip), %rdx      # 0x90c9
leaq 0x6ab4(%rip), %r8       # 0x90f0
xorl %eax, %eax
movl %eax, %r9d
leaq -0x120(%rbp), %rdi
movl $0xa, %ecx
callq 0x6480
jmp 0x2654
movq -0x2a0(%rbp), %rdi
leaq -0x120(%rbp), %rsi
xorl %edx, %edx
callq 0x6340
jmp 0x266b
leaq -0x120(%rbp), %rdi
callq 0x5790
testb $0x1, -0xa9(%rbp)
jne 0x26ac
movl $0x1, -0xa4(%rbp)
jmp 0x2908
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x5790
jmp 0x291a
movl $0x4, -0x124(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x124(%rbp), %rsi
callq 0x62f0
jmp 0x26c8
leaq -0x18(%rbp), %rdi
callq 0x6320
subq $0x3, %rax
sete -0x125(%rbp)
callq 0x2e00
movq %rax, -0x2a8(%rbp)
jmp 0x26ea
movzbl -0x125(%rbp), %esi
andl $0x1, %esi
leaq 0x69ce(%rip), %rdx      # 0x90c9
leaq 0x69fe(%rip), %r8       # 0x9100
xorl %eax, %eax
movl %eax, %r9d
leaq -0x198(%rbp), %rdi
movl $0xc, %ecx
callq 0x6480
jmp 0x271a
movq -0x2a8(%rbp), %rdi
leaq -0x198(%rbp), %rsi
xorl %edx, %edx
callq 0x6340
jmp 0x2731
leaq -0x198(%rbp), %rdi
callq 0x5790
testb $0x1, -0x125(%rbp)
jne 0x2772
movl $0x1, -0xa4(%rbp)
jmp 0x2908
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x5790
jmp 0x291a
leaq -0x18(%rbp), %rdi
movq %rdi, -0x2b8(%rbp)
callq 0x65d0
movq -0x2b8(%rbp), %rdi
callq 0x6320
testq %rax, %rax
setne -0x199(%rbp)
callq 0x2e00
movq %rax, -0x2b0(%rbp)
jmp 0x27a6
movzbl -0x199(%rbp), %esi
andl $0x1, %esi
leaq 0x6912(%rip), %rdx      # 0x90c9
leaq 0x6952(%rip), %r8       # 0x9110
xorl %eax, %eax
movl %eax, %r9d
leaq -0x210(%rbp), %rdi
movl $0xf, %ecx
callq 0x6480
jmp 0x27d6
movq -0x2b0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
xorl %edx, %edx
callq 0x6340
jmp 0x27ed
leaq -0x210(%rbp), %rdi
callq 0x5790
testb $0x1, -0x199(%rbp)
jne 0x282e
movl $0x1, -0xa4(%rbp)
jmp 0x2908
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x5790
jmp 0x291a
leaq 0x68eb(%rip), %rdi      # 0x9120
xorl %eax, %eax
callq 0x2040
jmp 0x283e
movl $0x4, -0x214(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x214(%rbp), %rsi
callq 0x62f0
jmp 0x285a
leaq -0x18(%rbp), %rdi
callq 0x6320
subq $0x3, %rax
sete -0x215(%rbp)
callq 0x2e00
movq %rax, -0x2c0(%rbp)
jmp 0x287c
movzbl -0x215(%rbp), %esi
andl $0x1, %esi
leaq 0x683c(%rip), %rdx      # 0x90c9
leaq 0x686c(%rip), %r8       # 0x9100
xorl %eax, %eax
movl %eax, %r9d
leaq -0x288(%rbp), %rdi
movl $0x13, %ecx
callq 0x6480
jmp 0x28ac
movq -0x2c0(%rbp), %rdi
leaq -0x288(%rbp), %rsi
xorl %edx, %edx
callq 0x6340
jmp 0x28c3
leaq -0x288(%rbp), %rdi
callq 0x5790
testb $0x1, -0x215(%rbp)
jne 0x28fe
movl $0x1, -0xa4(%rbp)
jmp 0x2908
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x5790
jmp 0x291a
movl $0x0, -0xa4(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x65f0
addq $0x2c0, %rsp            # imm = 0x2C0
popq %rbp
retq
leaq -0x18(%rbp), %rdi
callq 0x65f0
movq -0x28(%rbp), %rdi
callq 0x2240
nopl (%rax)