// File: /workspace/github_cpp_makefile_star2_O3/cjc12[P]ezSTL/src/../include/test.h
// Function: ezSTL::test::test_map()
void test::test_map() {
		const int max_iteration = 10;
		srand((unsigned int)time(NULL));
		start_info("map");
		map<int, int> m;
		print_map(m);
		test_info("map   find and insert");
		for (int i = 0; i < max_iteration; ++i) {
			int number1 = rand() % 100;
			int number2 = rand() % 100;
			pair<int, int> p = make_pair(number1, number2);
			std::cout << "to insert " << p.first << ":" << p.second << " ; ";
			auto ite = m.find(p.first);
			if (ite == m.end()) std::cout << "not exists" << std::endl;
			std::cout << "already exist : " << p.first << ":" << p.second << " (obtained by find iterator)" << std::endl;
			m.insert(p);
			print_map(m);
		}
		test_info("map   erase");
		for (int i = 0; i < max_iteration; ++i) {
			int number = rand() % 100;
			auto ite = m.find(number);
			if (ite != m.end()) {
				std::cout << "to remove key: " << number << std::endl;
				m.erase(ite);
				print_map(m);
			}
		}

		test_info("map   clear");
		m.clear();
		print_map(m);
		finish_info("map");
		continue_next_test();
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
xorl %edi, %edi
callq 0x21b0
movl %eax, %edi
callq 0x21d0
leaq 0xb8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xbbad(%rip), %rsi      # 0x106a7
leaq 0xbba9(%rip), %rdx      # 0x106aa
leaq 0xa8(%rsp), %rbx
movq %rbx, %rdi
callq 0xa4e2
movq %rbx, %rdi
callq 0x246c
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x4b2b
callq 0x21c0
leaq 0x10(%rsp), %rbx
movl $0x0, (%rbx)
movl $0x28, %edi
callq 0x21f0
movq %rax, 0x8(%rbx)
movb $0x0, (%rax)
movq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rbx, %rdi
callq 0x9218
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xb8ec(%rip), %rsi      # 0x1045e
leaq 0xb8fa(%rip), %rdx      # 0x10473
leaq 0x88(%rsp), %rdi
callq 0xa4e2
leaq 0x88(%rsp), %rdi
callq 0x2706
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x4ba5
callq 0x21c0
xorl %r13d, %r13d
movq 0x11429(%rip), %rbx     # 0x15fd8
leaq 0xb4f3(%rip), %r15      # 0x100a9
leaq 0x10(%rsp), %r14
leaq 0x8(%rsp), %r12
callq 0x2060
movslq %eax, %rbp
imulq $0x51eb851f, %rbp, %rax # imm = 0x51EB851F
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x25, %rax
addl %ecx, %eax
imull $0x64, %eax, %eax
subl %eax, %ebp
callq 0x2060
cltq
imulq $0x51eb851f, %rax, %rcx # imm = 0x51EB851F
movq %rcx, %rdx
shrq $0x3f, %rdx
sarq $0x25, %rcx
addl %edx, %ecx
imull $0x64, %ecx, %ecx
subl %ecx, %eax
movl %ebp, 0x8(%rsp)
movl %eax, 0xc(%rsp)
movl $0xa, %edx
movq %rbx, %rdi
leaq 0xb7a5(%rip), %rsi      # 0x103bd
callq 0x2220
movl 0x8(%rsp), %esi
movq %rbx, %rdi
callq 0x22d0
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x2220
movl 0xc(%rsp), %esi
movq %rbp, %rdi
callq 0x22d0
movl $0x3, %edx
movq %rax, %rdi
leaq 0xb771(%rip), %rsi      # 0x103c8
callq 0x2220
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rcx
testq %rcx, %rcx
je 0x4c8e
movl 0x8(%rsp), %edx
movl 0x20(%rcx), %edi
movl $0x10, %esi
cmpl %edi, %edx
jl 0x4c85
movl $0x18, %esi
jle 0x4d69
movq (%rcx,%rsi), %rcx
testq %rcx, %rcx
jne 0x4c6e
movl $0xa, %edx
movq %rbx, %rdi
leaq 0xb72f(%rip), %rsi      # 0x103cc
callq 0x2220
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
movl $0x10, %edx
movq %rbx, %rdi
leaq 0xb6ff(%rip), %rsi      # 0x103d7
callq 0x2220
movl 0x8(%rsp), %esi
movq %rbx, %rdi
callq 0x22d0
movq %rax, %rbp
movl $0x1, %edx
movq %rax, %rdi
movq %r15, %rsi
callq 0x2220
movl 0xc(%rsp), %esi
movq %rbp, %rdi
callq 0x22d0
movq %rax, %rbp
movl $0x1c, %edx
movq %rax, %rdi
leaq 0xb6ce(%rip), %rsi      # 0x103e8
callq 0x2220
movq (%rbp), %rax
movq -0x18(%rax), %rdi
addq %rbp, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbp, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
movq %r14, %rdi
movq %r12, %rsi
callq 0xaad8
movq %r14, %rdi
callq 0x9218
incl %r13d
cmpl $0xa, %r13d
jne 0x4bc0
jmp 0x4d77
cmpq %rax, %rcx
jne 0x4cc9
jmp 0x4c8e
leaq 0x78(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xb745(%rip), %rsi      # 0x104cc
leaq 0xb749(%rip), %rdx      # 0x104d7
leaq 0x68(%rsp), %rdi
callq 0xa4e2
leaq 0x68(%rsp), %rdi
callq 0x2706
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0x4db1
callq 0x21c0
xorl %ebp, %ebp
movq 0x1121e(%rip), %rbx     # 0x15fd8
leaq 0x10(%rsp), %r15
leaq 0x8(%rsp), %r12
callq 0x2060
movq 0x18(%rsp), %rcx
movq 0x8(%rcx), %r14
testq %r14, %r14
je 0x4e7e
movslq %eax, %r13
imulq $0x51eb851f, %r13, %rax # imm = 0x51EB851F
movq %rax, %rdx
shrq $0x3f, %rdx
sarq $0x25, %rax
addl %edx, %eax
imull $0x64, %eax, %eax
subl %eax, %r13d
movl 0x20(%r14), %edx
movl $0x10, %eax
cmpl %edx, %r13d
jl 0x4e0d
movl $0x18, %eax
jle 0x4e18
movq (%r14,%rax), %r14
testq %r14, %r14
jne 0x4df8
jmp 0x4e7e
cmpq %rcx, %r14
je 0x4e7e
movl $0xf, %edx
movq %rbx, %rdi
leaq 0xb648(%rip), %rsi      # 0x10474
callq 0x2220
movq %rbx, %rdi
movl %r13d, %esi
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 %r14, 0x8(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0xad6c
movq %r15, %rdi
callq 0x9218
incl %ebp
cmpl $0xa, %ebp
jne 0x4dc4
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xb6eb(%rip), %rsi      # 0x10584
leaq 0xb6ef(%rip), %rdx      # 0x1058f
leaq 0x48(%rsp), %rdi
callq 0xa4e2
leaq 0x48(%rsp), %rdi
callq 0x2706
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x4ec3
callq 0x21c0
leaq 0x10(%rsp), %rdi
callq 0xa25c
leaq 0x10(%rsp), %rdi
callq 0x9218
leaq 0x38(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xb7c0(%rip), %rsi      # 0x106a7
leaq 0xb7bc(%rip), %rdx      # 0x106aa
leaq 0x28(%rsp), %rdi
callq 0xa4e2
leaq 0x28(%rsp), %rdi
callq 0x2650
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x4f11
callq 0x21c0
callq 0x277c
leaq 0x10(%rsp), %rdi
callq 0xa25c
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4fa3
movq %rax, %rbx
movq 0x28(%rsp), %rdi
jmp 0x4f63
jmp 0x4f8e
movq %rax, %rbx
movq 0x48(%rsp), %rdi
jmp 0x4f63
jmp 0x4f8e
movq %rax, %rbx
movq 0x68(%rsp), %rdi
jmp 0x4f63
jmp 0x4f8e
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x4f91
callq 0x21c0
jmp 0x4f91
jmp 0x4f8e
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x4f9b
callq 0x21c0
jmp 0x4f9b
jmp 0x4f8e
jmp 0x4f8e
jmp 0x4f8e
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xa25c
movq %rbx, %rdi
callq 0x22e0
movq %rax, %rdi
callq 0xa290
nop