// File: /workspace/github_cpp_makefile_star2_O3/pdx-cs-tutors[P]pdp/tests/cll/cll_test.cpp
// Function: CLLTestSuite::expectList(std::initializer_list<int>)
void CLLTestSuite::expectList(std::initializer_list<int> values) {
    if (!rear && values.size() > 0) {
        addFailure(CLLFailure(
            "Missing item(s)",
            call,
            initial,
            values,
            rear
        ));
        return;
    }
    if (values.size() == 0) {
        if (rear) {
            addFailure(CLLFailure(
                "Too many items",
                call,
                initial,
                values,
                rear
            ));
        } else return;
    }
    cll::node* curr = rear->next;
    int count = 0;
    for (auto value : values) {
        if (curr->data != value) {
            addFailure(CLLFailure(
                "Incorrect value(s)",
                call,
                initial,
                values,
                rear
            ));
            return;
        }
        ++count;
        curr = curr->next;
    }
    if (curr != rear->next) {
        addFailure(CLLFailure(
            "Too many items",
            call,
            initial,
            values,
            rear
        ));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x138, %rsp            # imm = 0x138
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
movq 0x78(%rdi), %rax
testq %rax, %rax
je 0xfe50
testq %r15, %r15
je 0xfed0
movq 0x8(%rax), %rax
leaq (,%r15,4), %rcx
xorl %edx, %edx
movq %rax, %rsi
movl (%rsi), %edi
cmpl (%r14,%rdx), %edi
jne 0xff47
movq 0x8(%rsi), %rsi
addq $0x4, %rdx
cmpq %rdx, %rcx
jne 0xfdc0
cmpq %rax, %rsi
je 0xffba
leaq -0x38(%rbp), %r13
movq %r13, -0x10(%r13)
movq 0x58(%rbx), %rsi
movq 0x60(%rbx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r12
movq %r12, %rdi
callq 0xa240
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x688c(%rip), %rsi      # 0x166a3
leaq -0x150(%rbp), %rdi
movq %r12, %rdx
movq %r14, %r8
movq %r15, %r9
callq 0xa530
leaq -0x150(%rbp), %rsi
movq %rbx, %rdi
callq 0xa770
leaq -0x150(%rbp), %rdi
callq 0xaa30
movq -0x48(%rbp), %rdi
jmp 0xffb0
testq %r15, %r15
je 0xffba
leaq -0x98(%rbp), %r13
movq %r13, -0x10(%r13)
movq 0x58(%rbx), %rsi
movq 0x60(%rbx), %rdx
addq %rsi, %rdx
leaq -0xa8(%rbp), %r12
movq %r12, %rdi
callq 0xa240
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x67ff(%rip), %rsi      # 0x16693
leaq -0x150(%rbp), %rdi
movq %r12, %rdx
movq %r14, %r8
movq %r15, %r9
callq 0xa530
leaq -0x150(%rbp), %rsi
movq %rbx, %rdi
callq 0xa770
leaq -0x150(%rbp), %rdi
callq 0xaa30
movq -0xa8(%rbp), %rdi
jmp 0xffb0
leaq -0x78(%rbp), %r12
movq %r12, -0x10(%r12)
movq 0x58(%rbx), %rsi
movq 0x60(%rbx), %rdx
addq %rsi, %rdx
leaq -0x88(%rbp), %r15
movq %r15, %rdi
callq 0xa240
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x679a(%rip), %rsi      # 0x166a3
leaq -0x150(%rbp), %rdi
movq %r15, %rdx
movq %r14, %r8
xorl %r9d, %r9d
callq 0xa530
leaq -0x150(%rbp), %rsi
movq %rbx, %rdi
callq 0xa770
leaq -0x150(%rbp), %rdi
callq 0xaa30
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
jne 0xffb5
jmp 0xffba
leaq -0x58(%rbp), %r13
movq %r13, -0x10(%r13)
movq 0x58(%rbx), %rsi
movq 0x60(%rbx), %rdx
addq %rsi, %rdx
leaq -0x68(%rbp), %r12
movq %r12, %rdi
callq 0xa240
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x6736(%rip), %rsi      # 0x166b2
leaq -0x150(%rbp), %rdi
movq %r12, %rdx
movq %r14, %r8
movq %r15, %r9
callq 0xa530
leaq -0x150(%rbp), %rsi
movq %rbx, %rdi
callq 0xa770
leaq -0x150(%rbp), %rdi
callq 0xaa30
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0xffba
callq 0xa570
addq $0x138, %rsp            # imm = 0x138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x150(%rbp), %rdi
callq 0xaa30
jmp 0xffe0
movq %rax, %rbx
movq -0x48(%rbp), %rdi
jmp 0x1003d
movq %rax, %rbx
leaq -0x150(%rbp), %rdi
callq 0xaa30
jmp 0xfffa
movq %rax, %rbx
movq -0x68(%rbp), %rdi
jmp 0x1003d
movq %rax, %rbx
leaq -0x150(%rbp), %rdi
callq 0xaa30
jmp 0x10025
movq %rax, %rbx
leaq -0x150(%rbp), %rdi
callq 0xaa30
jmp 0x10036
movq %rax, %rbx
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
jne 0x10042
jmp 0x10047
movq %rax, %rbx
movq -0xa8(%rbp), %rdi
cmpq %r13, %rdi
je 0x10047
callq 0xa570
movq %rbx, %rdi
callq 0xa990
nop