// File: /workspace/github_cpp_makefile_star2_O3/cjc12[P]ezSTL/src/../include/test.h
// Function: ezSTL::test::test_list()
void test::test_list() {
		srand((unsigned int)time(NULL));
		start_info("list");
		list<int> l;
		print_list(l);
		test_info("list   push_back");
		for (int i = 0; i < 5; ++i) {
			l.push_back(rand());
			print_list(l);
		}
		test_info("list   push_front");
		for (int i = 0; i < 5; ++i) {
			l.push_front(rand());
			print_list(l);
		}
		test_info("list   pop_back");
		for (int i = 0; i < 2; ++i) {
			l.pop_back();
			print_list(l);
		}
		test_info("list   pop_front");
		for (int i = 0; i < 2; ++i) {
			l.pop_front();
			print_list(l);
		}
		test_info("list   insert");
		for (int i = 0; i < 4; ++i) {
			int randn = rand() % 5;
			std::cout << "insert number " << -randn << " in index:" << randn;
			auto res_ite = l.insert(l.begin() + randn, -randn);
			std::cout << "  ;  inserted number(obtained by return iterator): " << *res_ite << std::endl;
			print_list(l);
		}
		test_info("list   erase");
		for (int i = 0; i < 4; ++i) {
			int randn = rand() % 5;
			std::cout << "erase in index:" << randn;
			auto res_ite = l.erase(l.begin() + randn);
			std::cout << "  ;  number obtained by return iterator: " << *res_ite << std::endl;
			print_list(l);
		}
		test_info("list   copy constructor");
		list<int> w(l);
		print_list(w);
		test_info("list   move constructor");
		list<int> u(ezSTL::move(w));
		print_list(u);
		test_info("list   copy assignment operator");
		list<int> x;
		x = l;
		print_list(x);
		test_info("list   move assignment operator");
		list<int> y;
		y = ezSTL::move(x);
		print_list(y);
		test_info("list   clear");
		l.clear();
		print_list(l);
		finish_info("list");
		continue_next_test();
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1f8, %rsp            # imm = 0x1F8
xorl %edi, %edi
callq 0x21b0
movl %eax, %edi
callq 0x21d0
leaq 0x1e8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xcfbd(%rip), %rsi      # 0x1022f
leaq 0xcfba(%rip), %rdx      # 0x10233
leaq 0x1d8(%rsp), %rbx
movq %rbx, %rdi
callq 0xa4e2
movq %rbx, %rdi
callq 0x246c
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x32a3
callq 0x21c0
xorl %ebp, %ebp
leaq 0x8(%rsp), %rbx
movl %ebp, 0x8(%rbx)
movl $0x18, %edi
callq 0x21f0
movl %ebp, 0x10(%rax)
movq %rax, (%rbx)
movq %rax, (%rax)
movq %rax, 0x8(%rax)
movq %rbx, %rdi
callq 0x8702
leaq 0x1c8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xcf55(%rip), %rsi      # 0x10234
leaq 0xcf5e(%rip), %rdx      # 0x10244
leaq 0x1b8(%rsp), %rdi
callq 0xa4e2
leaq 0x1b8(%rsp), %rdi
callq 0x2706
movq 0x1b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3312
callq 0x21c0
movl $0x5, %r14d
leaq 0x8(%rsp), %rbx
callq 0x2060
movl %eax, %ebp
movl $0x18, %edi
callq 0x21f0
movl %ebp, 0x10(%rax)
movq 0x8(%rsp), %rcx
movq %rcx, 0x8(%rax)
movq (%rcx), %rdx
movq %rdx, (%rax)
movq %rax, 0x8(%rdx)
movq %rax, (%rcx)
incl 0x10(%rsp)
movq %rbx, %rdi
callq 0x8702
decl %r14d
jne 0x331d
leaq 0x1a8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xceda(%rip), %rsi      # 0x10245
leaq 0xcee4(%rip), %rdx      # 0x10256
leaq 0x198(%rsp), %rdi
callq 0xa4e2
leaq 0x198(%rsp), %rdi
callq 0x2706
movq 0x198(%rsp), %rdi
cmpq %r14, %rdi
je 0x339e
callq 0x21c0
movl $0x5, %r14d
leaq 0x8(%rsp), %rbx
callq 0x2060
movl %eax, %ebp
movl $0x18, %edi
callq 0x21f0
movl %ebp, 0x10(%rax)
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq %rcx, (%rax)
movq %rax, (%rdx)
movq %rax, 0x8(%rcx)
incl 0x10(%rsp)
movq %rbx, %rdi
callq 0x8702
decl %r14d
jne 0x33a9
leaq 0x188(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xce5f(%rip), %rsi      # 0x10257
leaq 0xce67(%rip), %rdx      # 0x10266
leaq 0x178(%rsp), %rdi
callq 0xa4e2
leaq 0x178(%rsp), %rdi
callq 0x2706
movq 0x178(%rsp), %rdi
cmpq %r14, %rdi
je 0x342b
callq 0x21c0
movb $0x1, %bpl
leaq 0x8(%rsp), %rbx
movq 0x8(%rsp), %rax
movq (%rax), %rdi
movq (%rdi), %rcx
movq %rcx, (%rax)
movq %rax, 0x8(%rcx)
callq 0x21c0
decl 0x10(%rsp)
movq %rbx, %rdi
callq 0x8702
testb $0x1, %bpl
movl $0x0, %ebp
jne 0x3433
leaq 0x168(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xcdf3(%rip), %rsi      # 0x10267
leaq 0xcdfc(%rip), %rdx      # 0x10277
leaq 0x158(%rsp), %rdi
callq 0xa4e2
leaq 0x158(%rsp), %rdi
callq 0x2706
movq 0x158(%rsp), %rdi
cmpq %r14, %rdi
je 0x34a7
callq 0x21c0
movb $0x1, %bpl
leaq 0x8(%rsp), %rbx
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x8(%rdi), %rcx
movq %rcx, 0x8(%rax)
movq %rax, (%rcx)
callq 0x21c0
decl 0x10(%rsp)
movq %rbx, %rdi
callq 0x8702
testb $0x1, %bpl
movl $0x0, %ebp
jne 0x34af
leaq 0x148(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xcd86(%rip), %rsi      # 0x10278
leaq 0xcd8c(%rip), %rdx      # 0x10285
leaq 0x138(%rsp), %rdi
callq 0xa4e2
leaq 0x138(%rsp), %rdi
callq 0x2706
movq 0x138(%rsp), %rdi
cmpq %r14, %rdi
je 0x3525
callq 0x21c0
xorl %r12d, %r12d
movq 0x12aa9(%rip), %rbx     # 0x15fd8
leaq 0x8(%rsp), %r13
callq 0x2060
movl %eax, %ebp
movl $0xe, %edx
movq %rbx, %rdi
leaq 0xcbd9(%rip), %rsi      # 0x10123
callq 0x2220
movslq %ebp, %r14
imulq $0x66666667, %r14, %rax # imm = 0x66666667
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x21, %rax
addl %ecx, %eax
leal (%rax,%rax,4), %eax
subl %eax, %r14d
movl %r14d, %ebp
negl %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x22d0
movq %rax, %r15
movl $0xa, %edx
movq %rax, %rdi
leaq 0xcbe6(%rip), %rsi      # 0x10173
callq 0x2220
movq %r15, %rdi
movl %r14d, %esi
callq 0x22d0
movq 0x8(%rsp), %rax
movq 0x8(%rax), %r15
testl %r14d, %r14d
jns 0x35bc
movq (%r15), %r15
incl %r14d
jne 0x35ab
jmp 0x35be
movq 0x8(%r15), %r15
decl %r14d
jne 0x35b5
movl $0x18, %edi
callq 0x21f0
movq %rax, %r14
movl %ebp, 0x10(%rax)
movq %r15, 0x8(%rax)
movq (%r15), %rax
movq %rax, (%r14)
movq %r14, 0x8(%rax)
movq %r14, (%r15)
incl 0x10(%rsp)
movl $0x33, %edx
movq %rbx, %rdi
leaq 0xcc94(%rip), %rsi      # 0x10286
callq 0x2220
movl 0x10(%r14), %esi
movq %rbx, %rdi
callq 0x22d0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
movq %r13, %rdi
callq 0x8702
incl %r12d
cmpl $0x4, %r12d
jne 0x3534
leaq 0x128(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xcc65(%rip), %rsi      # 0x102ba
leaq 0xcc6a(%rip), %rdx      # 0x102c6
leaq 0x118(%rsp), %rdi
callq 0xa4e2
leaq 0x118(%rsp), %rdi
callq 0x2706
movq 0x118(%rsp), %rdi
cmpq %r14, %rdi
je 0x3688
callq 0x21c0
xorl %r14d, %r14d
movq 0x12946(%rip), %rbx     # 0x15fd8
leaq 0xcae5(%rip), %r15      # 0x1017e
leaq 0x8(%rsp), %r12
callq 0x2060
movl %eax, %ebp
movl $0xf, %edx
movq %rbx, %rdi
leaq 0xcaba(%rip), %rsi      # 0x1016e
callq 0x2220
movslq %ebp, %r13
imulq $0x66666667, %r13, %rax # imm = 0x66666667
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x21, %rax
addl %ecx, %eax
leal (%rax,%rax,4), %eax
subl %eax, %r13d
movq %rbx, %rdi
movl %r13d, %esi
callq 0x22d0
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
testl %r13d, %r13d
js 0x36fc
je 0x3704
movq 0x8(%rdi), %rdi
decl %r13d
jne 0x36f1
jmp 0x3704
movq (%rdi), %rdi
incl %r13d
jne 0x36fc
movq (%rdi), %r13
movq 0x8(%rdi), %rax
movq %rax, 0x8(%r13)
movq %r13, (%rax)
callq 0x21c0
decl 0x10(%rsp)
movl $0x29, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2220
movl 0x10(%r13), %esi
movq %rbx, %rdi
callq 0x22d0
movq %rax, %r13
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
movq %r12, %rdi
callq 0x8702
incl %r14d
cmpl $0x4, %r14d
jne 0x369e
leaq 0x108(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xcb3e(%rip), %rsi      # 0x102c7
leaq 0xcb4e(%rip), %rdx      # 0x102de
leaq 0xf8(%rsp), %rdi
callq 0xa4e2
leaq 0xf8(%rsp), %rdi
callq 0x2706
movq 0xf8(%rsp), %rdi
cmpq %r14, %rdi
je 0x37bc
callq 0x21c0
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x886e
leaq 0x28(%rsp), %rdi
callq 0x8702
leaq 0xe8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xcaf7(%rip), %rsi      # 0x102df
leaq 0xcb07(%rip), %rdx      # 0x102f6
leaq 0xd8(%rsp), %rdi
callq 0xa4e2
leaq 0xd8(%rsp), %rdi
callq 0x2706
movq 0xd8(%rsp), %rdi
cmpq %r14, %rdi
je 0x381b
callq 0x21c0
movq 0x28(%rsp), %rax
leaq 0x48(%rsp), %rdi
movq %rax, (%rdi)
movl 0x30(%rsp), %eax
movl %eax, 0x8(%rdi)
movl $0x0, 0x30(%rsp)
callq 0x8702
leaq 0xc8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xcaa8(%rip), %rsi      # 0x102f7
leaq 0xcac0(%rip), %rdx      # 0x10316
leaq 0xb8(%rsp), %rdi
callq 0xa4e2
leaq 0xb8(%rsp), %rdi
callq 0x2706
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3882
callq 0x21c0
movl $0x0, 0x20(%rsp)
movl $0x18, %edi
callq 0x21f0
movl $0x0, 0x10(%rax)
leaq 0x18(%rsp), %rdi
movq %rax, (%rdi)
movq %rax, (%rax)
movq %rax, 0x8(%rax)
leaq 0x8(%rsp), %rsi
callq 0x8902
leaq 0x18(%rsp), %rdi
callq 0x8702
leaq 0xa8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xca46(%rip), %rsi      # 0x10317
leaq 0xca5e(%rip), %rdx      # 0x10336
leaq 0x98(%rsp), %rdi
callq 0xa4e2
leaq 0x98(%rsp), %rdi
callq 0x2706
movq 0x98(%rsp), %rdi
cmpq %r14, %rdi
je 0x3904
callq 0x21c0
movl $0x18, %edi
callq 0x21f0
xorl %ecx, %ecx
movl %ecx, 0x10(%rax)
movq %rax, (%rax)
movq %rax, 0x8(%rax)
movq 0x18(%rsp), %rax
leaq 0x38(%rsp), %rdi
movq %rax, (%rdi)
movl 0x20(%rsp), %eax
movl %eax, 0x8(%rdi)
movl %ecx, 0x20(%rsp)
callq 0x8702
leaq 0x88(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xc9ed(%rip), %rsi      # 0x10337
leaq 0xc9f2(%rip), %rdx      # 0x10343
leaq 0x78(%rsp), %rdi
callq 0xa4e2
leaq 0x78(%rsp), %rdi
callq 0x2706
movq 0x78(%rsp), %rdi
cmpq %r14, %rdi
je 0x3974
callq 0x21c0
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rdi
cmpq %rax, %rdi
je 0x3998
movq 0x8(%rdi), %rbx
callq 0x21c0
movq 0x8(%rsp), %rax
movq %rbx, %rdi
cmpq %rax, %rbx
jne 0x3982
movq %rax, (%rax)
movq %rax, 0x8(%rax)
leaq 0x8(%rsp), %rdi
movl $0x0, 0x8(%rdi)
callq 0x8702
leaq 0x68(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xc86f(%rip), %rsi      # 0x1022f
leaq 0xc86c(%rip), %rdx      # 0x10233
leaq 0x58(%rsp), %rdi
callq 0xa4e2
leaq 0x58(%rsp), %rdi
callq 0x2650
movq 0x58(%rsp), %rdi
cmpq %r14, %rdi
je 0x39ea
callq 0x21c0
callq 0x277c
leaq 0x38(%rsp), %rdi
callq 0x89dc
leaq 0x18(%rsp), %rdi
callq 0x89dc
leaq 0x48(%rsp), %rdi
callq 0x89dc
leaq 0x28(%rsp), %rdi
callq 0x89dc
leaq 0x8(%rsp), %rdi
callq 0x89dc
addq $0x1f8, %rsp            # imm = 0x1F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x58(%rsp), %rdi
jmp 0x3a4a
jmp 0x3b81
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r14, %rdi
je 0x3b84
callq 0x21c0
jmp 0x3b84
jmp 0x3b81
jmp 0x3b7c
movq %rax, %rbx
movq 0x98(%rsp), %rdi
cmpq %r14, %rdi
je 0x3b8e
callq 0x21c0
jmp 0x3b8e
jmp 0x3b7c
jmp 0x3aac
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3b98
callq 0x21c0
jmp 0x3b98
jmp 0x3aac
movq %rax, %rbx
jmp 0x3b98
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3ba2
callq 0x21c0
jmp 0x3ba2
jmp 0x3ad4
movq %rax, %rbx
jmp 0x3ba2
jmp 0x3bc2
movq %rax, %rbx
movq 0xf8(%rsp), %rdi
jmp 0x3b55
jmp 0x3bc2
movq %rax, %rbx
movq 0x118(%rsp), %rdi
jmp 0x3b55
jmp 0x3bc2
movq %rax, %rbx
movq 0x138(%rsp), %rdi
jmp 0x3b55
jmp 0x3bc2
movq %rax, %rbx
movq 0x158(%rsp), %rdi
jmp 0x3b55
jmp 0x3bc2
movq %rax, %rbx
movq 0x178(%rsp), %rdi
jmp 0x3b55
jmp 0x3bc2
movq %rax, %rbx
movq 0x198(%rsp), %rdi
jmp 0x3b55
jmp 0x3bc2
movq %rax, %rbx
movq 0x1b8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3bc5
callq 0x21c0
jmp 0x3bc5
jmp 0x3bc2
jmp 0x3bc2
movq %rax, %rbx
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3bcf
callq 0x21c0
jmp 0x3bcf
movq %rax, %rbx
jmp 0x3b8e
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x89dc
leaq 0x18(%rsp), %rdi
callq 0x89dc
leaq 0x48(%rsp), %rdi
callq 0x89dc
leaq 0x28(%rsp), %rdi
callq 0x89dc
jmp 0x3bc5
jmp 0x3bc2
jmp 0x3bc2
jmp 0x3bc2
jmp 0x3bc2
jmp 0x3bc2
jmp 0x3bc2
jmp 0x3bc2
jmp 0x3bc2
jmp 0x3bc2
jmp 0x3bc2
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x89dc
movq %rbx, %rdi
callq 0x22e0
nop