// File: /workspace/github_cpp_makefile_star2_O3/cjc12[P]ezSTL/src/../include/test.h
// Function: ezSTL::test::test_vector()
void test::test_vector() {
		srand((unsigned int)time(NULL));
		start_info("vector");
		vector<int> v;
		print_vector(v);
		test_info("vector   push_back");
		for (int i = 0; i < 10; ++i) {
			v.push_back(rand());
			print_vector(v);
		}
		test_info("vector   pop_back");
		for (int i = 0; i < 2; ++i) {
			v.pop_back();
			print_vector(v);
		}
		test_info("vector   insert");
		for (int i = 0; i < 10; ++i) {
			int randn = rand() % 8;
			std::cout << "insert number " << -randn << " in index:" << randn;
			auto res_ite = v.insert(v.begin() + randn, -randn);
			std::cout << "  ;  inserted number(obtained by iterator): " << *res_ite << std::endl;
			print_vector(v);
		}
		test_info("vector   erase");
		for (int i = 0; i < 5; ++i) {
			int randn = rand() % 10;
			std::cout << "erase in index:" << randn;
			auto res_ite = v.erase(v.begin() + randn);
			std::cout << "  ;  number obtained by return iterator: " << *res_ite << std::endl;
			print_vector(v);
		}
		test_info("vector   copy constructor");
		vector<int> w(v);
		print_vector(w);
		test_info("vector   move constructor");
		vector<int> u(ezSTL::move(w));
		print_vector(u);
		print_vector(w);
		test_info("vector   copy assignment operator");
		vector<int> x;
		x = v;
		print_vector(x);
		test_info("vector   move assignment operator");
		vector<int> y;
		y = ezSTL::move(x);
		print_vector(y);
		print_vector(x);
		test_info("vector   clear");
		v.clear();
		print_vector(v);
		finish_info("vector");
		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 0xd671(%rip), %rsi      # 0x100e7
leaq 0xd670(%rip), %rdx      # 0x100ed
leaq 0x1d8(%rsp), %rbx
movq %rbx, %rdi
callq 0xa4e2
movq %rbx, %rdi
callq 0x246c
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x2aa7
callq 0x21c0
xorps %xmm0, %xmm0
movq %rsp, %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
callq 0x82e6
leaq 0x190(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd61e(%rip), %rsi      # 0x100ee
leaq 0xd629(%rip), %rdx      # 0x10100
leaq 0x180(%rsp), %rdi
callq 0xa4e2
leaq 0x180(%rsp), %rdi
callq 0x2706
movq 0x180(%rsp), %rdi
cmpq %r14, %rdi
je 0x2b03
callq 0x21c0
movl $0xa, %ebp
movq %rsp, %rbx
leaq 0x20(%rsp), %r14
callq 0x2060
movl %eax, 0x20(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x8480
movq %rbx, %rdi
callq 0x82e6
decl %ebp
jne 0x2b10
leaq 0x170(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd5be(%rip), %rsi      # 0x10101
leaq 0xd5c8(%rip), %rdx      # 0x10112
leaq 0x160(%rsp), %rdi
callq 0xa4e2
leaq 0x160(%rsp), %rdi
callq 0x2706
movq 0x160(%rsp), %rdi
cmpq %r14, %rdi
je 0x2b76
callq 0x21c0
movb $0x1, %bpl
movq %rsp, %rbx
addq $-0x4, 0x8(%rsp)
movq %rbx, %rdi
callq 0x82e6
testb $0x1, %bpl
movl $0x0, %ebp
jne 0x2b7c
leaq 0x150(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd56b(%rip), %rsi      # 0x10113
leaq 0xd573(%rip), %rdx      # 0x10122
leaq 0x140(%rsp), %rdi
callq 0xa4e2
leaq 0x140(%rsp), %rdi
callq 0x2706
movq 0x140(%rsp), %rdi
cmpq %r14, %rdi
je 0x2bdb
callq 0x21c0
movl $0xa, %ebp
movq 0x133f1(%rip), %rbx     # 0x15fd8
movq %rsp, %r12
callq 0x2060
movl %eax, %r14d
leal 0x7(%r14), %r15d
testl %eax, %eax
cmovnsl %eax, %r15d
movl $0xe, %edx
movq %rbx, %rdi
leaq 0xd518(%rip), %rsi      # 0x10123
callq 0x2220
andl $-0x8, %r15d
subl %r15d, %r14d
movl %r14d, %r15d
negl %r15d
movq %rbx, %rdi
movl %r15d, %esi
callq 0x22d0
movq %rax, %r13
movl $0xa, %edx
movq %rax, %rdi
leaq 0xd539(%rip), %rsi      # 0x10173
callq 0x2220
movq %r13, %rdi
movl %r14d, %esi
callq 0x22d0
movslq %r14d, %rsi
shlq $0x2, %rsi
addq (%rsp), %rsi
movl %r15d, 0x20(%rsp)
movq %r12, %rdi
leaq 0x20(%rsp), %rdx
callq 0x8536
movq %rax, %r14
movl $0x2c, %edx
movq %rbx, %rdi
leaq 0xd4b9(%rip), %rsi      # 0x10132
callq 0x2220
movl (%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 %r12, %rdi
callq 0x82e6
decl %ebp
jne 0x2bea
leaq 0x130(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd489(%rip), %rsi      # 0x1015f
leaq 0xd490(%rip), %rdx      # 0x1016d
leaq 0x120(%rsp), %rdi
callq 0xa4e2
leaq 0x120(%rsp), %rdi
callq 0x2706
movq 0x120(%rsp), %rdi
cmpq %r14, %rdi
je 0x2d09
callq 0x21c0
movl $0x5, %r14d
movq 0x132c2(%rip), %rbx     # 0x15fd8
leaq 0xd461(%rip), %r15      # 0x1017e
movq %rsp, %r12
callq 0x2060
movl %eax, %ebp
movl $0xf, %edx
movq %rbx, %rdi
leaq 0xd438(%rip), %rsi      # 0x1016e
callq 0x2220
movslq %ebp, %r13
imulq $0x66666667, %r13, %rax # imm = 0x66666667
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x22, %rax
addl %ecx, %eax
addl %eax, %eax
leal (%rax,%rax,4), %eax
subl %eax, %r13d
movq %rbx, %rdi
movl %r13d, %esi
callq 0x22d0
movq (%rsp), %rax
movq 0x8(%rsp), %rbp
movslq %r13d, %rcx
leaq (%rax,%rcx,4), %r13
movq %rbp, %rdx
subq %r13, %rdx
sete %dil
leaq (%rax,%rcx,4), %rsi
addq $0x4, %rsi
cmpq %rbp, %rsi
sete %al
orb %dil, %al
jne 0x2da6
addq $-0x8, %rdx
andq $-0x4, %rdx
addq $0x4, %rdx
movq %r13, %rdi
callq 0x22a0
addq $-0x4, %rbp
movq %rbp, 0x8(%rsp)
movl $0x29, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2220
movl (%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 0x82e6
decl %r14d
jne 0x2d20
leaq 0x110(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd38f(%rip), %rsi      # 0x101a8
leaq 0xd3a1(%rip), %rdx      # 0x101c1
leaq 0x100(%rsp), %rdi
callq 0xa4e2
leaq 0x100(%rsp), %rdi
callq 0x2706
movq 0x100(%rsp), %rdi
cmpq %r14, %rdi
je 0x2e4c
callq 0x21c0
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x8622
leaq 0x20(%rsp), %rdi
callq 0x82e6
leaq 0xf0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd34c(%rip), %rsi      # 0x101c2
leaq 0xd35e(%rip), %rdx      # 0x101db
leaq 0xe0(%rsp), %rdi
callq 0xa4e2
leaq 0xe0(%rsp), %rdi
callq 0x2706
movq 0xe0(%rsp), %rdi
cmpq %r14, %rdi
je 0x2ea9
callq 0x21c0
movaps 0x20(%rsp), %xmm0
leaq 0x1c0(%rsp), %rdi
movaps %xmm0, (%rdi)
movq 0x30(%rsp), %rax
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
callq 0x82e6
leaq 0x20(%rsp), %rdi
callq 0x82e6
leaq 0xd0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd2e7(%rip), %rsi      # 0x101dc
leaq 0xd301(%rip), %rdx      # 0x101fd
leaq 0xc0(%rsp), %rdi
callq 0xa4e2
leaq 0xc0(%rsp), %rdi
callq 0x2706
movq 0xc0(%rsp), %rdi
cmpq %r14, %rdi
je 0x2f28
callq 0x21c0
xorps %xmm0, %xmm0
leaq 0x40(%rsp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq %rsp, %rsi
callq 0x8688
leaq 0x40(%rsp), %rdi
callq 0x82e6
leaq 0xb0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd29e(%rip), %rsi      # 0x101fe
leaq 0xd2b8(%rip), %rdx      # 0x1021f
leaq 0xa0(%rsp), %rdi
callq 0xa4e2
leaq 0xa0(%rsp), %rdi
callq 0x2706
movq 0xa0(%rsp), %rdi
cmpq %r14, %rdi
je 0x2f93
callq 0x21c0
movaps 0x40(%rsp), %xmm0
leaq 0x1a0(%rsp), %rdi
movaps %xmm0, (%rdi)
movq 0x50(%rsp), %rax
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
callq 0x82e6
leaq 0x40(%rsp), %rdi
callq 0x82e6
leaq 0x90(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd241(%rip), %rsi      # 0x10220
leaq 0xd248(%rip), %rdx      # 0x1022e
leaq 0x80(%rsp), %rdi
callq 0xa4e2
leaq 0x80(%rsp), %rdi
callq 0x2706
movq 0x80(%rsp), %rdi
cmpq %r14, %rdi
je 0x3012
callq 0x21c0
movq %rsp, %rdi
movq (%rdi), %rax
movq %rax, 0x8(%rdi)
callq 0x82e6
leaq 0x70(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd0b6(%rip), %rsi      # 0x100e7
leaq 0xd0b5(%rip), %rdx      # 0x100ed
leaq 0x60(%rsp), %rdi
callq 0xa4e2
leaq 0x60(%rsp), %rdi
callq 0x2650
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x305b
callq 0x21c0
callq 0x277c
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x3072
callq 0x21c0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x3081
callq 0x21c0
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0x3093
callq 0x21c0
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x30a2
callq 0x21c0
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x30b0
callq 0x21c0
addq $0x1f8, %rsp            # imm = 0x1F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x60(%rsp), %rdi
jmp 0x30dc
jmp 0x31d2
movq %rax, %rbx
movq 0x80(%rsp), %rdi
cmpq %r14, %rdi
je 0x31d5
callq 0x21c0
jmp 0x31d5
jmp 0x31d2
movq %rax, %rbx
movq 0xa0(%rsp), %rdi
cmpq %r14, %rdi
jne 0x31e2
jmp 0x31e7
jmp 0x31c8
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
cmpq %r14, %rdi
jne 0x31f1
jmp 0x31f6
jmp 0x31cd
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
cmpq %r14, %rdi
jne 0x3203
jmp 0x3208
jmp 0x314b
movq %rax, %rbx
jmp 0x3208
jmp 0x3227
movq %rax, %rbx
movq 0x100(%rsp), %rdi
jmp 0x31ab
jmp 0x3227
movq %rax, %rbx
movq 0x120(%rsp), %rdi
jmp 0x31ab
jmp 0x3227
movq %rax, %rbx
movq 0x140(%rsp), %rdi
jmp 0x31ab
jmp 0x3227
movq %rax, %rbx
movq 0x160(%rsp), %rdi
jmp 0x31ab
jmp 0x3227
movq %rax, %rbx
movq 0x180(%rsp), %rdi
cmpq %r14, %rdi
jne 0x3212
jmp 0x322a
jmp 0x3227
jmp 0x3227
movq %rax, %rbx
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
jne 0x3233
jmp 0x3238
movq %rax, %rbx
jmp 0x31e7
movq %rax, %rbx
jmp 0x31f6
movq %rax, %rbx
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x31e7
callq 0x21c0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x31f6
callq 0x21c0
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0x3208
callq 0x21c0
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x322a
callq 0x21c0
jmp 0x322a
jmp 0x3227
jmp 0x3227
jmp 0x3227
jmp 0x3227
jmp 0x3227
jmp 0x3227
jmp 0x3227
movq %rax, %rbx
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3238
callq 0x21c0
movq %rbx, %rdi
callq 0x22e0