// File: /workspace/github_cpp_makefile_star2_O2/eecs280staff[P]unit_test_framework/test/test_special_asserts.cpp
// Function: test_assert_not_equal()
void test_assert_not_equal() {
    cout << "test_assert_not_equal" << endl;

    int i = 42;

    ASSERT_NOT_EQUAL(42, 43);
    ASSERT_NOT_EQUAL(42.5, 42.6);
    ASSERT_NOT_EQUAL(string("spam"), string("egg"));
    ASSERT_NOT_EQUAL(&i, &i + 1);
    ASSERT_NOT_EQUAL(true, false);

    ASSERT_TEST_FAILURE_RAISED(ASSERT_NOT_EQUAL(42, 42));
    ASSERT_TEST_FAILURE_RAISED(ASSERT_NOT_EQUAL(42.5, 42.5));
    ASSERT_TEST_FAILURE_RAISED(
        ASSERT_NOT_EQUAL(string("spam"), string("spam")));
    ASSERT_TEST_FAILURE_RAISED(ASSERT_NOT_EQUAL(&i, &i));
    ASSERT_TEST_FAILURE_RAISED(ASSERT_NOT_EQUAL(true, true));

    ASSERT_TEST_FAILURE_RAISED(ASSERT_NOT_EQUAL(Printable{1}, Printable{1}));
    ASSERT_TEST_FAILURE_RAISED(
        ASSERT_NOT_EQUAL(NotPrintable{2}, NotPrintable{2}));
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x50, %rsp
movq 0x548c(%rip), %rdi      # 0x7fd8
leaq 0x26d0(%rip), %rsi      # 0x5223
callq 0x2140
movq %rax, %rdi
callq 0x2090
pushq $0x2a
popq %rbp
movl %ebp, 0x2c(%rsp)
leaq 0x8(%rsp), %rbx
movl %ebp, (%rbx)
leaq 0x30(%rsp), %r14
movl $0x2b, (%r14)
leaq 0x26b8(%rip), %rcx      # 0x5239
pushq $0x60
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x3d70
movabsq $0x4045400000000000, %r15 # imm = 0x4045400000000000
movq %r15, (%rbx)
movabsq $0x40454ccccccccccd, %rax # imm = 0x40454CCCCCCCCCCD
movq %rax, (%r14)
leaq 0x26a2(%rip), %rcx      # 0x5252
leaq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
pushq $0x61
popq %rdx
callq 0x3e96
leaq 0x24c4(%rip), %rsi      # 0x508d
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x3870
leaq 0x2690(%rip), %rsi      # 0x526f
leaq 0x30(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x3870
leaq 0x267e(%rip), %rcx      # 0x5273
leaq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
pushq $0x62
popq %rdx
callq 0x3fc4
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
callq 0x2080
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x2080
leaq 0x2c(%rsp), %r12
movq %r12, (%r14)
leaq 0x30(%rsp), %rax
movq %rax, (%rbx)
leaq 0x266b(%rip), %rcx      # 0x52a3
leaq 0x8(%rsp), %rbx
leaq 0x30(%rsp), %r14
pushq $0x63
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x40ec
movb $0x1, (%rbx)
movb $0x0, (%r14)
leaq 0x2662(%rip), %rcx      # 0x52c0
leaq 0x8(%rsp), %rbx
leaq 0x30(%rsp), %r14
pushq $0x64
popq %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4214
movl %ebp, (%rbx)
movl %ebp, (%r14)
leaq 0x265c(%rip), %rcx      # 0x52de
leaq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
pushq $0x66
popq %rdx
callq 0x3d70
movq 0x533d(%rip), %rdi      # 0x7fd8
leaq 0x245f(%rip), %rsi      # 0x5101
callq 0x2140
movq %rax, %rdi
callq 0x2090
leaq 0x2860(%rip), %rdi      # 0x5516
leaq 0x245b(%rip), %rsi      # 0x5118
leaq 0x2633(%rip), %rcx      # 0x52f7
pushq $0x66
popq %rdx
callq 0x20c0
jmp 0x2cce
movq %rdx, %rbx
movq %rax, %r14
cmpl $0x1, %ebx
jne 0x323e
movq %r14, %rdi
callq 0x2050
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x3ad6
movq 0x52df(%rip), %rdi      # 0x7fd8
leaq 0x8(%rsp), %rsi
callq 0x2130
movq %rax, %rdi
callq 0x2090
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x2080
callq 0x21e0
movq %r15, (%r14)
leaq 0x30(%rsp), %rsi
movq %r15, (%rsi)
leaq 0x25e5(%rip), %rcx      # 0x5314
leaq 0x8(%rsp), %rdi
pushq $0x67
popq %rdx
callq 0x3e96
movq 0x5295(%rip), %rdi      # 0x7fd8
leaq 0x23b7(%rip), %rsi      # 0x5101
callq 0x2140
movq %rax, %rdi
callq 0x2090
leaq 0x27b8(%rip), %rdi      # 0x5516
leaq 0x23b3(%rip), %rsi      # 0x5118
leaq 0x258b(%rip), %rcx      # 0x52f7
pushq $0x67
jmp 0x2cc6
jmp 0x2d75
movq %rax, %r14
cmpl %ebx, %edx
jne 0x323e
movq %r14, %rdi
callq 0x2050
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x3ad6
movq 0x523c(%rip), %rdi      # 0x7fd8
leaq 0x8(%rsp), %rsi
callq 0x2130
movq %rax, %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x2080
callq 0x21e0
leaq 0x22c9(%rip), %rsi      # 0x508d
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x3870
leaq 0x22b3(%rip), %rsi      # 0x508d
leaq 0x30(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x3870
leaq 0x2541(%rip), %rcx      # 0x5331
leaq 0x8(%rsp), %rdi
leaq 0x30(%rsp), %rsi
pushq $0x69
popq %rdx
callq 0x3fc4
leaq 0x30(%rsp), %rdi
callq 0x2080
leaq 0x8(%rsp), %rdi
callq 0x2080
movq 0x51bb(%rip), %rdi      # 0x7fd8
leaq 0x22dd(%rip), %rsi      # 0x5101
callq 0x2140
movq %rax, %rdi
callq 0x2090
leaq 0x26de(%rip), %rdi      # 0x5516
leaq 0x22d9(%rip), %rsi      # 0x5118
leaq 0x24b1(%rip), %rcx      # 0x52f7
pushq $0x69
jmp 0x2cc6
jmp 0x2e73
movq %rdx, %r15
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x2080
jmp 0x2e67
movq %rdx, %r15
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x2080
jmp 0x2e79
movq %rdx, %r15
movq %rax, %r14
cmpl %ebx, %r15d
jne 0x323e
movq %r14, %rdi
callq 0x2050
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x3ad6
movq 0x513a(%rip), %rdi      # 0x7fd8
leaq 0x8(%rsp), %rsi
callq 0x2130
movq %rax, %rdi
callq 0x2090
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x2080
callq 0x21e0
movq %r12, (%r14)
leaq 0x30(%rsp), %rsi
movq %r12, (%rsi)
leaq 0x248e(%rip), %rcx      # 0x5362
leaq 0x8(%rsp), %rdi
pushq $0x6a
popq %rdx
callq 0x40ec
movq 0x50f0(%rip), %rdi      # 0x7fd8
leaq 0x2212(%rip), %rsi      # 0x5101
callq 0x2140
movq %rax, %rdi
callq 0x2090
leaq 0x2613(%rip), %rdi      # 0x5516
leaq 0x220e(%rip), %rsi      # 0x5118
leaq 0x23e6(%rip), %rcx      # 0x52f7
pushq $0x6a
jmp 0x2cc6
jmp 0x2f1a
movq %rax, %r14
cmpl %ebx, %edx
jne 0x323e
movq %r14, %rdi
callq 0x2050
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x3ad6
movq 0x5097(%rip), %rdi      # 0x7fd8
leaq 0x8(%rsp), %rsi
callq 0x2130
movq %rax, %rdi
callq 0x2090
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x2080
callq 0x21e0
movb $0x1, %al
movb %al, (%r14)
leaq 0x30(%rsp), %rsi
movb %al, (%rsi)
leaq 0x2403(%rip), %rcx      # 0x537b
leaq 0x8(%rsp), %rdi
pushq $0x6b
popq %rdx
callq 0x4214
movq 0x504c(%rip), %rdi      # 0x7fd8
leaq 0x216e(%rip), %rsi      # 0x5101
callq 0x2140
movq %rax, %rdi
callq 0x2090
leaq 0x256f(%rip), %rdi      # 0x5516
leaq 0x216a(%rip), %rsi      # 0x5118
leaq 0x2342(%rip), %rcx      # 0x52f7
pushq $0x6b
jmp 0x2cc6
jmp 0x2fbe
movq %rax, %r14
cmpl %ebx, %edx
jne 0x323e
movq %r14, %rdi
callq 0x2050
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x3ad6
movq 0x4ff3(%rip), %rdi      # 0x7fd8
leaq 0x8(%rsp), %rsi
callq 0x2130
movq %rax, %rdi
callq 0x2090
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x2080
callq 0x21e0
pushq $0x1
popq %rax
movl %eax, (%r14)
leaq 0x30(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x237b(%rip), %rcx      # 0x5398
leaq 0x8(%rsp), %rdi
pushq $0x6d
popq %rdx
callq 0x433a
movq 0x4fa7(%rip), %rdi      # 0x7fd8
leaq 0x20c9(%rip), %rsi      # 0x5101
callq 0x2140
movq %rax, %rdi
callq 0x2090
leaq 0x24ca(%rip), %rdi      # 0x5516
leaq 0x20c5(%rip), %rsi      # 0x5118
leaq 0x229d(%rip), %rcx      # 0x52f7
pushq $0x6d
jmp 0x2cc6
jmp 0x3063
movq %rax, %r14
cmpl %ebx, %edx
jne 0x323e
movq %r14, %rdi
callq 0x2050
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x3ad6
movq 0x4f4e(%rip), %rdi      # 0x7fd8
leaq 0x8(%rsp), %rsi
callq 0x2130
movq %rax, %rdi
callq 0x2090
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0x2080
callq 0x21e0
pushq $0x2
popq %rax
movl %eax, (%r14)
leaq 0x30(%rsp), %rsi
movl %eax, (%rsi)
leaq 0x2303(%rip), %rcx      # 0x53c5
leaq 0x8(%rsp), %rdi
pushq $0x6f
popq %rdx
callq 0x4460
movq 0x4f02(%rip), %rdi      # 0x7fd8
leaq 0x2024(%rip), %rsi      # 0x5101
callq 0x2140
movq %rax, %rdi
callq 0x2090
leaq 0x2425(%rip), %rdi      # 0x5516
leaq 0x2020(%rip), %rsi      # 0x5118
leaq 0x21f8(%rip), %rcx      # 0x52f7
pushq $0x6f
jmp 0x2cc6
jmp 0x3108
movq %rax, %r14
cmpl %ebx, %edx
jne 0x323e
movq %r14, %rdi
callq 0x2050
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x3ad6
movq 0x4ea9(%rip), %rdi      # 0x7fd8
leaq 0x8(%rsp), %rsi
callq 0x2130
movq %rax, %rdi
callq 0x2090
leaq 0x8(%rsp), %rdi
callq 0x2080
callq 0x21e0
addq $0x50, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
jmp 0x316f
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x2080
callq 0x21e0
jmp 0x323e
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x2080
jmp 0x318b
movq %rax, %r14
callq 0x21e0
jmp 0x323e
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x2080
jmp 0x31a7
movq %rax, %r14
callq 0x21e0
jmp 0x323e
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x2080
jmp 0x31c3
movq %rax, %r14
callq 0x21e0
jmp 0x323e
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x2080
jmp 0x31dc
movq %rax, %r14
callq 0x21e0
jmp 0x323e
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x2080
jmp 0x31f5
movq %rax, %r14
callq 0x21e0
jmp 0x323e
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x2080
jmp 0x320e
movq %rax, %r14
callq 0x21e0
jmp 0x323e
movq %rax, %rdi
callq 0x3b3c
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x2080
jmp 0x322f
movq %rax, %r14
leaq 0x8(%rsp), %rdi
callq 0x2080
jmp 0x323e
movq %rax, %r14
movq %r14, %rdi
callq 0x2220