// File: /workspace/github_c_makefile_star2_O0/deplinenoise[P]tundra/unittest/Test_HashTable.cpp
// Function: HashSetTest_MultiDistinct_Test::TestBody()
TEST_F(HashSetTest, MultiDistinct)
{
  HashSet<kFlagCaseSensitive> tbl;
  HashSetInit(&tbl, &heap);

  for (int i = 0; i < 2048; ++i)
  {
    char str[128];
    sprintf(str, "foo%d", i);
    HashSetInsert(&tbl, Djb2Hash(str), StrDup(&alloc, str));
  }
  EXPECT_EQ(2048, tbl.m_RecordCount);

  for (int i = 0; i < 2048; ++i)
  {
    char str[128];
    sprintf(str, "foo%d", i);
    EXPECT_TRUE(HashSetLookup(&tbl, Djb2Hash(str), str));
  }
  HashSetDestroy(&tbl);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x210, %rsp            # imm = 0x210
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
movq %rsi, -0x1d0(%rbp)
addq $0x10, %rsi
leaq -0x30(%rbp), %rdi
callq 0x69a60
movl $0x0, -0x34(%rbp)
cmpl $0x800, -0x34(%rbp)     # imm = 0x800
jge 0x68e45
leaq -0xc0(%rbp), %rdi
movl -0x34(%rbp), %edx
leaq 0x25b4d(%rip), %rsi     # 0x8e945
movb $0x0, %al
callq 0xe110
leaq -0xc0(%rbp), %rdi
callq 0x6bda0
movq -0x1d0(%rbp), %rdi
movl %eax, -0x1d4(%rbp)
addq $0x18, %rdi
leaq -0xc0(%rbp), %rsi
callq 0x69860
movl -0x1d4(%rbp), %esi
movq %rax, %rdx
leaq -0x30(%rbp), %rdi
callq 0x69b00
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x68dde
movl $0x800, -0xd4(%rbp)     # imm = 0x800
leaq -0x18(%rbp), %r8
leaq 0x25af1(%rip), %rsi     # 0x8e94b
leaq 0x25abc(%rip), %rdx     # 0x8e91d
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x1e0(%rbp)
leaq -0xd4(%rbp), %rcx
callq 0x61ee0
movq -0x1e0(%rbp), %rdi
callq 0x31090
movb %al, -0x1d5(%rbp)
jmp 0x68e8f
movb -0x1d5(%rbp), %al
testb $0x1, %al
jne 0x68e9b
jmp 0x68eb7
jmp 0x68f72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x6902d
leaq -0xf0(%rbp), %rdi
callq 0x16d70
jmp 0x68ec5
leaq -0xd0(%rbp), %rdi
callq 0x310b0
movq %rax, -0x1e8(%rbp)
jmp 0x68eda
movq -0x1e8(%rbp), %r8
leaq 0x25a19(%rip), %rdx     # 0x8e901
leaq -0xf8(%rbp), %rdi
movl $0x1, %esi
movl $0x91, %ecx
callq 0x13fa0
jmp 0x68f00
leaq -0xf8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x14060
jmp 0x68f15
leaq -0xf8(%rbp), %rdi
callq 0x14020
leaq -0xf0(%rbp), %rdi
callq 0x31070
jmp 0x68f72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x68f61
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x14020
leaq -0xf0(%rbp), %rdi
callq 0x31070
jmp 0x6902d
leaq -0xd0(%rbp), %rdi
callq 0x30d20
movl $0x0, -0xfc(%rbp)
cmpl $0x800, -0xfc(%rbp)     # imm = 0x800
jge 0x69184
movl -0xfc(%rbp), %edx
leaq 0x259a0(%rip), %rsi     # 0x8e945
xorl %eax, %eax
movl %eax, -0x1fc(%rbp)
leaq -0x180(%rbp), %rdi
movq %rdi, -0x208(%rbp)
callq 0xe110
movq -0x208(%rbp), %rdi
callq 0x6bda0
movq -0x208(%rbp), %rdx
movl %eax, %esi
leaq -0x30(%rbp), %rdi
callq 0x69b30
movb %al, %cl
movl -0x1fc(%rbp), %eax
movb %cl, -0x191(%rbp)
movl %eax, %edx
leaq -0x190(%rbp), %rdi
movq %rdi, -0x1f8(%rbp)
leaq -0x191(%rbp), %rsi
callq 0x31470
movq -0x1f8(%rbp), %rdi
callq 0x31090
movb %al, -0x1e9(%rbp)
jmp 0x6901c
movb -0x1e9(%rbp), %al
testb $0x1, %al
jne 0x69028
jmp 0x69055
jmp 0x69156
leaq -0xd0(%rbp), %rdi
callq 0x30d20
jmp 0x69196
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x69176
leaq -0x1a0(%rbp), %rdi
callq 0x16d70
jmp 0x69063
leaq 0x2592e(%rip), %rdx     # 0x8e998
leaq 0x227b2(%rip), %rcx     # 0x8b823
leaq 0x21c02(%rip), %r8      # 0x8ac7a
leaq -0x1c8(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x18e00
jmp 0x6908d
leaq -0x1c8(%rbp), %rdi
callq 0xe2b0
movq %rax, %r8
leaq 0x2585e(%rip), %rdx     # 0x8e901
leaq -0x1a8(%rbp), %rdi
movl $0x1, %esi
movl $0x97, %ecx
callq 0x13fa0
jmp 0x690bb
leaq -0x1a8(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x14060
jmp 0x690d0
leaq -0x1a8(%rbp), %rdi
callq 0x14020
leaq -0x1c8(%rbp), %rdi
callq 0xf058
leaq -0x1a0(%rbp), %rdi
callq 0x31070
jmp 0x69156
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x69148
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x6913c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x14020
leaq -0x1c8(%rbp), %rdi
callq 0xf058
leaq -0x1a0(%rbp), %rdi
callq 0x31070
jmp 0x69176
leaq -0x190(%rbp), %rdi
callq 0x30d20
movl -0xfc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xfc(%rbp)
jmp 0x68f88
leaq -0x190(%rbp), %rdi
callq 0x30d20
jmp 0x69196
leaq -0x30(%rbp), %rdi
callq 0x69a90
addq $0x210, %rsp            # imm = 0x210
popq %rbp
retq
movq -0xe0(%rbp), %rdi
callq 0xee80
nopw %cs:(%rax,%rax)