// File: /workspace/github_cpp_makefile_star2_O1/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 0xd665(%rip), %rsi      # 0x100e7
leaq 0xd664(%rip), %rdx      # 0x100ed
leaq 0x1d8(%rsp), %rbx
movq %rbx, %rdi
callq 0xa568
movq %rbx, %rdi
callq 0x246c
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
je 0x2ab3
callq 0x21c0
xorps %xmm0, %xmm0
movq %rsp, %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
callq 0x83ae
leaq 0x190(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd612(%rip), %rsi      # 0x100ee
leaq 0xd61d(%rip), %rdx      # 0x10100
leaq 0x180(%rsp), %rdi
callq 0xa568
leaq 0x180(%rsp), %rdi
callq 0x270c
movq 0x180(%rsp), %rdi
cmpq %r14, %rdi
je 0x2b0f
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 0x8548
movq %rbx, %rdi
callq 0x83ae
decl %ebp
jne 0x2b1c
leaq 0x170(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd5b2(%rip), %rsi      # 0x10101
leaq 0xd5bc(%rip), %rdx      # 0x10112
leaq 0x160(%rsp), %rdi
callq 0xa568
leaq 0x160(%rsp), %rdi
callq 0x270c
movq 0x160(%rsp), %rdi
cmpq %r14, %rdi
je 0x2b82
callq 0x21c0
movl $0x1, %ebp
movq %rsp, %rbx
addq $-0x4, 0x8(%rsp)
movq %rbx, %rdi
callq 0x83ae
decl %ebp
je 0x2b8a
leaq 0x150(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd564(%rip), %rsi      # 0x10113
leaq 0xd56c(%rip), %rdx      # 0x10122
leaq 0x140(%rsp), %rdi
callq 0xa568
leaq 0x140(%rsp), %rdi
callq 0x270c
movq 0x140(%rsp), %rdi
cmpq %r14, %rdi
je 0x2be2
callq 0x21c0
movl $0xa, %ebp
movq 0x133ea(%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 0xd511(%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 0xd532(%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 0x85fa
movq %rax, %r14
movl $0x2c, %edx
movq %rbx, %rdi
leaq 0xd4b2(%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 0x83ae
decl %ebp
jne 0x2bf1
leaq 0x130(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd482(%rip), %rsi      # 0x1015f
leaq 0xd489(%rip), %rdx      # 0x1016d
leaq 0x120(%rsp), %rdi
callq 0xa568
leaq 0x120(%rsp), %rdi
callq 0x270c
movq 0x120(%rsp), %rdi
cmpq %r14, %rdi
je 0x2d10
callq 0x21c0
movl $0x5, %r14d
movq 0x132bb(%rip), %rbx     # 0x15fd8
leaq 0xd45a(%rip), %r15      # 0x1017e
movq %rsp, %r12
callq 0x2060
movl %eax, %ebp
movl $0xf, %edx
movq %rbx, %rdi
leaq 0xd431(%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 0x2dad
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 0x83ae
decl %r14d
jne 0x2d27
leaq 0x110(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd388(%rip), %rsi      # 0x101a8
leaq 0xd39a(%rip), %rdx      # 0x101c1
leaq 0x100(%rsp), %rdi
callq 0xa568
leaq 0x100(%rsp), %rdi
callq 0x270c
movq 0x100(%rsp), %rdi
cmpq %r14, %rdi
je 0x2e53
callq 0x21c0
leaq 0x20(%rsp), %rdi
movq %rsp, %rsi
callq 0x86e6
leaq 0x20(%rsp), %rdi
callq 0x83ae
leaq 0xf0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd345(%rip), %rsi      # 0x101c2
leaq 0xd357(%rip), %rdx      # 0x101db
leaq 0xe0(%rsp), %rdi
callq 0xa568
leaq 0xe0(%rsp), %rdi
callq 0x270c
movq 0xe0(%rsp), %rdi
cmpq %r14, %rdi
je 0x2eb0
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 0x83ae
leaq 0x20(%rsp), %rdi
callq 0x83ae
leaq 0xd0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd2e0(%rip), %rsi      # 0x101dc
leaq 0xd2fa(%rip), %rdx      # 0x101fd
leaq 0xc0(%rsp), %rdi
callq 0xa568
leaq 0xc0(%rsp), %rdi
callq 0x270c
movq 0xc0(%rsp), %rdi
cmpq %r14, %rdi
je 0x2f2f
callq 0x21c0
xorps %xmm0, %xmm0
leaq 0x40(%rsp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
movq %rsp, %rsi
callq 0x874c
leaq 0x40(%rsp), %rdi
callq 0x83ae
leaq 0xb0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd297(%rip), %rsi      # 0x101fe
leaq 0xd2b1(%rip), %rdx      # 0x1021f
leaq 0xa0(%rsp), %rdi
callq 0xa568
leaq 0xa0(%rsp), %rdi
callq 0x270c
movq 0xa0(%rsp), %rdi
cmpq %r14, %rdi
je 0x2f9a
callq 0x21c0
xorps %xmm0, %xmm0
movaps 0x40(%rsp), %xmm1
leaq 0x1a0(%rsp), %rdi
movaps %xmm1, (%rdi)
movq 0x50(%rsp), %rax
movq %rax, 0x10(%rdi)
movaps %xmm0, 0x40(%rsp)
movq $0x0, 0x50(%rsp)
callq 0x83ae
leaq 0x40(%rsp), %rdi
callq 0x83ae
leaq 0x90(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd23a(%rip), %rsi      # 0x10220
leaq 0xd241(%rip), %rdx      # 0x1022e
leaq 0x80(%rsp), %rdi
callq 0xa568
leaq 0x80(%rsp), %rdi
callq 0x270c
movq 0x80(%rsp), %rdi
cmpq %r14, %rdi
je 0x3019
callq 0x21c0
movq %rsp, %rdi
movq (%rdi), %rax
movq %rax, 0x8(%rdi)
callq 0x83ae
leaq 0x70(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xd0af(%rip), %rsi      # 0x100e7
leaq 0xd0ae(%rip), %rdx      # 0x100ed
leaq 0x60(%rsp), %rdi
callq 0xa568
leaq 0x60(%rsp), %rdi
callq 0x2656
movq 0x60(%rsp), %rdi
cmpq %r14, %rdi
je 0x3062
callq 0x21c0
callq 0x2782
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x3079
callq 0x21c0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x3088
callq 0x21c0
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0x309a
callq 0x21c0
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x30a9
callq 0x21c0
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x30b7
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 0x30e3
jmp 0x31d9
movq %rax, %rbx
movq 0x80(%rsp), %rdi
cmpq %r14, %rdi
je 0x31dc
callq 0x21c0
jmp 0x31dc
jmp 0x31d9
movq %rax, %rbx
movq 0xa0(%rsp), %rdi
cmpq %r14, %rdi
jne 0x31e9
jmp 0x31ee
jmp 0x31cf
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
cmpq %r14, %rdi
jne 0x31f8
jmp 0x31fd
jmp 0x31d4
movq %rax, %rbx
movq 0xe0(%rsp), %rdi
cmpq %r14, %rdi
jne 0x320a
jmp 0x320f
jmp 0x3152
movq %rax, %rbx
jmp 0x320f
jmp 0x322e
movq %rax, %rbx
movq 0x100(%rsp), %rdi
jmp 0x31b2
jmp 0x322e
movq %rax, %rbx
movq 0x120(%rsp), %rdi
jmp 0x31b2
jmp 0x322e
movq %rax, %rbx
movq 0x140(%rsp), %rdi
jmp 0x31b2
jmp 0x322e
movq %rax, %rbx
movq 0x160(%rsp), %rdi
jmp 0x31b2
jmp 0x322e
movq %rax, %rbx
movq 0x180(%rsp), %rdi
cmpq %r14, %rdi
jne 0x3219
jmp 0x3231
jmp 0x322e
jmp 0x322e
movq %rax, %rbx
movq 0x1d8(%rsp), %rdi
cmpq %r14, %rdi
jne 0x323a
jmp 0x323f
movq %rax, %rbx
jmp 0x31ee
movq %rax, %rbx
jmp 0x31fd
movq %rax, %rbx
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x31ee
callq 0x21c0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x31fd
callq 0x21c0
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0x320f
callq 0x21c0
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x3231
callq 0x21c0
jmp 0x3231
jmp 0x322e
jmp 0x322e
jmp 0x322e
jmp 0x322e
jmp 0x322e
jmp 0x322e
jmp 0x322e
movq %rax, %rbx
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x323f
callq 0x21c0
movq %rbx, %rdi
callq 0x22e0
nop