// File: DimitriDaSilva[P]42_ft_containers/tester/others/test_pair.cpp
// Function: test_pair_constructors()
void
test_pair_constructors()
{
	ft::pair<std::string, double> product1;
	ft::pair<std::string, double> product2("tomatoes", 2.30);
	ft::pair<std::string, double> product3(product2);

	product2.first = "shoes";
	product2.second = 39.90;

	std::cout << "The price of " << product1.first << " is $" << product1.second << std::endl;
	std::cout << "The price of " << product2.first << " is $" << product2.second << std::endl;
	std::cout << "The price of " << product3.first << " is $" << product3.second << std::endl;

	{
		ft::pair<std::string, double> cpy1 = product1;
		ft::pair<std::string, double> cpy2 = product2;
		ft::pair<std::string, double> cpy3 = product3;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x170, %rsp            # imm = 0x170
leaq -0x28(%rbp), %rdi
callq 0x53230
movabsq $0x4002666666666666, %rax # imm = 0x4002666666666666
movq %rax, -0x58(%rbp)
leaq 0x5a39(%rip), %rsi      # 0x58282
leaq -0x50(%rbp), %rdi
leaq -0x58(%rbp), %rdx
callq 0x53260
jmp 0x52858
leaq -0x90(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x532f0
jmp 0x5286a
leaq 0x5a1a(%rip), %rsi      # 0x5828b
leaq -0x50(%rbp), %rdi
callq 0x3280
jmp 0x5287c
movabsq $0x4043f33333333333, %rax # imm = 0x4043F33333333333
movq %rax, -0x30(%rbp)
movq 0x28727(%rip), %rdi     # 0x7afb8
leaq 0x59f9(%rip), %rsi      # 0x58291
callq 0x31e0
movq %rax, -0x110(%rbp)
jmp 0x528a6
movq -0x110(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x31b0
movq %rax, -0x118(%rbp)
jmp 0x528bf
movq -0x118(%rbp), %rdi
leaq 0x59d2(%rip), %rsi      # 0x5829f
callq 0x31e0
movq %rax, -0x120(%rbp)
jmp 0x528db
movq -0x120(%rbp), %rdi
movsd -0x8(%rbp), %xmm0
callq 0x33a0
movq %rax, -0x128(%rbp)
jmp 0x528f5
movq -0x128(%rbp), %rdi
movq 0x28695(%rip), %rsi     # 0x7af98
callq 0x3220
jmp 0x5290a
movq 0x286a7(%rip), %rdi     # 0x7afb8
leaq 0x5979(%rip), %rsi      # 0x58291
callq 0x31e0
movq %rax, -0x130(%rbp)
jmp 0x52926
movq -0x130(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x31b0
movq %rax, -0x138(%rbp)
jmp 0x5293f
movq -0x138(%rbp), %rdi
leaq 0x5952(%rip), %rsi      # 0x5829f
callq 0x31e0
movq %rax, -0x140(%rbp)
jmp 0x5295b
movq -0x140(%rbp), %rdi
movsd -0x30(%rbp), %xmm0
callq 0x33a0
movq %rax, -0x148(%rbp)
jmp 0x52975
movq -0x148(%rbp), %rdi
movq 0x28615(%rip), %rsi     # 0x7af98
callq 0x3220
jmp 0x5298a
movq 0x28627(%rip), %rdi     # 0x7afb8
leaq 0x58f9(%rip), %rsi      # 0x58291
callq 0x31e0
movq %rax, -0x150(%rbp)
jmp 0x529a6
movq -0x150(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x31b0
movq %rax, -0x158(%rbp)
jmp 0x529c2
movq -0x158(%rbp), %rdi
leaq 0x58cf(%rip), %rsi      # 0x5829f
callq 0x31e0
movq %rax, -0x160(%rbp)
jmp 0x529de
movq -0x160(%rbp), %rdi
movsd -0x70(%rbp), %xmm0
callq 0x33a0
movq %rax, -0x168(%rbp)
jmp 0x529f8
movq -0x168(%rbp), %rdi
movq 0x28592(%rip), %rsi     # 0x7af98
callq 0x3220
jmp 0x52a0d
leaq -0xb8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x532f0
jmp 0x52a1f
leaq -0xe0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x532f0
jmp 0x52a31
leaq -0x108(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x532f0
jmp 0x52a46
leaq -0x108(%rbp), %rdi
callq 0x53330
leaq -0xe0(%rbp), %rdi
callq 0x53330
leaq -0xb8(%rbp), %rdi
callq 0x53330
leaq -0x90(%rbp), %rdi
callq 0x53330
leaq -0x50(%rbp), %rdi
callq 0x53330
leaq -0x28(%rbp), %rdi
callq 0x53330
addq $0x170, %rsp            # imm = 0x170
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x52b02
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x52af9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x52aed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x52ae1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x53330
leaq -0xb8(%rbp), %rdi
callq 0x53330
leaq -0x90(%rbp), %rdi
callq 0x53330
leaq -0x50(%rbp), %rdi
callq 0x53330
leaq -0x28(%rbp), %rdi
callq 0x53330
movq -0x60(%rbp), %rdi
callq 0x3360
nopw %cs:(%rax,%rax)