// File: DimitriDaSilva[P]42_ft_containers/tester/containers/map/test_map_operations.cpp
// Function: test_map_operations_upper_bound()
void
test_map_operations_upper_bound()
{
	ft::map<char, int> map;
	ft::map<char, int>::iterator it;
	ft::map<char, int>::const_iterator const_it;

	for (char i = '0'; i <= '9'; i++)
		map.insert(ft::make_pair(i, i));

	it = map.upper_bound('0');
	if (it != map.end())
		std::cout << " [" << it->first << "] = " << it->second << std::endl;
	else
		std::cout << "end()" << std::endl;

	it = map.upper_bound('!');
	if (it != map.end())
		std::cout << " [" << it->first << "] = " << it->second << std::endl;
	else
		std::cout << "end()" << std::endl;

	const_it = map.upper_bound('?');
	if (const_it != map.end())
		std::cout << " [" << const_it->first << "] = " << const_it->second << std::endl;
	else
		std::cout << "end()" << std::endl;

	const_it = map.upper_bound('-');
	if (const_it != map.end())
		std::cout << " [" << const_it->first << "] = " << const_it->second << std::endl;
	else
		std::cout << "end()" << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1c0, %rsp            # imm = 0x1C0
leaq -0x30(%rbp), %rdi
callq 0x1bf70
leaq -0x38(%rbp), %rdi
callq 0x1bf90
leaq -0x40(%rbp), %rdi
callq 0x1c2e0
movb $0x30, -0x41(%rbp)
movsbl -0x41(%rbp), %eax
cmpl $0x39, %eax
jg 0x1ae67
leaq -0x41(%rbp), %rsi
movq %rsi, %rdi
callq 0x1bff0
movw %ax, -0xea(%rbp)
jmp 0x1ae08
movw -0xea(%rbp), %ax
movw %ax, -0x43(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x43(%rbp), %rsi
callq 0x1bfb0
movb %dl, -0xf9(%rbp)
movq %rax, -0xf8(%rbp)
jmp 0x1ae2f
movb -0xf9(%rbp), %al
movq -0xf8(%rbp), %rcx
movq %rcx, -0x68(%rbp)
movb %al, -0x60(%rbp)
movb -0x41(%rbp), %al
addb $0x1, %al
movb %al, -0x41(%rbp)
jmp 0x1adea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x1c230
jmp 0x1b34b
movb $0x30, -0x71(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x71(%rbp), %rsi
callq 0x1c3c0
movq %rax, -0x108(%rbp)
jmp 0x1ae81
movq -0x108(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x1c1c0
movq %rax, -0x80(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x1c160
testb $0x1, %al
jne 0x1aeb7
jmp 0x1af48
movq 0x600fa(%rip), %rdi     # 0x7afb8
leaq 0x3c752(%rip), %rsi     # 0x57617
callq 0x31e0
movq %rax, -0x110(%rbp)
jmp 0x1aed3
leaq -0x38(%rbp), %rdi
callq 0x1c330
movq -0x110(%rbp), %rdi
movsbl (%rax), %esi
callq 0x3250
movq %rax, -0x118(%rbp)
jmp 0x1aef4
movq -0x118(%rbp), %rdi
leaq 0x3c718(%rip), %rsi     # 0x5761a
callq 0x31e0
movq %rax, -0x120(%rbp)
jmp 0x1af10
leaq -0x38(%rbp), %rdi
callq 0x1c330
movq -0x120(%rbp), %rdi
movl 0x4(%rax), %esi
callq 0x3350
movq %rax, -0x128(%rbp)
jmp 0x1af31
movq -0x128(%rbp), %rdi
movq 0x60059(%rip), %rsi     # 0x7af98
callq 0x3220
jmp 0x1af46
jmp 0x1af7b
movq 0x60069(%rip), %rdi     # 0x7afb8
leaq 0x3c436(%rip), %rsi     # 0x5738c
callq 0x31e0
movq %rax, -0x130(%rbp)
jmp 0x1af64
movq -0x130(%rbp), %rdi
movq 0x60026(%rip), %rsi     # 0x7af98
callq 0x3220
jmp 0x1af79
jmp 0x1af7b
movb $0x21, -0x89(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x89(%rbp), %rsi
callq 0x1c3c0
movq %rax, -0x138(%rbp)
jmp 0x1af9b
movq -0x138(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x1c1c0
movq %rax, -0x98(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x1c160
testb $0x1, %al
jne 0x1afdd
jmp 0x1b06e
movq 0x5ffd4(%rip), %rdi     # 0x7afb8
leaq 0x3c62c(%rip), %rsi     # 0x57617
callq 0x31e0
movq %rax, -0x140(%rbp)
jmp 0x1aff9
leaq -0x38(%rbp), %rdi
callq 0x1c330
movq -0x140(%rbp), %rdi
movsbl (%rax), %esi
callq 0x3250
movq %rax, -0x148(%rbp)
jmp 0x1b01a
movq -0x148(%rbp), %rdi
leaq 0x3c5f2(%rip), %rsi     # 0x5761a
callq 0x31e0
movq %rax, -0x150(%rbp)
jmp 0x1b036
leaq -0x38(%rbp), %rdi
callq 0x1c330
movq -0x150(%rbp), %rdi
movl 0x4(%rax), %esi
callq 0x3350
movq %rax, -0x158(%rbp)
jmp 0x1b057
movq -0x158(%rbp), %rdi
movq 0x5ff33(%rip), %rsi     # 0x7af98
callq 0x3220
jmp 0x1b06c
jmp 0x1b0a1
movq 0x5ff43(%rip), %rdi     # 0x7afb8
leaq 0x3c310(%rip), %rsi     # 0x5738c
callq 0x31e0
movq %rax, -0x160(%rbp)
jmp 0x1b08a
movq -0x160(%rbp), %rdi
movq 0x5ff00(%rip), %rsi     # 0x7af98
callq 0x3220
jmp 0x1b09f
jmp 0x1b0a1
movb $0x3f, -0xa9(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0xa9(%rbp), %rsi
callq 0x1c3c0
movq %rax, -0x168(%rbp)
jmp 0x1b0c1
movq -0x168(%rbp), %rax
movq %rax, -0xa8(%rbp)
leaq -0xa0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x1c350
movq -0xa0(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x1c1c0
movq %rax, -0xc0(%rbp)
leaq -0xb8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x1c350
leaq -0x40(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x1c370
testb $0x1, %al
jne 0x1b129
jmp 0x1b1ba
movq 0x5fe88(%rip), %rdi     # 0x7afb8
leaq 0x3c4e0(%rip), %rsi     # 0x57617
callq 0x31e0
movq %rax, -0x170(%rbp)
jmp 0x1b145
leaq -0x40(%rbp), %rdi
callq 0x1c3a0
movq -0x170(%rbp), %rdi
movsbl (%rax), %esi
callq 0x3250
movq %rax, -0x178(%rbp)
jmp 0x1b166
movq -0x178(%rbp), %rdi
leaq 0x3c4a6(%rip), %rsi     # 0x5761a
callq 0x31e0
movq %rax, -0x180(%rbp)
jmp 0x1b182
leaq -0x40(%rbp), %rdi
callq 0x1c3a0
movq -0x180(%rbp), %rdi
movl 0x4(%rax), %esi
callq 0x3350
movq %rax, -0x188(%rbp)
jmp 0x1b1a3
movq -0x188(%rbp), %rdi
movq 0x5fde7(%rip), %rsi     # 0x7af98
callq 0x3220
jmp 0x1b1b8
jmp 0x1b1ed
movq 0x5fdf7(%rip), %rdi     # 0x7afb8
leaq 0x3c1c4(%rip), %rsi     # 0x5738c
callq 0x31e0
movq %rax, -0x190(%rbp)
jmp 0x1b1d6
movq -0x190(%rbp), %rdi
movq 0x5fdb4(%rip), %rsi     # 0x7af98
callq 0x3220
jmp 0x1b1eb
jmp 0x1b1ed
movb $0x2d, -0xd1(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0xd1(%rbp), %rsi
callq 0x1c3c0
movq %rax, -0x198(%rbp)
jmp 0x1b20d
movq -0x198(%rbp), %rax
movq %rax, -0xd0(%rbp)
leaq -0xc8(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x1c350
movq -0xc8(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x1c1c0
movq %rax, -0xe8(%rbp)
leaq -0xe0(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x1c350
leaq -0x40(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x1c370
testb $0x1, %al
jne 0x1b275
jmp 0x1b306
movq 0x5fd3c(%rip), %rdi     # 0x7afb8
leaq 0x3c394(%rip), %rsi     # 0x57617
callq 0x31e0
movq %rax, -0x1a0(%rbp)
jmp 0x1b291
leaq -0x40(%rbp), %rdi
callq 0x1c3a0
movq -0x1a0(%rbp), %rdi
movsbl (%rax), %esi
callq 0x3250
movq %rax, -0x1a8(%rbp)
jmp 0x1b2b2
movq -0x1a8(%rbp), %rdi
leaq 0x3c35a(%rip), %rsi     # 0x5761a
callq 0x31e0
movq %rax, -0x1b0(%rbp)
jmp 0x1b2ce
leaq -0x40(%rbp), %rdi
callq 0x1c3a0
movq -0x1b0(%rbp), %rdi
movl 0x4(%rax), %esi
callq 0x3350
movq %rax, -0x1b8(%rbp)
jmp 0x1b2ef
movq -0x1b8(%rbp), %rdi
movq 0x5fc9b(%rip), %rsi     # 0x7af98
callq 0x3220
jmp 0x1b304
jmp 0x1b339
movq 0x5fcab(%rip), %rdi     # 0x7afb8
leaq 0x3c078(%rip), %rsi     # 0x5738c
callq 0x31e0
movq %rax, -0x1c0(%rbp)
jmp 0x1b322
movq -0x1c0(%rbp), %rdi
movq 0x5fc68(%rip), %rsi     # 0x7af98
callq 0x3220
jmp 0x1b337
jmp 0x1b339
leaq -0x30(%rbp), %rdi
callq 0x1c230
addq $0x1c0, %rsp            # imm = 0x1C0
popq %rbp
retq
movq -0x50(%rbp), %rdi
callq 0x3360
nopw %cs:(%rax,%rax)