// File: /workspace/github_cpp_makefile_star2_O2/pdx-cs-tutors[P]pdp/tests/cll/cll_insertion_tests.cpp
// Function: CLLInsertionTests::CLLInsertionTests()
CLLInsertionTests::CLLInsertionTests() {
    test("append", [=] {
        call = "append(rear, 1)";
        initialize({3, 2});
        retval = new int(append(rear, 1));
        expectList({3, 2, 1});
        expectReturn(1);
    });
    test("append", [=] {
        call = "append(rear, 1)";
        retval = new int(append(rear, 1));
        expectList({1});
        expectReturn(1);
    });

    test("append_unique", [=] {
        call = "append_unique(rear, 2)";
        initialize({3, 2, 1});
        retval = new int(append_unique(rear, 2));
        expectList({3, 2, 1});
        expectReturn(0);
    });
    test("append_unique", [=] {
        call = "append_unique(rear, 2)";
        initialize({3, 1, 9});
        retval = new int(append_unique(rear, 2));
        expectList({3, 1, 9, 2});
        expectReturn(1);
    });
    test("append_unique", [=] {
        call = "append_unique(rear, 2)";
        retval = new int(append_unique(rear, 2));
        expectList({2});
        expectReturn(1);
    });

    test("prepend", [=] {
        call = "prepend(rear, 5)";
        retval = new int(prepend(rear, 5));
        expectList({5});
        expectReturn(1);
    });
    test("prepend", [=] {
        call = "prepend(rear, 5)";
        initialize({0, 3});
        retval = new int(prepend(rear, 5));
        expectList({5, 0, 3});
        expectReturn(1);
    });

    test("prepend_unique", [=] {
        call = "prepend_unique(rear, 7)";
        initialize({6, 1});
        retval = new int(prepend_unique(rear, 7));
        expectList({7, 6, 1});
        expectReturn(1);
    });
    test("prepend_unique", [=] {
        call = "prepend_unique(rear, 7)";
        initialize({8, 7, 5});
        retval = new int(prepend_unique(rear, 7));
        expectList({8, 7, 5});
        expectReturn(0);
    });
    test("prepend_unique", [=] {
        call = "prepend_unique(rear, 7)";
        retval = new int(prepend_unique(rear, 7));
        expectList({7});
        expectReturn(1);
    });

    test("insert_ordered", [=] {
        call = "insert_ordered(rear, 3)";
        initialize({1, 4, 5});
        retval = new int(insert_ordered(rear, 3));
        expectList({1, 3, 4, 5});
        expectReturn(1);
    });
    test("insert_ordered", [=] {
        call = "insert_ordered(rear, 1)";
        initialize({3, 4, 5});
        retval = new int(insert_ordered(rear, 1));
        expectList({1, 3, 4, 5});
        expectReturn(1);
    });
    test("insert_ordered", [=] {
        call = "insert_ordered(rear, 5)";
        initialize({1, 3, 4});
        retval = new int(insert_ordered(rear, 5));
        expectList({1, 3, 4, 5});
        expectReturn(1);
    });
    test("insert_ordered", [=] {
        call = "insert_ordered(rear, 1)";
        retval = new int(insert_ordered(rear, 1));
        expectList({1});
        expectReturn(1);
    });
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x390, %rsp            # imm = 0x390
movq %rdi, %rbx
callq 0xd9a0
movq 0x10707(%rip), %rax     # 0x1ffc8
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8811(%rip), %rsi      # 0x180e0
leaq -0x1d8(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x398(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0x6eb(%rip), %rax       # 0xffe0
movq %rax, 0x18(%rdx)
leaq 0x77e(%rip), %rax       # 0x1007e
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x1d8(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x398(%rbp), %rdi
callq 0xd490
leaq -0x1d8(%rbp), %rdi
callq 0xd300
leaq 0x87ad(%rip), %rsi      # 0x180e0
leaq -0x1b8(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x378(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0x74f(%rip), %rax       # 0x100a8
movq %rax, 0x18(%rdx)
leaq 0x7bc(%rip), %rax       # 0x10120
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x1b8(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x378(%rbp), %rdi
callq 0xd490
leaq -0x1b8(%rbp), %rdi
callq 0xd300
leaq 0x8750(%rip), %rsi      # 0x180e7
leaq -0x198(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x358(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0x78d(%rip), %rax       # 0x1014a
movq %rax, 0x18(%rdx)
leaq 0x826(%rip), %rax       # 0x101ee
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x198(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x358(%rbp), %rdi
callq 0xd490
leaq -0x198(%rbp), %rdi
callq 0xd300
leaq 0x86ec(%rip), %rsi      # 0x180e7
leaq -0x178(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x338(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0x7f7(%rip), %rax       # 0x10218
movq %rax, 0x18(%rdx)
leaq 0x88c(%rip), %rax       # 0x102b8
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x178(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x338(%rbp), %rdi
callq 0xd490
leaq -0x178(%rbp), %rdi
callq 0xd300
leaq 0x8688(%rip), %rsi      # 0x180e7
leaq -0x158(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x318(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0x85d(%rip), %rax       # 0x102e2
movq %rax, 0x18(%rdx)
leaq 0x8ca(%rip), %rax       # 0x1035a
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x158(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x318(%rbp), %rdi
callq 0xd490
leaq -0x158(%rbp), %rdi
callq 0xd300
leaq 0x8632(%rip), %rsi      # 0x180f5
leaq -0x138(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x2f8(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0x89b(%rip), %rax       # 0x10384
movq %rax, 0x18(%rdx)
leaq 0x908(%rip), %rax       # 0x103fc
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x138(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x2f8(%rbp), %rdi
callq 0xd490
leaq -0x138(%rbp), %rdi
callq 0xd300
leaq 0x85ce(%rip), %rsi      # 0x180f5
leaq -0x118(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x2d8(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0x8d9(%rip), %rax       # 0x10426
movq %rax, 0x18(%rdx)
leaq 0x96c(%rip), %rax       # 0x104c4
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x118(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x2d8(%rbp), %rdi
callq 0xd490
leaq -0x118(%rbp), %rdi
callq 0xd300
leaq 0x8572(%rip), %rsi      # 0x180fd
leaq -0xf8(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x2b8(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0x93d(%rip), %rax       # 0x104ee
movq %rax, 0x18(%rdx)
leaq 0x9d6(%rip), %rax       # 0x10592
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0xf8(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x2b8(%rbp), %rdi
callq 0xd490
leaq -0xf8(%rbp), %rdi
callq 0xd300
leaq 0x850e(%rip), %rsi      # 0x180fd
leaq -0xd8(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x298(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0x9a7(%rip), %rax       # 0x105bc
movq %rax, 0x18(%rdx)
leaq 0xa40(%rip), %rax       # 0x10660
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0xd8(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x298(%rbp), %rdi
callq 0xd490
leaq -0xd8(%rbp), %rdi
callq 0xd300
leaq 0x84aa(%rip), %rsi      # 0x180fd
leaq -0xb8(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x278(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xa11(%rip), %rax       # 0x1068a
movq %rax, 0x18(%rdx)
leaq 0xa7e(%rip), %rax       # 0x10702
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0xb8(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x278(%rbp), %rdi
callq 0xd490
leaq -0xb8(%rbp), %rdi
callq 0xd300
leaq 0x8455(%rip), %rsi      # 0x1810c
leaq -0x98(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x258(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xa4f(%rip), %rax       # 0x1072c
movq %rax, 0x18(%rdx)
leaq 0xae4(%rip), %rax       # 0x107cc
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x98(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x258(%rbp), %rdi
callq 0xd490
leaq -0x98(%rbp), %rdi
callq 0xd300
leaq 0x83f1(%rip), %rsi      # 0x1810c
leaq -0x78(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x238(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xab8(%rip), %rax       # 0x107f6
movq %rax, 0x18(%rdx)
leaq 0xb4d(%rip), %rax       # 0x10896
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x78(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x238(%rbp), %rdi
callq 0xd490
leaq -0x78(%rbp), %rdi
callq 0xd300
leaq 0x8396(%rip), %rsi      # 0x1810c
leaq -0x58(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x218(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xb27(%rip), %rax       # 0x108c0
movq %rax, 0x18(%rdx)
leaq 0xbbc(%rip), %rax       # 0x10960
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x58(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x218(%rbp), %rdi
callq 0xd490
leaq -0x58(%rbp), %rdi
callq 0xd300
leaq 0x833b(%rip), %rsi      # 0x1810c
leaq -0x38(%rbp), %rdi
leaq -0x11(%rbp), %rdx
callq 0xd2c0
leaq -0x1f8(%rbp), %rdx
andq $0x0, 0x8(%rdx)
movq %rbx, (%rdx)
leaq 0xb96(%rip), %rax       # 0x1098a
movq %rax, 0x18(%rdx)
leaq 0xc03(%rip), %rax       # 0x10a02
movq %rax, 0x10(%rdx)
movq (%rbx), %rax
leaq -0x38(%rbp), %rsi
movq %rbx, %rdi
callq *0x28(%rax)
leaq -0x1f8(%rbp), %rdi
callq 0xd490
leaq -0x38(%rbp), %rdi
callq 0xd300
addq $0x390, %rsp            # imm = 0x390
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %r14
leaq -0x1f8(%rbp), %rdi
callq 0xd490
leaq -0x38(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x218(%rbp), %rdi
callq 0xd490
leaq -0x58(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x238(%rbp), %rdi
callq 0xd490
leaq -0x78(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x258(%rbp), %rdi
callq 0xd490
leaq -0x98(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x278(%rbp), %rdi
callq 0xd490
leaq -0xb8(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x298(%rbp), %rdi
callq 0xd490
leaq -0xd8(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x2b8(%rbp), %rdi
callq 0xd490
leaq -0xf8(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x2d8(%rbp), %rdi
callq 0xd490
leaq -0x118(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x2f8(%rbp), %rdi
callq 0xd490
leaq -0x138(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x318(%rbp), %rdi
callq 0xd490
leaq -0x158(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x338(%rbp), %rdi
callq 0xd490
leaq -0x178(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x358(%rbp), %rdi
callq 0xd490
leaq -0x198(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x378(%rbp), %rdi
callq 0xd490
leaq -0x1b8(%rbp), %rdi
jmp 0xffc6
jmp 0xffcd
movq %rax, %r14
leaq -0x398(%rbp), %rdi
callq 0xd490
leaq -0x1d8(%rbp), %rdi
callq 0xd300
jmp 0xffd0
movq %rax, %r14
movq %rbx, %rdi
callq 0xd5b0
movq %r14, %rdi
callq 0xddb0