// File: cjc12[P]ezSTL/src/../include/test.h
// Function: ezSTL::test::test_set()
void test::test_set() {
		const int max_iteration = 10;
		srand((unsigned int)time(NULL));
		start_info("set");
		set<int> s;
		print_set(s);
		test_info("set   find and insert");
		for (int i = 0; i < max_iteration; ++i) {
			int number = rand() % 100;
			std::cout << "to insert " << number << " ; ";
			auto ite = s.find(number);
			if (ite == s.end()) std::cout << "not exists" << std::endl;
			else std::cout << "already exist : " << *ite << " (obtained by find iterator)" << std::endl;
			s.insert(number);
			print_set(s);
		}
		test_info("set   erase");
		for (int i = 0; i < max_iteration * 20; ++i) {
			int number = rand() % 100;
			auto ite = s.find(number);
			if (ite != s.end()) {
				std::cout << "to remove : " << number << std::endl;
				s.erase(ite);
				print_set(s);
			}
		}
		test_info("set   clear");
		s.clear();
		print_set(s);
		finish_info("set");
		continue_next_test();
	}

// Assembly:
subq $0x1b8, %rsp            # imm = 0x1B8
movl $0xa, 0x1b4(%rsp)
xorl %eax, %eax
movl %eax, %edi
callq 0x21f0
movl %eax, %edi
callq 0x2210
leaq 0x18f(%rsp), %rdi
movq %rdi, 0x80(%rsp)
callq 0x2330
movq 0x80(%rsp), %rdx
leaq 0x2106e(%rip), %rsi     # 0x26664
leaq 0x190(%rsp), %rdi
callq 0x2290
jmp 0x5605
leaq 0x190(%rsp), %rdi
callq 0x24e0
jmp 0x5614
leaq 0x190(%rsp), %rdi
callq 0x2130
leaq 0x18f(%rsp), %rdi
callq 0x2260
leaq 0x160(%rsp), %rdi
movq %rdi, 0x78(%rsp)
callq 0xd8c0
movq 0x78(%rsp), %rdi
callq 0xd8d0
jmp 0x564c
leaq 0x13f(%rsp), %rdi
movq %rdi, 0x70(%rsp)
callq 0x2330
movq 0x70(%rsp), %rdx
leaq 0x20dae(%rip), %rsi     # 0x26418
leaq 0x140(%rsp), %rdi
callq 0x2290
jmp 0x5679
leaq 0x140(%rsp), %rdi
callq 0x2730
jmp 0x5688
leaq 0x140(%rsp), %rdi
callq 0x2130
leaq 0x13f(%rsp), %rdi
callq 0x2260
movl $0x0, 0x138(%rsp)
cmpl $0xa, 0x138(%rsp)
jge 0x5914
callq 0x2060
movslq %eax, %rcx
imulq $0x51eb851f, %rcx, %rcx # imm = 0x51EB851F
movq %rcx, %rdx
shrq $0x3f, %rdx
sarq $0x25, %rcx
addl %edx, %ecx
imull $0x64, %ecx, %ecx
subl %ecx, %eax
movl %eax, 0x134(%rsp)
movq 0x2b8ee(%rip), %rdi     # 0x30fd8
leaq 0x20cb4(%rip), %rsi     # 0x263a5
callq 0x2220
movq %rax, 0x68(%rsp)
jmp 0x56fd
movq 0x68(%rsp), %rdi
movl 0x134(%rsp), %esi
callq 0x2310
movq %rax, 0x60(%rsp)
jmp 0x5715
movq 0x60(%rsp), %rdi
leaq 0x20c8f(%rip), %rsi     # 0x263b0
callq 0x2220
jmp 0x5728
leaq 0x128(%rsp), %rdi
leaq 0x160(%rsp), %rsi
leaq 0x134(%rsp), %rdx
callq 0xd9e0
jmp 0x5747
leaq 0x120(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0xda20
jmp 0x575e
leaq 0x128(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0xd280
movb %al, 0x5f(%rsp)
jmp 0x5779
movb 0x5f(%rsp), %al
testb $0x1, %al
jne 0x5786
jmp 0x5863
movq 0x2b84b(%rip), %rdi     # 0x30fd8
leaq 0x20c20(%rip), %rsi     # 0x263b4
callq 0x2220
movq %rax, 0x50(%rsp)
jmp 0x57a0
movq 0x50(%rsp), %rdi
movq 0x2b81c(%rip), %rsi     # 0x30fc8
callq 0x2250
jmp 0x57b3
jmp 0x58d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x57ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
leaq 0x190(%rsp), %rdi
callq 0x2130
leaq 0x18f(%rsp), %rdi
callq 0x2260
jmp 0x5c6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x5c5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x5851
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
leaq 0x140(%rsp), %rdi
callq 0x2130
leaq 0x13f(%rsp), %rdi
callq 0x2260
jmp 0x5c5f
movq 0x2b76e(%rip), %rdi     # 0x30fd8
leaq 0x20b4e(%rip), %rsi     # 0x263bf
callq 0x2220
movq %rax, 0x48(%rsp)
jmp 0x587d
leaq 0x128(%rsp), %rdi
callq 0xd2d0
movq %rax, 0x40(%rsp)
jmp 0x5891
movq 0x48(%rsp), %rdi
movq 0x40(%rsp), %rax
movl (%rax), %esi
callq 0x2310
movq %rax, 0x38(%rsp)
jmp 0x58a9
movq 0x38(%rsp), %rdi
leaq 0x20b1b(%rip), %rsi     # 0x263d0
callq 0x2220
movq %rax, 0x30(%rsp)
jmp 0x58c1
movq 0x30(%rsp), %rdi
movq 0x2b6fb(%rip), %rsi     # 0x30fc8
callq 0x2250
jmp 0x58d4
jmp 0x58d6
leaq 0x160(%rsp), %rdi
leaq 0x134(%rsp), %rsi
callq 0xda50
jmp 0x58ed
leaq 0x160(%rsp), %rdi
callq 0xd8d0
jmp 0x58fc
jmp 0x58fe
movl 0x138(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x138(%rsp)
jmp 0x56ad
leaq 0xff(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x2330
movq 0x28(%rsp), %rdx
leaq 0x20afc(%rip), %rsi     # 0x2642e
leaq 0x100(%rsp), %rdi
callq 0x2290
jmp 0x5941
leaq 0x100(%rsp), %rdi
callq 0x2730
jmp 0x5950
leaq 0x100(%rsp), %rdi
callq 0x2130
leaq 0xff(%rsp), %rdi
callq 0x2260
movl $0x0, 0xf8(%rsp)
cmpl $0xc8, 0xf8(%rsp)
jge 0x5af1
callq 0x2060
movslq %eax, %rcx
imulq $0x51eb851f, %rcx, %rcx # imm = 0x51EB851F
movq %rcx, %rdx
shrq $0x3f, %rdx
sarq $0x25, %rcx
addl %edx, %ecx
imull $0x64, %ecx, %ecx
subl %ecx, %eax
movl %eax, 0xf4(%rsp)
leaq 0xe8(%rsp), %rdi
leaq 0x160(%rsp), %rsi
leaq 0xf4(%rsp), %rdx
callq 0xd9e0
jmp 0x59cd
leaq 0xe0(%rsp), %rdi
leaq 0x160(%rsp), %rsi
callq 0xda20
jmp 0x59e4
leaq 0xe8(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0xd570
movb %al, 0x27(%rsp)
jmp 0x59ff
movb 0x27(%rsp), %al
testb $0x1, %al
jne 0x5a0c
jmp 0x5ad9
movq 0x2b5c5(%rip), %rdi     # 0x30fd8
leaq 0x209e2(%rip), %rsi     # 0x263fc
callq 0x2220
movq %rax, 0x18(%rsp)
jmp 0x5a26
movq 0x18(%rsp), %rdi
movl 0xf4(%rsp), %esi
callq 0x2310
movq %rax, 0x10(%rsp)
jmp 0x5a3e
movq 0x10(%rsp), %rdi
movq 0x2b57e(%rip), %rsi     # 0x30fc8
callq 0x2250
jmp 0x5a51
leaq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rsi
callq 0xd800
jmp 0x5a68
leaq 0x160(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0xda80
jmp 0x5a7f
leaq 0x160(%rsp), %rdi
callq 0xd8d0
jmp 0x5a8e
jmp 0x5ad9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x5ac7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
leaq 0x100(%rsp), %rdi
callq 0x2130
leaq 0xff(%rsp), %rdi
callq 0x2260
jmp 0x5c5f
jmp 0x5adb
movl 0xf8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xf8(%rsp)
jmp 0x5975
leaq 0xb7(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x2330
movq 0x8(%rsp), %rdx
leaq 0x2092b(%rip), %rsi     # 0x2643a
leaq 0xb8(%rsp), %rdi
callq 0x2290
jmp 0x5b1e
leaq 0xb8(%rsp), %rdi
callq 0x2730
jmp 0x5b2d
leaq 0xb8(%rsp), %rdi
callq 0x2130
leaq 0xb7(%rsp), %rdi
callq 0x2260
leaq 0x160(%rsp), %rdi
callq 0xdac0
jmp 0x5b56
leaq 0x160(%rsp), %rdi
callq 0xd8d0
jmp 0x5b65
leaq 0x8f(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x2330
movq (%rsp), %rdx
leaq 0x20ae3(%rip), %rsi     # 0x26664
leaq 0x90(%rsp), %rdi
callq 0x2290
jmp 0x5b90
leaq 0x90(%rsp), %rdi
callq 0x26d0
jmp 0x5b9f
leaq 0x90(%rsp), %rdi
callq 0x2130
leaq 0x8f(%rsp), %rdi
callq 0x2260
callq 0x2780
jmp 0x5bc0
leaq 0x160(%rsp), %rdi
callq 0xdad0
addq $0x1b8, %rsp            # imm = 0x1B8
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x5c0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0x2130
leaq 0xb7(%rsp), %rdi
callq 0x2260
jmp 0x5c5f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
jmp 0x5c52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x180(%rsp)
movl %eax, 0x17c(%rsp)
leaq 0x90(%rsp), %rdi
callq 0x2130
leaq 0x8f(%rsp), %rdi
callq 0x2260
leaq 0x160(%rsp), %rdi
callq 0xdad0
movq 0x180(%rsp), %rdi
callq 0x2320
nopl (%rax)