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

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x138, %rsp            # imm = 0x138
movq %rsi, -0x40(%rbp)
movq %rdi, %rbx
movq 0x78(%rdi), %r13
testq %rdx, %rdx
setne -0x29(%rbp)
movq %rdx, -0x38(%rbp)
je 0x13be5
leaq 0x80(%rbx), %rax
movq %rax, -0x48(%rbp)
leaq (,%rdx,4), %rax
movq %rax, -0x50(%rbp)
xorl %r14d, %r14d
movq -0x40(%rbp), %r12
testq %r13, %r13
je 0x13ade
movl (%r13), %eax
cmpl (%r12,%r14), %eax
jne 0x13b5f
movq 0x8(%r13), %r13
movb $0x1, %al
jmp 0x13bcf
leaq -0x80(%rbp), %rax
movq %rax, -0x90(%rbp)
movq 0x58(%rbx), %rsi
movq 0x60(%rbx), %rdx
addq %rsi, %rdx
leaq -0x90(%rbp), %r13
movq %r13, %rdi
callq 0xa250
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq -0x158(%rbp), %r15
movq %r15, %rdi
leaq 0x2b77(%rip), %rsi      # 0x16693
movq %r13, %rdx
movq -0x48(%rbp), %rcx
movq -0x40(%rbp), %r8
movq -0x38(%rbp), %r9
callq 0xa260
movq %rbx, %rdi
movq %r15, %rsi
callq 0xa740
movq %r15, %rdi
callq 0xaa40
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x13b58
callq 0xa580
xorl %eax, %eax
xorl %r13d, %r13d
jmp 0x13bcf
leaq -0x60(%rbp), %rax
movq %rax, -0x70(%rbp)
movq 0x58(%rbx), %rsi
movq 0x60(%rbx), %rdx
addq %rsi, %rdx
leaq -0x70(%rbp), %rdi
callq 0xa250
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq -0x158(%rbp), %r15
movq %r15, %rdi
leaq 0x2b1e(%rip), %rsi      # 0x166b2
leaq -0x70(%rbp), %rdx
movq -0x48(%rbp), %rcx
movq %r12, %r8
movq -0x38(%rbp), %r9
callq 0xa260
movq %rbx, %rdi
movq %r15, %rsi
callq 0xa740
movq %r15, %rdi
callq 0xaa40
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x13bcd
callq 0xa580
xorl %eax, %eax
testb %al, %al
je 0x13be5
addq $0x4, %r14
cmpq %r14, -0x50(%rbp)
setne -0x29(%rbp)
jne 0x13ac0
testq %r13, %r13
sete %al
orb -0x29(%rbp), %al
testb $0x1, %al
jne 0x13c70
leaq -0xa0(%rbp), %r14
movq %r14, -0x10(%r14)
movq 0x58(%rbx), %rsi
movq 0x60(%rbx), %rdx
addq %rsi, %rdx
leaq -0xb0(%rbp), %r12
movq %r12, %rdi
callq 0xa250
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x2a76(%rip), %rsi      # 0x166a3
leaq -0x158(%rbp), %rdi
movq %r12, %rdx
movq -0x40(%rbp), %r8
movq -0x38(%rbp), %r9
callq 0xa260
leaq -0x158(%rbp), %rsi
movq %rbx, %rdi
callq 0xa740
leaq -0x158(%rbp), %rdi
callq 0xaa40
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
je 0x13c70
callq 0xa580
addq $0x138, %rsp            # imm = 0x138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x158(%rbp), %rdi
callq 0xaa40
jmp 0x13c96
movq %rax, %rbx
movq -0xb0(%rbp), %rdi
cmpq %r14, %rdi
jne 0x13ce6
jmp 0x13ceb
movq %rax, %rbx
leaq -0x158(%rbp), %rdi
callq 0xaa40
jmp 0x13cb8
movq %rax, %rbx
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
jmp 0x13ce1
movq %rax, %rbx
leaq -0x158(%rbp), %rdi
callq 0xaa40
jmp 0x13cd6
movq %rax, %rbx
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x13ceb
callq 0xa580
movq %rbx, %rdi
callq 0xa9a0
nop