// File: /workspace/github_cpp_makefile_star2_O2/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 $0x208, %rsp            # imm = 0x208
xorl %edi, %edi
callq 0x21a0
movl %eax, %edi
callq 0x21c0
leaq 0xb9ef(%rip), %rsi      # 0xe0e7
leaq 0x1e8(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2090
leaq 0x1e8(%rsp), %rdi
callq 0x243c
leaq 0x1e8(%rsp), %rdi
callq 0x20c0
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %rdi
movaps %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
callq 0x67b6
leaq 0xb9ae(%rip), %rsi      # 0xe0ee
leaq 0x1c8(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x2090
leaq 0x1c8(%rsp), %rdi
callq 0x257e
leaq 0x1c8(%rsp), %rdi
callq 0x20c0
pushq $0xa
popq %rbp
leaq 0x30(%rsp), %rbx
leaq 0x10(%rsp), %r14
subl $0x1, %ebp
jb 0x279c
callq 0x2060
movl %eax, 0x10(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x68ea
movq %rbx, %rdi
callq 0x67b6
jmp 0x2779
leaq 0xb95e(%rip), %rsi      # 0xe101
leaq 0x1a8(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x2090
leaq 0x1a8(%rsp), %rdi
callq 0x257e
leaq 0x1a8(%rsp), %rdi
callq 0x20c0
pushq $0x2
popq %rbp
leaq 0x30(%rsp), %rbx
subl $0x1, %ebp
jb 0x27ec
addq $-0x4, 0x38(%rsp)
movq %rbx, %rdi
callq 0x67b6
jmp 0x27d7
leaq 0xb920(%rip), %rsi      # 0xe113
leaq 0x188(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x2090
leaq 0x188(%rsp), %rdi
callq 0x257e
leaq 0x188(%rsp), %rdi
callq 0x20c0
pushq $0xa
popq %r13
movq 0x127ae(%rip), %rbx     # 0x14fd8
leaq 0x30(%rsp), %r12
leaq 0xb8fc(%rip), %rbp      # 0xe132
subl $0x1, %r13d
jb 0x28d4
callq 0x2060
cltd
pushq $0x8
popq %rcx
idivl %ecx
movl %edx, %r15d
movq %rbx, %rdi
leaq 0xb8cb(%rip), %rsi      # 0xe123
callq 0x21d0
movl %r15d, %r14d
negl %r14d
movq %rax, %rdi
movl %r14d, %esi
callq 0x22c0
movq %rax, %rdi
leaq 0xb8fb(%rip), %rsi      # 0xe173
callq 0x21d0
movq %rax, %rdi
movl %r15d, %esi
callq 0x22c0
movslq %r15d, %rsi
shlq $0x2, %rsi
addq 0x30(%rsp), %rsi
movl %r14d, 0x10(%rsp)
movq %r12, %rdi
leaq 0x10(%rsp), %rdx
callq 0x6994
movq %rax, %r14
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x21d0
movl (%r14), %esi
movq %rax, %rdi
callq 0x22c0
movq %rax, %rdi
callq 0x20d0
movq %r12, %rdi
callq 0x67b6
jmp 0x2836
leaq 0xb884(%rip), %rsi      # 0xe15f
leaq 0x168(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x2090
leaq 0x168(%rsp), %rdi
callq 0x257e
leaq 0x168(%rsp), %rdi
callq 0x20c0
pushq $0x5
popq %r14
movq 0x126c6(%rip), %rbx     # 0x14fd8
leaq 0x30(%rsp), %r15
leaq 0xb860(%rip), %r12      # 0xe17e
subl $0x1, %r14d
jb 0x298a
callq 0x2060
cltd
pushq $0xa
popq %rcx
idivl %ecx
movl %edx, %ebp
movq %rbx, %rdi
leaq 0xb833(%rip), %rsi      # 0xe16e
callq 0x21d0
movq %rax, %rdi
movl %ebp, %esi
callq 0x22c0
movslq %ebp, %rsi
shlq $0x2, %rsi
addq 0x30(%rsp), %rsi
movq %r15, %rdi
callq 0x6a6a
movq %rax, %r13
movq %rbx, %rdi
movq %r12, %rsi
callq 0x21d0
movl (%r13), %esi
movq %rax, %rdi
callq 0x22c0
movq %rax, %rdi
callq 0x20d0
movq %r15, %rdi
callq 0x67b6
jmp 0x291e
leaq 0xb817(%rip), %rsi      # 0xe1a8
leaq 0x148(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x2090
leaq 0x148(%rsp), %rdi
callq 0x257e
leaq 0x148(%rsp), %rdi
callq 0x20c0
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x6a98
leaq 0x10(%rsp), %rdi
callq 0x67b6
leaq 0xb7e5(%rip), %rsi      # 0xe1c2
leaq 0x128(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x2090
leaq 0x128(%rsp), %rdi
callq 0x257e
leaq 0x128(%rsp), %rdi
callq 0x20c0
movaps 0x10(%rsp), %xmm0
leaq 0x90(%rsp), %rdi
movaps %xmm0, (%rdi)
movq 0x20(%rsp), %rax
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
andq $0x0, 0x20(%rsp)
callq 0x67b6
leaq 0x10(%rsp), %rdi
callq 0x67b6
leaq 0xb793(%rip), %rsi      # 0xe1dc
leaq 0x108(%rsp), %rdi
leaq 0x50(%rsp), %rdx
callq 0x2090
leaq 0x108(%rsp), %rdi
callq 0x257e
leaq 0x108(%rsp), %rdi
callq 0x20c0
xorps %xmm0, %xmm0
leaq 0x50(%rsp), %rdi
movaps %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
leaq 0x30(%rsp), %rsi
callq 0x6af8
leaq 0x50(%rsp), %rdi
callq 0x67b6
leaq 0xb75e(%rip), %rsi      # 0xe1fe
leaq 0xe8(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x2090
leaq 0xe8(%rsp), %rdi
callq 0x257e
leaq 0xe8(%rsp), %rdi
callq 0x20c0
movaps 0x50(%rsp), %xmm0
leaq 0x70(%rsp), %rdi
movaps %xmm0, (%rdi)
movq 0x60(%rsp), %rax
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, 0x50(%rsp)
andq $0x0, 0x60(%rsp)
callq 0x67b6
leaq 0x50(%rsp), %rdi
callq 0x67b6
leaq 0xb71a(%rip), %rsi      # 0xe220
leaq 0xc8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x2090
leaq 0xc8(%rsp), %rdi
callq 0x257e
leaq 0xc8(%rsp), %rdi
callq 0x20c0
leaq 0x30(%rsp), %rdi
movq (%rdi), %rax
movq %rax, 0x8(%rdi)
callq 0x67b6
leaq 0xb59d(%rip), %rsi      # 0xe0e7
leaq 0xa8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x2090
leaq 0xa8(%rsp), %rdi
callq 0x2542
leaq 0xa8(%rsp), %rdi
callq 0x20c0
callq 0x25a2
leaq 0x70(%rsp), %rdi
callq 0x6b68
leaq 0x50(%rsp), %rdi
callq 0x6b68
leaq 0x90(%rsp), %rdi
callq 0x6b68
leaq 0x10(%rsp), %rdi
callq 0x6b68
leaq 0x30(%rsp), %rdi
callq 0x6b68
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
jmp 0x2bdf
jmp 0x2cc2
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0x20c0
jmp 0x2cc5
jmp 0x2cc2
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0x20c0
jmp 0x2ccf
jmp 0x2cb8
movq %rax, %rbx
leaq 0x108(%rsp), %rdi
callq 0x20c0
jmp 0x2cd9
jmp 0x2cbd
movq %rax, %rbx
leaq 0x128(%rsp), %rdi
callq 0x20c0
jmp 0x2ce6
jmp 0x2c39
movq %rax, %rbx
jmp 0x2ce6
jmp 0x2d00
movq %rax, %rbx
leaq 0x148(%rsp), %rdi
jmp 0x2c96
jmp 0x2d00
movq %rax, %rbx
leaq 0x168(%rsp), %rdi
jmp 0x2c96
jmp 0x2d00
movq %rax, %rbx
leaq 0x188(%rsp), %rdi
jmp 0x2c96
jmp 0x2d00
movq %rax, %rbx
leaq 0x1a8(%rsp), %rdi
jmp 0x2c96
jmp 0x2d00
movq %rax, %rbx
leaq 0x1c8(%rsp), %rdi
callq 0x20c0
jmp 0x2d03
jmp 0x2d00
jmp 0x2d00
movq %rax, %rbx
leaq 0x1e8(%rsp), %rdi
callq 0x20c0
jmp 0x2d0d
movq %rax, %rbx
jmp 0x2d0d
movq %rax, %rbx
jmp 0x2ccf
movq %rax, %rbx
jmp 0x2cd9
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x6b68
leaq 0x50(%rsp), %rdi
callq 0x6b68
leaq 0x90(%rsp), %rdi
callq 0x6b68
leaq 0x10(%rsp), %rdi
callq 0x6b68
jmp 0x2d03
jmp 0x2d00
jmp 0x2d00
jmp 0x2d00
jmp 0x2d00
jmp 0x2d00
jmp 0x2d00
jmp 0x2d00
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0x6b68
movq %rbx, %rdi
callq 0x22d0
nop