// File: /workspace/github_cpp_makefile_star2_O3/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 $0x118, %rsp            # imm = 0x118
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
movq 0x78(%rdi), %rax
testq %rdx, %rdx
je 0x139a8
leaq (,%r14,4), %rcx
xorl %edx, %edx
testq %rax, %rax
je 0x13a1f
movl (%rax), %esi
cmpl (%r15,%rdx), %esi
jne 0x13a90
movq 0x8(%rax), %rax
addq $0x4, %rdx
cmpq %rdx, %rcx
jne 0x13986
testq %rax, %rax
je 0x13b03
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 0x2cbd(%rip), %rsi      # 0x166a3
leaq -0x130(%rbp), %rdi
movq %r12, %rdx
movq %r15, %r8
movq %r14, %r9
callq 0xa250
leaq -0x130(%rbp), %rsi
movq %rbx, %rdi
callq 0xa730
leaq -0x130(%rbp), %rdi
callq 0xaa30
movq -0x48(%rbp), %rdi
jmp 0x13af9
leaq -0x78(%rbp), %r13
movq %r13, -0x10(%r13)
movq 0x58(%rbx), %rsi
movq 0x60(%rbx), %rdx
addq %rsi, %rdx
leaq -0x88(%rbp), %r12
movq %r12, %rdi
callq 0xa240
leaq 0x80(%rbx), %rcx
movq 0x78(%rbx), %rax
movq %rax, (%rsp)
leaq 0x2c3c(%rip), %rsi      # 0x16693
leaq -0x130(%rbp), %rdi
movq %r12, %rdx
movq %r15, %r8
movq %r14, %r9
callq 0xa250
leaq -0x130(%rbp), %rsi
movq %rbx, %rdi
callq 0xa730
leaq -0x130(%rbp), %rdi
callq 0xaa30
movq -0x88(%rbp), %rdi
jmp 0x13af9
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 0x2bed(%rip), %rsi      # 0x166b2
leaq -0x130(%rbp), %rdi
movq %r12, %rdx
movq %r15, %r8
movq %r14, %r9
callq 0xa250
leaq -0x130(%rbp), %rsi
movq %rbx, %rdi
callq 0xa730
leaq -0x130(%rbp), %rdi
callq 0xaa30
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x13b03
callq 0xa570
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x130(%rbp), %rdi
callq 0xaa30
jmp 0x13b29
movq %rax, %rbx
movq -0x68(%rbp), %rdi
jmp 0x13b64
movq %rax, %rbx
leaq -0x130(%rbp), %rdi
callq 0xaa30
jmp 0x13b43
movq %rax, %rbx
movq -0x88(%rbp), %rdi
jmp 0x13b64
movq %rax, %rbx
leaq -0x130(%rbp), %rdi
callq 0xaa30
jmp 0x13b60
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x13b6e
callq 0xa570
movq %rbx, %rdi
callq 0xa990