// File: /workspace/github_cpp_makefile_star2_O1/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 $0x168, %rsp            # imm = 0x168
movq %rdx, %r15
movq %rsi, %r8
movq %rdi, %rbx
movq 0x78(%rdi), %rax
testq %rax, %rax
setne %cl
testq %rdx, %rdx
sete %dl
orb %cl, %dl
je 0x10028
testq %r15, %r15
movq %r8, -0x38(%rbp)
jne 0xfea2
testq %rax, %rax
je 0x100a7
leaq -0xb0(%rbp), %r14
movq %r14, -0x10(%r14)
movq 0x58(%rbx), %rsi
movq 0x60(%rbx), %rdx
addq %rsi, %rdx
leaq -0xc0(%rbp), %r12
movq %r12, %rdi
movq %r8, %r13
callq 0xa250
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x6846(%rip), %rsi      # 0x166a3
leaq -0x188(%rbp), %rdi
movq %r12, %rdx
movq %r13, %r8
movq %r15, %r9
callq 0xa540
leaq -0x188(%rbp), %rsi
movq %rbx, %rdi
callq 0xa780
leaq -0x188(%rbp), %rdi
callq 0xaa40
movq -0xc0(%rbp), %rdi
cmpq %r14, %rdi
je 0xfe9e
callq 0xa580
movq -0x38(%rbp), %r8
movq 0x78(%rbx), %rax
movq 0x8(%rax), %rcx
testq %r15, %r15
sete %al
movq %rbx, -0x48(%rbp)
movq %r15, -0x40(%rbp)
je 0xff93
leaq -0x70(%rbp), %r14
leaq 0x80(%rbx), %rdx
movq %rdx, -0x58(%rbp)
leaq (,%r15,4), %rdx
xorl %r13d, %r13d
leaq -0x188(%rbp), %r12
movq %rdx, -0x50(%rbp)
movl (%r8,%r13), %r15d
movl (%rcx), %ebx
cmpl %r15d, %ebx
jne 0xfef7
movq 0x8(%rcx), %rcx
jmp 0xff7e
movb %al, -0x29(%rbp)
movq %rcx, -0x60(%rbp)
movq %r14, -0x80(%rbp)
movq %r12, %r14
movq -0x48(%rbp), %r12
movq 0x58(%r12), %rsi
movq 0x60(%r12), %rdx
addq %rsi, %rdx
leaq -0x80(%rbp), %rdi
callq 0xa250
movq 0x78(%r12), %rax
movq %rax, (%rsp)
movq %r14, %rdi
leaq 0x6780(%rip), %rsi      # 0x166b2
leaq -0x80(%rbp), %rdx
movq -0x58(%rbp), %rcx
movq -0x38(%rbp), %r8
movq -0x40(%rbp), %r9
callq 0xa540
movq %r12, %rdi
movq %r14, %rsi
callq 0xa780
movq %r14, %r12
movq %r14, %rdi
callq 0xaa40
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %r14
cmpq %r14, %rdi
je 0xff6f
callq 0xa580
movq -0x38(%rbp), %r8
movq -0x60(%rbp), %rcx
movb -0x29(%rbp), %al
movq -0x50(%rbp), %rdx
cmpl %r15d, %ebx
jne 0xff93
addq $0x4, %r13
cmpq %r13, %rdx
sete %al
jne 0xfee3
testb $0x1, %al
movq -0x48(%rbp), %rbx
movq -0x40(%rbp), %r15
je 0x100a7
movq 0x78(%rbx), %rax
cmpq 0x8(%rax), %rcx
je 0x100a7
leaq -0x90(%rbp), %r14
movq %r14, -0x10(%r14)
movq 0x58(%rbx), %rsi
movq 0x60(%rbx), %rdx
addq %rsi, %rdx
leaq -0xa0(%rbp), %r12
movq %r12, %rdi
movq %r8, %r13
callq 0xa250
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x66b4(%rip), %rsi      # 0x166a3
leaq -0x188(%rbp), %rdi
movq %r12, %rdx
movq %r13, %r8
movq %r15, %r9
callq 0xa540
leaq -0x188(%rbp), %rsi
movq %rbx, %rdi
callq 0xa780
leaq -0x188(%rbp), %rdi
callq 0xaa40
movq -0xa0(%rbp), %rdi
jmp 0x1009d
leaq -0xd0(%rbp), %r14
movq %r14, -0x10(%r14)
movq 0x58(%rbx), %rsi
movq 0x60(%rbx), %rdx
addq %rsi, %rdx
leaq -0xe0(%rbp), %r12
movq %r12, %rdi
movq %r8, %r13
callq 0xa250
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x662d(%rip), %rsi      # 0x16693
leaq -0x188(%rbp), %rdi
movq %r12, %rdx
movq %r13, %r8
movq %r15, %r9
callq 0xa540
leaq -0x188(%rbp), %rsi
movq %rbx, %rdi
callq 0xa780
leaq -0x188(%rbp), %rdi
callq 0xaa40
movq -0xe0(%rbp), %rdi
cmpq %r14, %rdi
je 0x100a7
callq 0xa580
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x188(%rbp), %rdi
callq 0xaa40
jmp 0x100cd
movq %rax, %rbx
movq -0xc0(%rbp), %rdi
jmp 0x1010e
movq %rax, %rbx
leaq -0x188(%rbp), %rdi
callq 0xaa40
jmp 0x100ea
movq %rax, %rbx
movq -0xa0(%rbp), %rdi
jmp 0x1010e
movq %rax, %rbx
leaq -0x188(%rbp), %rdi
callq 0xaa40
jmp 0x10107
movq %rax, %rbx
movq -0xe0(%rbp), %rdi
cmpq %r14, %rdi
jne 0x10136
jmp 0x1013b
movq %rax, %rbx
leaq -0x188(%rbp), %rdi
callq 0xaa40
jmp 0x10129
movq %rax, %rbx
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
je 0x1013b
callq 0xa580
movq %rbx, %rdi
callq 0xa9a0
nop