// File: /workspace/github_cpp_makefile_star2_O2/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 %r12
pushq %rbx
subq $0x130, %rsp            # imm = 0x130
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movq 0x78(%rdi), %rax
testq %rax, %rax
je 0x12580
testq %r14, %r14
jne 0x124f2
leaq 0x58(%rbx), %rsi
leaq -0x128(%rbp), %r12
movq %r12, %rdi
callq 0xda90
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x61c1(%rip), %rsi      # 0x18673
leaq -0xc8(%rbp), %rdi
movq %r12, %rdx
movq %r15, %r8
xorl %r9d, %r9d
callq 0xd6d0
leaq -0xc8(%rbp), %rsi
movq %rbx, %rdi
callq 0xdaa0
leaq -0xc8(%rbp), %rdi
callq 0xde90
leaq -0x128(%rbp), %rdi
callq 0xd300
movq 0x78(%rbx), %rax
leaq (,%r14,4), %rcx
xorl %edx, %edx
movq %rax, %rsi
movq 0x8(%rsi), %rsi
cmpq %rdx, %rcx
je 0x125eb
movl (%rsi), %edi
leaq 0x4(%rdx), %r8
cmpl (%r15,%rdx), %edi
movq %r8, %rdx
je 0x124ff
leaq 0x58(%rbx), %rsi
leaq -0x108(%rbp), %r12
movq %r12, %rdi
callq 0xda90
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x613e(%rip), %rsi      # 0x18682
leaq -0xc8(%rbp), %rdi
movq %r12, %rdx
movq %r15, %r8
movq %r14, %r9
callq 0xd6d0
leaq -0xc8(%rbp), %rsi
movq %rbx, %rdi
callq 0xdaa0
leaq -0xc8(%rbp), %rdi
callq 0xde90
leaq -0x108(%rbp), %rdi
jmp 0x12651
testq %r14, %r14
je 0x12656
leaq 0x58(%rbx), %rsi
leaq -0x148(%rbp), %r12
movq %r12, %rdi
callq 0xda90
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x60b1(%rip), %rsi      # 0x18663
leaq -0xc8(%rbp), %rdi
movq %r12, %rdx
movq %r15, %r8
movq %r14, %r9
callq 0xd6d0
leaq -0xc8(%rbp), %rsi
movq %rbx, %rdi
callq 0xdaa0
leaq -0xc8(%rbp), %rdi
callq 0xde90
leaq -0x148(%rbp), %rdi
jmp 0x12651
cmpq 0x8(%rax), %rsi
je 0x12656
leaq 0x58(%rbx), %rsi
leaq -0xe8(%rbp), %r12
movq %r12, %rdi
callq 0xda90
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x6059(%rip), %rsi      # 0x18673
leaq -0xc8(%rbp), %rdi
movq %r12, %rdx
movq %r15, %r8
movq %r14, %r9
callq 0xd6d0
leaq -0xc8(%rbp), %rsi
movq %rbx, %rdi
callq 0xdaa0
leaq -0xc8(%rbp), %rdi
callq 0xde90
leaq -0xe8(%rbp), %rdi
callq 0xd300
addq $0x130, %rsp            # imm = 0x130
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0xc8(%rbp), %rdi
callq 0xde90
jmp 0x1267a
movq %rax, %rbx
leaq -0xe8(%rbp), %rdi
jmp 0x126d8
movq %rax, %rbx
leaq -0xc8(%rbp), %rdi
callq 0xde90
jmp 0x126a8
movq %rax, %rbx
leaq -0xc8(%rbp), %rdi
callq 0xde90
jmp 0x126b4
movq %rax, %rbx
leaq -0x148(%rbp), %rdi
jmp 0x126d8
movq %rax, %rbx
leaq -0x128(%rbp), %rdi
jmp 0x126d8
movq %rax, %rbx
leaq -0xc8(%rbp), %rdi
callq 0xde90
jmp 0x126d1
movq %rax, %rbx
leaq -0x108(%rbp), %rdi
callq 0xd300
movq %rbx, %rdi
callq 0xddb0
nop