// File: /workspace/github_cpp_makefile_star2_O2/planaria[P]cb_tree/tests/integer_test.cpp
// Function: void test_integer<long>()
void test_integer()
{
	std::mt19937 generator;
	std::uniform_int_distribution<T> random_int(
		std::numeric_limits<T>::min(),
		std::numeric_limits<T>::max());

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

	for (std::size_t i = 0; i < 10000; ++i)
	{
		T value = random_int(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 $0x16c8, %rsp           # imm = 0x16C8
leaq 0x340(%rsp), %rbx
movq %rbx, %rdi
callq 0x14f6c
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
leaq 0x1(%rax), %rcx
leaq 0x90(%rsp), %r14
movq %rcx, (%r14)
leaq 0x38(%rsp), %rcx
movb $0x1, 0x8(%rcx)
movq %rcx, -0x8(%rcx)
andq $0x0, (%rcx)
movq %rax, 0x8(%r14)
andq $0x0, 0x10(%rcx)
leaq 0x68(%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 0x30(%rsp), %r15
leaq 0xa0(%rsp), %r12
leaq 0x60(%rsp), %r13
subq $0x1, %rbp
jb 0x184f7
movq %r14, %rdi
movq %rbx, %rsi
callq 0x1bb44
movq %rax, 0xa0(%rsp)
movq %r15, %rdi
movq %r12, %rsi
callq 0x1bc8a
movq %r13, %rdi
movq %r12, %rsi
callq 0x1c31a
jmp 0x184c6
leaq 0x2e853(%rip), %rsi     # 0x46d51
leaq 0x8(%rsp), %rdi
pushq $0x17
popq %rdx
callq 0x25acc
leaq 0x29473(%rip), %rsi     # 0x41985
leaq 0x2ce40(%rip), %rcx     # 0x45359
leaq 0x3afe8(%rip), %r9      # 0x53508
leaq 0xa0(%rsp), %rbx
leaq 0x8(%rsp), %rdx
pushq $0x1
popq %r8
movq %rbx, %rdi
callq 0x26712
leaq 0x8(%rsp), %r14
movq %r14, %rdi
callq 0xa798
movq 0x48(%rsp), %rax
leaq 0x58(%rsp), %rcx
movq %rax, (%rcx)
movq %rbx, (%r14)
movq %rcx, 0x8(%r14)
movq 0x88(%rsp), %rax
leaq 0x50(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x8(%rsp), %rdi
callq 0x15b26
movq %rax, %rdi
callq 0x268e4
leaq 0xa0(%rsp), %rdi
callq 0x26c18
leaq 0xa0(%rsp), %rdi
callq 0x26bf4
leaq 0xa0(%rsp), %rdi
callq 0xb736
leaq 0x2e7a7(%rip), %rsi     # 0x46d51
leaq 0x8(%rsp), %rdi
pushq $0x18
popq %rdx
callq 0x25acc
leaq 0x27a83(%rip), %rsi     # 0x40041
leaq 0x2cdb0(%rip), %rcx     # 0x45375
leaq 0x3af3c(%rip), %r9      # 0x53508
leaq 0xa0(%rsp), %rbx
leaq 0x8(%rsp), %rdx
pushq $0x2
popq %r8
movq %rbx, %rdi
callq 0x26712
leaq 0x8(%rsp), %rdi
callq 0xa798
leaq 0x30(%rsp), %rdi
callq 0x1bb4c
movq %rax, %r14
leaq 0x30(%rsp), %rdi
callq 0x1bb6a
movq 0x78(%rsp), %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x1c474
leaq 0x8(%rsp), %rdi
movq %rbx, (%rdi)
movb %al, 0x8(%rdi)
callq 0xcab2
leaq 0xa0(%rsp), %rdi
callq 0x26c18
leaq 0xa0(%rsp), %rdi
callq 0x26bf4
leaq 0xa0(%rsp), %rdi
callq 0xb736
leaq 0x60(%rsp), %rdi
callq 0x1c52c
leaq 0x30(%rsp), %rdi
callq 0x1bb8a
addq $0x16c8, %rsp           # imm = 0x16C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1867a
jmp 0x186ff
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xa798
jmp 0x18702
jmp 0x186ff
movq %rax, %rdi
callq 0xa180
leaq 0xa0(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x26944
callq 0xa630
jmp 0x1857c
movq %rax, %rbx
callq 0xa630
jmp 0x186f0
jmp 0x186ed
movq %rax, %rdi
callq 0xa180
leaq 0xa0(%rsp), %rdi
pushq $0x1
popq %rsi
callq 0x26944
callq 0xa630
jmp 0x18626
movq %rax, %rbx
callq 0xa630
jmp 0x186f0
movq %rax, %rdi
callq 0xb6ee
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0xb736
jmp 0x18702
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x1c52c
leaq 0x30(%rsp), %rdi
callq 0x1bb8a
movq %rbx, %rdi
callq 0xa6b0