// File: /workspace/github_cpp_makefile_star2_O2/planaria[P]cb_tree/tests/floating_test.cpp
// Function: void test_floating<float>()
void test_floating()
{
	std::mt19937 generator;
	std::uniform_real_distribution<T> random_real(
		-std::numeric_limits<T>::max() / 2,
		std::numeric_limits<T>::max() / 2);

	cb_tree::cb_set<T> cb_set;
	std::set<T> set;

	for (std::size_t i = 0; i < 10000; ++i)
	{
		T value = random_real(generator);
		cb_set.insert(value);
		set.insert(value);
	}

	REQUIRE(cb_set.size() == set.size());
	CHECK(std::equal(cb_set.begin(), cb_set.end(), set.begin()));
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x16b8, %rsp           # imm = 0x16B8
leaq 0x330(%rsp), %rbx
movq %rbx, %rdi
callq 0x14f6c
movsd 0x308e3(%rip), %xmm0    # 0x452e0
leaq 0x88(%rsp), %r14
leaq 0x30(%rsp), %rax
movb $0x1, 0x8(%rax)
movq %rax, -0x8(%rax)
andq $0x0, (%rax)
movsd %xmm0, (%r14)
andq $0x0, 0x10(%rax)
leaq 0x60(%rsp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
movl $0x2710, %ebp           # imm = 0x2710
leaq 0x28(%rsp), %r15
leaq 0x90(%rsp), %r12
leaq 0x58(%rsp), %r13
subq $0x1, %rbp
jb 0x14a83
movq %r14, %rdi
movq %rbx, %rsi
callq 0x14f76
movss %xmm0, 0x90(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x1528e
movq %r13, %rdi
movq %r12, %rsi
callq 0x159be
jmp 0x14a51
leaq 0x308ae(%rip), %rsi     # 0x45338
movq %rsp, %rdi
pushq $0x17
popq %rdx
callq 0x25acc
leaq 0x2cee9(%rip), %rsi     # 0x41985
leaq 0x308b6(%rip), %rcx     # 0x45359
leaq 0x3ea5e(%rip), %r9      # 0x53508
leaq 0x90(%rsp), %rbx
movq %rsp, %rdx
pushq $0x1
popq %r8
movq %rbx, %rdi
callq 0x26712
movq %rsp, %r14
movq %r14, %rdi
callq 0xa798
movq 0x40(%rsp), %rax
leaq 0x50(%rsp), %rcx
movq %rax, (%rcx)
movq %rbx, (%r14)
movq %rcx, 0x8(%r14)
movq 0x80(%rsp), %rax
leaq 0x48(%rsp), %rsi
movq %rax, (%rsi)
movq %rsp, %rdi
callq 0x15b26
movq %rax, %rdi
callq 0x268e4
leaq 0x90(%rsp), %rdi
callq 0x26c18
leaq 0x90(%rsp), %rdi
callq 0x26bf4
leaq 0x90(%rsp), %rdi
callq 0xb736
leaq 0x3080a(%rip), %rsi     # 0x45338
movq %rsp, %rdi
pushq $0x18
popq %rdx
callq 0x25acc
leaq 0x2b501(%rip), %rsi     # 0x40041
leaq 0x3082e(%rip), %rcx     # 0x45375
leaq 0x3e9ba(%rip), %r9      # 0x53508
leaq 0x90(%rsp), %rbx
movq %rsp, %rdx
pushq $0x2
popq %r8
movq %rbx, %rdi
callq 0x26712
movq %rsp, %rdi
callq 0xa798
leaq 0x28(%rsp), %rdi
callq 0x14f7e
movq %rax, %r14
leaq 0x28(%rsp), %rdi
callq 0x14f9c
movq 0x70(%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x15c18
movq %rsp, %rdi
movq %rbx, (%rdi)
movb %al, 0x8(%rdi)
callq 0xcab2
leaq 0x90(%rsp), %rdi
callq 0x26c18
leaq 0x90(%rsp), %rdi
callq 0x26bf4
leaq 0x90(%rsp), %rdi
callq 0xb736
leaq 0x58(%rsp), %rdi
callq 0x15cd4
leaq 0x28(%rsp), %rdi
callq 0x14fbc
addq $0x16b8, %rsp           # imm = 0x16B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x14bf6
jmp 0x14c79
movq %rax, %rbx
movq %rsp, %rdi
callq 0xa798
jmp 0x14c7c
jmp 0x14c79
movq %rax, %rdi
callq 0xa180
leaq 0x90(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x26944
callq 0xa630
jmp 0x14b00
movq %rax, %rbx
callq 0xa630
jmp 0x14c6a
jmp 0x14c67
movq %rax, %rdi
callq 0xa180
leaq 0x90(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x26944
callq 0xa630
jmp 0x14ba2
movq %rax, %rbx
callq 0xa630
jmp 0x14c6a
movq %rax, %rdi
callq 0xb6ee
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xb736
jmp 0x14c7c
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x15cd4
leaq 0x28(%rsp), %rdi
callq 0x14fbc
movq %rbx, %rdi
callq 0xa6b0