// File: /workspace/github_cpp_makefile_star2_O2/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 $0xd8, %rsp
xorl %edi, %edi
callq 0x21a0
movl %eax, %edi
callq 0x21c0
leaq 0xa703(%rip), %rsi      # 0xe6a7
leaq 0xb8(%rsp), %rdi
leaq 0x18(%rsp), %rdx
callq 0x2090
leaq 0xb8(%rsp), %rdi
callq 0x243c
leaq 0xb8(%rsp), %rdi
callq 0x20c0
leaq 0x18(%rsp), %rbx
movq %rbx, %rdi
callq 0x86aa
movq %rbx, %rdi
callq 0x7794
leaq 0xa472(%rip), %rsi      # 0xe45e
leaq 0x98(%rsp), %rdi
movq %rsp, %rdx
callq 0x2090
leaq 0x98(%rsp), %rdi
callq 0x257e
leaq 0x98(%rsp), %rdi
callq 0x20c0
pushq $0xa
popq %rax
movl %eax, 0x14(%rsp)
movq 0x10fb4(%rip), %r12     # 0x14fd8
leaq 0xa07e(%rip), %r15      # 0xe0a9
leaq 0x18(%rsp), %r13
movq %rsp, %rbx
pushq $0x64
popq %r14
subl $0x1, 0x14(%rsp)
jb 0x4138
callq 0x2060
cltd
idivl %r14d
movq %r12, %rbp
movl %edx, %r12d
callq 0x2060
cltd
idivl %r14d
movl %r12d, (%rsp)
movq %rbp, %r12
movl %edx, 0x4(%rsp)
movq %rbp, %rdi
leaq 0xa34e(%rip), %rsi      # 0xe3bd
callq 0x21d0
movl (%rsp), %esi
movq %rax, %rdi
callq 0x22c0
movq %rax, %rdi
movq %r15, %rsi
callq 0x21d0
movl 0x4(%rsp), %esi
movq %rax, %rdi
callq 0x22c0
movq %rax, %rdi
leaq 0xa328(%rip), %rsi      # 0xe3c8
callq 0x21d0
leaq 0x8(%rsp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x787c
movq 0x8(%rsp), %rax
cmpq 0x20(%rsp), %rax
jne 0x40d8
movq %r12, %rdi
leaq 0xa301(%rip), %rsi      # 0xe3cc
callq 0x21d0
movq %rax, %rdi
callq 0x20d0
movq %r12, %rdi
leaq 0xa2f5(%rip), %rsi      # 0xe3d7
callq 0x21d0
movl (%rsp), %esi
movq %rax, %rdi
callq 0x22c0
movq %rax, %rdi
movq %r15, %rsi
callq 0x21d0
movl 0x4(%rsp), %esi
movq %rax, %rdi
callq 0x22c0
movq %rax, %rdi
leaq 0xa2d5(%rip), %rsi      # 0xe3e8
callq 0x21d0
movq %rax, %rdi
callq 0x20d0
movq %r13, %rdi
movq %rbx, %rsi
callq 0x8f3c
movq %r13, %rdi
callq 0x7794
jmp 0x4037
leaq 0xa38d(%rip), %rsi      # 0xe4cc
leaq 0x78(%rsp), %rdi
movq %rsp, %rdx
callq 0x2090
leaq 0x78(%rsp), %rdi
callq 0x257e
leaq 0x78(%rsp), %rdi
callq 0x20c0
pushq $0xa
popq %r13
movq %rsp, %rbx
leaq 0x18(%rsp), %r14
leaq 0x8(%rsp), %r15
leaq 0xa2fc(%rip), %r12      # 0xe474
leaq 0x30(%rsp), %rbp
subl $0x1, %r13d
jb 0x41ec
callq 0x2060
cltd
pushq $0x64
popq %rcx
idivl %ecx
movl %edx, 0x8(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x787c
movq (%rsp), %rax
cmpq 0x20(%rsp), %rax
je 0x417d
movq 0x10e26(%rip), %rdi     # 0x14fd8
movq %r12, %rsi
callq 0x21d0
movl 0x8(%rsp), %esi
movq %rax, %rdi
callq 0x22c0
movq %rax, %rdi
callq 0x20d0
movq (%rsp), %rax
movq %rax, 0x30(%rsp)
movq %r14, %rdi
movq %rbp, %rsi
callq 0x78a0
movq %r14, %rdi
callq 0x7794
jmp 0x417d
leaq 0xa391(%rip), %rsi      # 0xe584
leaq 0x58(%rsp), %rdi
movq %rsp, %rdx
callq 0x2090
leaq 0x58(%rsp), %rdi
callq 0x257e
leaq 0x58(%rsp), %rdi
callq 0x20c0
leaq 0x18(%rsp), %rdi
callq 0x86e0
leaq 0x18(%rsp), %rdi
callq 0x7794
leaq 0xa478(%rip), %rsi      # 0xe6a7
leaq 0x38(%rsp), %rdi
movq %rsp, %rdx
callq 0x2090
leaq 0x38(%rsp), %rdi
callq 0x2542
leaq 0x38(%rsp), %rdi
callq 0x20c0
callq 0x25a2
leaq 0x18(%rsp), %rdi
callq 0x86d0
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
jmp 0x42a0
jmp 0x42c6
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
jmp 0x42a0
jmp 0x42c6
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
jmp 0x42a0
jmp 0x42c6
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0x20c0
jmp 0x42c9
jmp 0x42c6
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
callq 0x20c0
jmp 0x42d3
movq %rax, %rbx
jmp 0x42d3
jmp 0x42c6
jmp 0x42c6
jmp 0x42c6
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x86d0
movq %rbx, %rdi
callq 0x22d0
nop