// File: 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:
subq $0x348, %rsp            # imm = 0x348
xorl %eax, %eax
movl %eax, %edi
callq 0x21f0
movl %eax, %edi
callq 0x2210
leaq 0x327(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0x2330
movq 0xd0(%rsp), %rdx
leaq 0x23754(%rip), %rsi     # 0x260cf
leaq 0x328(%rsp), %rdi
callq 0x2290
jmp 0x298a
leaq 0x328(%rsp), %rdi
callq 0x24e0
jmp 0x2999
leaq 0x328(%rsp), %rdi
callq 0x2130
leaq 0x327(%rsp), %rdi
callq 0x2260
leaq 0x2f8(%rsp), %rdi
movq %rdi, 0xc8(%rsp)
callq 0xb220
movq 0xc8(%rsp), %rdi
callq 0xb250
jmp 0x29d7
leaq 0x2d7(%rsp), %rdi
movq %rdi, 0xc0(%rsp)
callq 0x2330
movq 0xc0(%rsp), %rdx
leaq 0x236db(%rip), %rsi     # 0x260d6
leaq 0x2d8(%rsp), %rdi
callq 0x2290
jmp 0x2a0a
leaq 0x2d8(%rsp), %rdi
callq 0x2730
jmp 0x2a19
leaq 0x2d8(%rsp), %rdi
callq 0x2130
leaq 0x2d7(%rsp), %rdi
callq 0x2260
movl $0x0, 0x2d0(%rsp)
cmpl $0xa, 0x2d0(%rsp)
jge 0x2b3e
callq 0x2060
movl %eax, 0x2cc(%rsp)
leaq 0x2f8(%rsp), %rdi
leaq 0x2cc(%rsp), %rsi
callq 0xb400
jmp 0x2a6f
leaq 0x2f8(%rsp), %rdi
callq 0xb250
jmp 0x2a7e
jmp 0x2a80
movl 0x2d0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2d0(%rsp)
jmp 0x2a3e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x2aca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
leaq 0x328(%rsp), %rdi
callq 0x2130
leaq 0x327(%rsp), %rdi
callq 0x2260
jmp 0x35c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x35b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x2b2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
leaq 0x2d8(%rsp), %rdi
callq 0x2130
leaq 0x2d7(%rsp), %rdi
callq 0x2260
jmp 0x35b3
leaq 0x2a7(%rsp), %rdi
movq %rdi, 0xb8(%rsp)
callq 0x2330
movq 0xb8(%rsp), %rdx
leaq 0x23587(%rip), %rsi     # 0x260e9
leaq 0x2a8(%rsp), %rdi
callq 0x2290
jmp 0x2b71
leaq 0x2a8(%rsp), %rdi
callq 0x2730
jmp 0x2b80
leaq 0x2a8(%rsp), %rdi
callq 0x2130
leaq 0x2a7(%rsp), %rdi
callq 0x2260
movl $0x0, 0x2a0(%rsp)
cmpl $0x2, 0x2a0(%rsp)
jge 0x2c2b
leaq 0x2f8(%rsp), %rdi
callq 0xb550
jmp 0x2bbe
leaq 0x2f8(%rsp), %rdi
callq 0xb250
jmp 0x2bcd
jmp 0x2bcf
movl 0x2a0(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2a0(%rsp)
jmp 0x2ba5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x2c19
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
leaq 0x2a8(%rsp), %rdi
callq 0x2130
leaq 0x2a7(%rsp), %rdi
callq 0x2260
jmp 0x35b3
leaq 0x27f(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0x2330
movq 0xb0(%rsp), %rdx
leaq 0x234ac(%rip), %rsi     # 0x260fb
leaq 0x280(%rsp), %rdi
callq 0x2290
jmp 0x2c5e
leaq 0x280(%rsp), %rdi
callq 0x2730
jmp 0x2c6d
leaq 0x280(%rsp), %rdi
callq 0x2130
leaq 0x27f(%rsp), %rdi
callq 0x2260
movl $0x0, 0x278(%rsp)
cmpl $0xa, 0x278(%rsp)
jge 0x2e51
callq 0x2060
movl %eax, %edx
addl $0x7, %edx
testl %eax, %eax
movl %eax, %ecx
cmovsl %edx, %ecx
andl $-0x8, %ecx
subl %ecx, %eax
movl %eax, 0x274(%rsp)
movq 0x2e314(%rip), %rdi     # 0x30fd8
leaq 0x23440(%rip), %rsi     # 0x2610b
callq 0x2220
movq %rax, 0xa8(%rsp)
jmp 0x2cda
movq 0xa8(%rsp), %rdi
movl 0x274(%rsp), %esi
negl %esi
callq 0x2310
movq %rax, 0xa0(%rsp)
jmp 0x2cfa
movq 0xa0(%rsp), %rdi
leaq 0x23452(%rip), %rsi     # 0x2615b
callq 0x2220
movq %rax, 0x98(%rsp)
jmp 0x2d18
movq 0x98(%rsp), %rdi
movl 0x274(%rsp), %esi
callq 0x2310
jmp 0x2d2e
leaq 0x2f8(%rsp), %rdi
callq 0xb7b0
movq %rax, 0x90(%rsp)
jmp 0x2d45
movq 0x90(%rsp), %rcx
movslq 0x274(%rsp), %rdx
movl %edx, %eax
leaq (%rcx,%rdx,4), %rsi
negl %eax
movl %eax, 0x264(%rsp)
leaq 0x2f8(%rsp), %rdi
leaq 0x264(%rsp), %rdx
callq 0xb570
movq %rax, 0x88(%rsp)
jmp 0x2d83
movq 0x88(%rsp), %rax
movq %rax, 0x268(%rsp)
movq 0x2e23e(%rip), %rdi     # 0x30fd8
leaq 0x23379(%rip), %rsi     # 0x2611a
callq 0x2220
movq %rax, 0x80(%rsp)
jmp 0x2db0
movq 0x80(%rsp), %rdi
movq 0x268(%rsp), %rax
movl (%rax), %esi
callq 0x2310
movq %rax, 0x78(%rsp)
jmp 0x2dce
movq 0x78(%rsp), %rdi
movq 0x2e1ee(%rip), %rsi     # 0x30fc8
callq 0x2250
jmp 0x2de1
leaq 0x2f8(%rsp), %rdi
callq 0xb250
jmp 0x2df0
jmp 0x2df2
movl 0x278(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x278(%rsp)
jmp 0x2c92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x2e3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
leaq 0x280(%rsp), %rdi
callq 0x2130
leaq 0x27f(%rsp), %rdi
callq 0x2260
jmp 0x35b3
leaq 0x23f(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x2330
movq 0x70(%rsp), %rdx
leaq 0x232d8(%rip), %rsi     # 0x26147
leaq 0x240(%rsp), %rdi
callq 0x2290
jmp 0x2e7e
leaq 0x240(%rsp), %rdi
callq 0x2730
jmp 0x2e8d
leaq 0x240(%rsp), %rdi
callq 0x2130
leaq 0x23f(%rsp), %rdi
callq 0x2260
movl $0x0, 0x238(%rsp)
cmpl $0x5, 0x238(%rsp)
jge 0x3017
callq 0x2060
movslq %eax, %rcx
imulq $0x66666667, %rcx, %rdx # imm = 0x66666667
movq %rdx, %rcx
shrq $0x3f, %rcx
sarq $0x22, %rdx
addl %ecx, %edx
addl %edx, %edx
movl %edx, %ecx
leal (%rcx,%rcx,4), %ecx
subl %ecx, %eax
movl %eax, 0x234(%rsp)
movq 0x2e0e5(%rip), %rdi     # 0x30fd8
leaq 0x2325c(%rip), %rsi     # 0x26156
callq 0x2220
movq %rax, 0x68(%rsp)
jmp 0x2f06
movq 0x68(%rsp), %rdi
movl 0x234(%rsp), %esi
callq 0x2310
jmp 0x2f19
leaq 0x2f8(%rsp), %rdi
callq 0xb7b0
movq %rax, 0x60(%rsp)
jmp 0x2f2d
movq 0x60(%rsp), %rax
movslq 0x234(%rsp), %rcx
leaq (%rax,%rcx,4), %rsi
leaq 0x2f8(%rsp), %rdi
callq 0xb7c0
movq %rax, 0x58(%rsp)
jmp 0x2f52
movq 0x58(%rsp), %rax
movq %rax, 0x228(%rsp)
movq 0x2e072(%rip), %rdi     # 0x30fd8
leaq 0x231f9(%rip), %rsi     # 0x26166
callq 0x2220
movq %rax, 0x50(%rsp)
jmp 0x2f79
movq 0x50(%rsp), %rdi
movq 0x228(%rsp), %rax
movl (%rax), %esi
callq 0x2310
movq %rax, 0x48(%rsp)
jmp 0x2f94
movq 0x48(%rsp), %rdi
movq 0x2e028(%rip), %rsi     # 0x30fc8
callq 0x2250
jmp 0x2fa7
leaq 0x2f8(%rsp), %rdi
callq 0xb250
jmp 0x2fb6
jmp 0x2fb8
movl 0x238(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x238(%rsp)
jmp 0x2eb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x3005
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
leaq 0x240(%rsp), %rdi
callq 0x2130
leaq 0x23f(%rsp), %rdi
callq 0x2260
jmp 0x35b3
leaq 0x207(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0x2330
movq 0x40(%rsp), %rdx
leaq 0x2315b(%rip), %rsi     # 0x26190
leaq 0x208(%rsp), %rdi
callq 0x2290
jmp 0x3044
leaq 0x208(%rsp), %rdi
callq 0x2730
jmp 0x3053
leaq 0x208(%rsp), %rdi
callq 0x2130
leaq 0x207(%rsp), %rdi
callq 0x2260
leaq 0x1e8(%rsp), %rdi
leaq 0x2f8(%rsp), %rsi
callq 0xb880
jmp 0x3084
leaq 0x1e8(%rsp), %rdi
callq 0xb250
jmp 0x3093
leaq 0x1c7(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0x2330
movq 0x38(%rsp), %rdx
leaq 0x230f9(%rip), %rsi     # 0x261aa
leaq 0x1c8(%rsp), %rdi
callq 0x2290
jmp 0x30c0
leaq 0x1c8(%rsp), %rdi
callq 0x2730
jmp 0x30cf
leaq 0x1c8(%rsp), %rdi
callq 0x2130
leaq 0x1c7(%rsp), %rdi
callq 0x2260
leaq 0x1e8(%rsp), %rdi
callq 0xb960
movq %rax, %rsi
leaq 0x1a8(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xb970
movq 0x30(%rsp), %rdi
callq 0xb250
jmp 0x3117
leaq 0x1e8(%rsp), %rdi
callq 0xb250
jmp 0x3126
leaq 0x187(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x2330
movq 0x28(%rsp), %rdx
leaq 0x23080(%rip), %rsi     # 0x261c4
leaq 0x188(%rsp), %rdi
callq 0x2290
jmp 0x3153
leaq 0x188(%rsp), %rdi
callq 0x2730
jmp 0x3162
leaq 0x188(%rsp), %rdi
callq 0x2130
leaq 0x187(%rsp), %rdi
callq 0x2260
leaq 0x168(%rsp), %rdi
callq 0xb220
jmp 0x318b
leaq 0x168(%rsp), %rdi
leaq 0x2f8(%rsp), %rsi
callq 0xb9d0
jmp 0x31a2
leaq 0x168(%rsp), %rdi
callq 0xb250
jmp 0x31b1
leaq 0x147(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0x2330
movq 0x20(%rsp), %rdx
leaq 0x23017(%rip), %rsi     # 0x261e6
leaq 0x148(%rsp), %rdi
callq 0x2290
jmp 0x31de
leaq 0x148(%rsp), %rdi
callq 0x2730
jmp 0x31ed
leaq 0x148(%rsp), %rdi
callq 0x2130
leaq 0x147(%rsp), %rdi
callq 0x2260
leaq 0x128(%rsp), %rdi
callq 0xb220
jmp 0x3216
leaq 0x168(%rsp), %rdi
callq 0xb960
movq %rax, %rsi
leaq 0x128(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xbb10
movq 0x18(%rsp), %rdi
callq 0xb250
jmp 0x3244
leaq 0x168(%rsp), %rdi
callq 0xb250
jmp 0x3253
leaq 0x107(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0x2330
movq 0x10(%rsp), %rdx
leaq 0x22f97(%rip), %rsi     # 0x26208
leaq 0x108(%rsp), %rdi
callq 0x2290
jmp 0x3280
leaq 0x108(%rsp), %rdi
callq 0x2730
jmp 0x328f
leaq 0x108(%rsp), %rdi
callq 0x2130
leaq 0x107(%rsp), %rdi
callq 0x2260
leaq 0x2f8(%rsp), %rdi
callq 0xbba0
jmp 0x32b8
leaq 0x2f8(%rsp), %rdi
callq 0xb250
jmp 0x32c7
leaq 0xdf(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x2330
movq 0x8(%rsp), %rdx
leaq 0x22dea(%rip), %rsi     # 0x260cf
leaq 0xe0(%rsp), %rdi
callq 0x2290
jmp 0x32f4
leaq 0xe0(%rsp), %rdi
callq 0x26d0
jmp 0x3303
leaq 0xe0(%rsp), %rdi
callq 0x2130
leaq 0xdf(%rsp), %rdi
callq 0x2260
callq 0x2780
jmp 0x3324
leaq 0x128(%rsp), %rdi
callq 0xbbf0
leaq 0x168(%rsp), %rdi
callq 0xbbf0
leaq 0x1a8(%rsp), %rdi
callq 0xbbf0
leaq 0x1e8(%rsp), %rdi
callq 0xbbf0
leaq 0x2f8(%rsp), %rdi
callq 0xbbf0
addq $0x348, %rsp            # imm = 0x348
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x33a4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
leaq 0x208(%rsp), %rdi
callq 0x2130
leaq 0x207(%rsp), %rdi
callq 0x2260
jmp 0x35b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x35a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x3406
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x2130
leaq 0x1c7(%rsp), %rdi
callq 0x2260
jmp 0x35a6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x3599
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x3468
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
leaq 0x188(%rsp), %rdi
callq 0x2130
leaq 0x187(%rsp), %rdi
callq 0x2260
jmp 0x3599
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x358c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x34ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
leaq 0x148(%rsp), %rdi
callq 0x2130
leaq 0x147(%rsp), %rdi
callq 0x2260
jmp 0x358c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x357f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x352c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
leaq 0x108(%rsp), %rdi
callq 0x2130
leaq 0x107(%rsp), %rdi
callq 0x2260
jmp 0x357f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
jmp 0x3572
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x318(%rsp)
movl %eax, 0x314(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x2130
leaq 0xdf(%rsp), %rdi
callq 0x2260
leaq 0x128(%rsp), %rdi
callq 0xbbf0
leaq 0x168(%rsp), %rdi
callq 0xbbf0
leaq 0x1a8(%rsp), %rdi
callq 0xbbf0
leaq 0x1e8(%rsp), %rdi
callq 0xbbf0
leaq 0x2f8(%rsp), %rdi
callq 0xbbf0
movq 0x318(%rsp), %rdi
callq 0x2320
nopl (%rax)