// File: /workspace/github_cpp_makefile_star2_O1/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 0xbb33(%rip), %rsi      # 0x106a7
leaq 0xbb2f(%rip), %rdx      # 0x106aa
leaq 0xa8(%rsp), %rbx
movq %rbx, %rdi
callq 0xa568
movq %rbx, %rdi
callq 0x246c
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x4ba5
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 0x92ee
leaq 0x98(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xb872(%rip), %rsi      # 0x1045e
leaq 0xb880(%rip), %rdx      # 0x10473
leaq 0x88(%rsp), %rdi
callq 0xa568
leaq 0x88(%rsp), %rdi
callq 0x270c
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x4c1f
callq 0x21c0
xorl %r13d, %r13d
movq 0x113af(%rip), %rbx     # 0x15fd8
leaq 0xb479(%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 0xb72b(%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 0xb6f7(%rip), %rsi      # 0x103c8
callq 0x2220
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rcx
movq %rax, %rdx
testq %rcx, %rcx
je 0x4d0f
movl 0x8(%rsp), %edx
movl 0x20(%rcx), %edi
movl $0x10, %esi
cmpl %edi, %edx
jl 0x4cfe
movl $0x18, %esi
jle 0x4d0c
movq (%rcx,%rsi), %rcx
testq %rcx, %rcx
jne 0x4ceb
movq %rax, %rdx
jmp 0x4d0f
movq %rcx, %rdx
cmpq %rax, %rdx
jne 0x4d4f
movl $0xa, %edx
movq %rbx, %rdi
leaq 0xb6a9(%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 0xb679(%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 0xb648(%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 0xab46
movq %r14, %rdi
callq 0x92ee
incl %r13d
cmpl $0xa, %r13d
jne 0x4c3a
leaq 0x78(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xb6cf(%rip), %rsi      # 0x104cc
leaq 0xb6d3(%rip), %rdx      # 0x104d7
leaq 0x68(%rsp), %rdi
callq 0xa568
leaq 0x68(%rsp), %rdi
callq 0x270c
movq 0x68(%rsp), %rdi
cmpq %r14, %rdi
je 0x4e27
callq 0x21c0
xorl %ebp, %ebp
movq 0x111a8(%rip), %rbx     # 0x15fd8
leaq 0x10(%rsp), %r15
leaq 0x8(%rsp), %r12
callq 0x2060
movslq %eax, %r13
imulq $0x51eb851f, %r13, %rax # imm = 0x51EB851F
movq %rax, %rcx
shrq $0x3f, %rcx
sarq $0x25, %rax
addl %ecx, %eax
imull $0x64, %eax, %eax
subl %eax, %r13d
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rcx
movq %rax, %r14
testq %rcx, %rcx
je 0x4e92
movl 0x20(%rcx), %esi
movl $0x10, %edx
cmpl %esi, %r13d
jl 0x4e81
movl $0x18, %edx
jle 0x4e8f
movq (%rcx,%rdx), %rcx
testq %rcx, %rcx
jne 0x4e6d
movq %rax, %r14
jmp 0x4e92
movq %rcx, %r14
cmpq %rax, %r14
je 0x4ef8
movl $0xf, %edx
movq %rbx, %rdi
leaq 0xb5ce(%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 0xadf0
movq %r15, %rdi
callq 0x92ee
incl %ebp
cmpl $0xa, %ebp
jne 0x4e3a
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xb671(%rip), %rsi      # 0x10584
leaq 0xb675(%rip), %rdx      # 0x1058f
leaq 0x48(%rsp), %rdi
callq 0xa568
leaq 0x48(%rsp), %rdi
callq 0x270c
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x4f3d
callq 0x21c0
leaq 0x10(%rsp), %rdi
callq 0xa2e8
leaq 0x10(%rsp), %rdi
callq 0x92ee
leaq 0x38(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xb746(%rip), %rsi      # 0x106a7
leaq 0xb742(%rip), %rdx      # 0x106aa
leaq 0x28(%rsp), %rdi
callq 0xa568
leaq 0x28(%rsp), %rdi
callq 0x2656
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x4f8b
callq 0x21c0
callq 0x2782
leaq 0x10(%rsp), %rdi
callq 0xa2e8
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x501d
movq %rax, %rbx
movq 0x28(%rsp), %rdi
jmp 0x4fdd
jmp 0x5008
movq %rax, %rbx
movq 0x48(%rsp), %rdi
jmp 0x4fdd
jmp 0x5008
movq %rax, %rbx
movq 0x68(%rsp), %rdi
jmp 0x4fdd
jmp 0x5008
movq %rax, %rbx
movq 0x88(%rsp), %rdi
cmpq %r14, %rdi
je 0x500b
callq 0x21c0
jmp 0x500b
jmp 0x5008
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r14, %rdi
je 0x5015
callq 0x21c0
jmp 0x5015
jmp 0x5008
jmp 0x5008
jmp 0x5008
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xa2e8
movq %rbx, %rdi
callq 0x22e0
movq %rax, %rdi
callq 0xa31c
nop