// File: /workspace/github_cpp_makefile_star2_O2/aalto-speech[P]ftk/test/sstest.cc
// Function: StringSetTest3::test_method()
BOOST_AUTO_TEST_CASE(StringSetTest3)
{
    map<string, flt_type> vocab;
    vocab["hei"] = -1.0;
    vocab["heippa"] = -2.0;
    vocab["heh"] = -3.0;
    StringSet ss(vocab);

    BOOST_CHECK ( ss.includes("hei") );
    BOOST_CHECK ( ss.includes("heippa") );
    BOOST_CHECK ( ss.includes("heh") );

    ss.remove("hei");
    BOOST_CHECK ( ss.includes("heh") );
    BOOST_CHECK ( ss.includes("heippa") );
    BOOST_CHECK ( !ss.includes("hei") );

    BOOST_CHECK_EQUAL ( -2.0, ss.get_score("heippa") );
    BOOST_CHECK_EQUAL ( -3.0, ss.get_score("heh") );

    bool throws = false;
    try {
        ss.get_score("hei");
    }
    catch (string &e) {
        throws = true;
    }
    BOOST_CHECK( throws );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x398, %rsp            # imm = 0x398
leaq -0xe8(%rbp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq 0x2c4a3(%rip), %rsi     # 0x53766
leaq -0x210(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x5160
leaq -0xf0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x1b3d2
movabsq $-0x4010000000000000, %rcx # imm = 0xBFF0000000000000
movq %rcx, (%rax)
leaq -0x210(%rbp), %rdi
callq 0x57b8
leaq 0x2c4bf(%rip), %rsi     # 0x537c5
leaq -0x210(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x5160
leaq -0xf0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x1b3d2
movabsq $-0x4000000000000000, %rcx # imm = 0xC000000000000000
movq %rcx, (%rax)
leaq -0x210(%rbp), %rdi
callq 0x57b8
leaq 0x2c483(%rip), %rsi     # 0x537cc
leaq -0x210(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x5160
leaq -0xf0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x1b3d2
movabsq $-0x3ff8000000000000, %rcx # imm = 0xC008000000000000
movq %rcx, (%rax)
leaq -0x210(%rbp), %rdi
callq 0x57b8
leaq -0x210(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xdbec
movq 0x49169(%rip), %rdi     # 0x70508
leaq 0x2c3b1(%rip), %r12     # 0x53757
leaq -0x3a0(%rbp), %rsi
movq %r12, (%rsi)
leaq 0x2c3ae(%rip), %r13     # 0x53765
movq %r13, 0x8(%rsi)
leaq 0x2c653(%rip), %r15     # 0x53a15
leaq -0x390(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
pushq $0x54
popq %rdx
callq 0x5710
leaq 0x2c387(%rip), %rsi     # 0x53766
leaq -0x50(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x5160
leaq -0x210(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xe0d6
leaq -0x78(%rbp), %rdi
movb %al, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq 0x2c4cd(%rip), %rax     # 0x538dd
leaq -0x60(%rbp), %rcx
movq %rax, (%rcx)
leaq 0x2c4d1(%rip), %rax     # 0x538ef
movq %rax, 0x8(%rcx)
leaq -0x98(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x4873c(%rip), %rax     # 0x6fb70
movq %rax, (%rsi)
movq 0x48b72(%rip), %rax     # 0x6ffb0
movq %rax, 0x10(%rsi)
movq %rcx, 0x18(%rsi)
leaq -0x380(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x54
popq %rcx
pushq $0x1
popq %r8
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x56f0
leaq -0x68(%rbp), %rdi
callq 0x291f6
leaq -0x50(%rbp), %rdi
callq 0x57b8
movq 0x49085(%rip), %rdi     # 0x70508
leaq -0x370(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x360(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
pushq $0x55
popq %rdx
callq 0x5710
leaq 0x2c317(%rip), %rsi     # 0x537c5
leaq -0x50(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x5160
leaq -0x210(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xe0d6
leaq -0x78(%rbp), %rdi
movb %al, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq 0x2c2fe(%rip), %rax     # 0x537dd
movq %rax, -0x60(%rbp)
leaq 0x2c308(%rip), %rax     # 0x537f2
movq %rax, -0x58(%rbp)
leaq -0x98(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x48670(%rip), %rax     # 0x6fb70
movq %rax, (%rsi)
movq 0x48aa6(%rip), %rax     # 0x6ffb0
movq %rax, 0x10(%rsi)
leaq -0x60(%rbp), %rax
movq %rax, 0x18(%rsi)
leaq -0x350(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x55
popq %rcx
pushq $0x1
popq %r8
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x56f0
leaq -0x68(%rbp), %rdi
callq 0x291f6
leaq -0x50(%rbp), %rdi
callq 0x57b8
movq 0x48fb5(%rip), %rdi     # 0x70508
leaq -0x340(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x330(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
pushq $0x56
popq %rdx
callq 0x5710
leaq 0x2c24e(%rip), %rsi     # 0x537cc
leaq -0x50(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x5160
leaq -0x210(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xe0d6
leaq -0x78(%rbp), %rdi
movb %al, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq 0x2c244(%rip), %rbx     # 0x537f3
movq %rbx, -0x60(%rbp)
leaq 0x2c24b(%rip), %r14     # 0x53805
movq %r14, -0x58(%rbp)
leaq -0x98(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x485a0(%rip), %rax     # 0x6fb70
movq %rax, (%rsi)
movq 0x489d6(%rip), %rax     # 0x6ffb0
movq %rax, 0x10(%rsi)
leaq -0x60(%rbp), %rax
movq %rax, 0x18(%rsi)
leaq -0x320(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x56
popq %rcx
pushq $0x1
popq %r8
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x56f0
leaq -0x68(%rbp), %rdi
callq 0x291f6
leaq -0x50(%rbp), %rdi
callq 0x57b8
leaq 0x2c143(%rip), %rsi     # 0x53766
leaq -0x50(%rbp), %rdi
leaq -0x98(%rbp), %rdx
callq 0x5160
leaq -0x210(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xe1f6
leaq -0x50(%rbp), %rdi
callq 0x57b8
movq 0x48eb5(%rip), %rdi     # 0x70508
leaq -0x310(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x300(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
pushq $0x59
popq %rdx
callq 0x5710
leaq 0x2c14e(%rip), %rsi     # 0x537cc
leaq -0x50(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x5160
leaq -0x210(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xe0d6
leaq -0x78(%rbp), %rdi
movb %al, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
movq %rbx, -0x60(%rbp)
movq %r14, -0x58(%rbp)
leaq -0x98(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x484ae(%rip), %rax     # 0x6fb70
movq %rax, (%rsi)
movq 0x488e4(%rip), %rax     # 0x6ffb0
movq %rax, 0x10(%rsi)
leaq -0x60(%rbp), %rax
movq %rax, 0x18(%rsi)
leaq -0x2f0(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x59
popq %rcx
pushq $0x1
popq %r8
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x56f0
leaq -0x68(%rbp), %rdi
callq 0x291f6
leaq -0x50(%rbp), %rdi
callq 0x57b8
movq 0x48df3(%rip), %rdi     # 0x70508
leaq -0x2e0(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x2d0(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
pushq $0x5a
popq %rdx
callq 0x5710
leaq 0x2c085(%rip), %rsi     # 0x537c5
leaq -0x50(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x5160
leaq -0x210(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xe0d6
leaq -0x78(%rbp), %rdi
movb %al, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq 0x2c06c(%rip), %rax     # 0x537dd
movq %rax, -0x60(%rbp)
leaq 0x2c076(%rip), %rax     # 0x537f2
movq %rax, -0x58(%rbp)
leaq -0x98(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x483de(%rip), %rax     # 0x6fb70
movq %rax, (%rsi)
movq 0x48814(%rip), %rax     # 0x6ffb0
movq %rax, 0x10(%rsi)
leaq -0x60(%rbp), %rax
movq %rax, 0x18(%rsi)
leaq -0x2c0(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x5a
popq %rcx
pushq $0x1
popq %r8
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x56f0
leaq -0x68(%rbp), %rdi
callq 0x291f6
leaq -0x50(%rbp), %rdi
callq 0x57b8
movq 0x48d23(%rip), %rdi     # 0x70508
leaq -0x2b0(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x2a0(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
pushq $0x5b
popq %rdx
callq 0x5710
leaq 0x2bf56(%rip), %rsi     # 0x53766
leaq -0x50(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x5160
leaq -0x210(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xe0d6
xorb $0x1, %al
leaq -0x78(%rbp), %rdi
movb %al, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq 0x2c099(%rip), %rax     # 0x538dc
movq %rax, -0x60(%rbp)
leaq 0x2c0a1(%rip), %rax     # 0x538ef
movq %rax, -0x58(%rbp)
leaq -0x98(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x4830c(%rip), %rax     # 0x6fb70
movq %rax, (%rsi)
movq 0x48742(%rip), %rax     # 0x6ffb0
movq %rax, 0x10(%rsi)
leaq -0x60(%rbp), %rax
movq %rax, 0x18(%rsi)
leaq -0x290(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x5b
popq %rcx
pushq $0x1
popq %r8
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x56f0
leaq -0x68(%rbp), %rdi
callq 0x291f6
leaq -0x50(%rbp), %rdi
callq 0x57b8
movq 0x48c51(%rip), %rdi     # 0x70508
leaq -0x280(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x270(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
pushq $0x5d
popq %rdx
callq 0x5710
movb $0x0, -0x48(%rbp)
leaq 0x481fa(%rip), %rbx     # 0x6fae0
movq %rbx, -0x50(%rbp)
movq 0x486bf(%rip), %rax     # 0x6ffb0
movq %rax, -0x40(%rbp)
leaq 0x2ba5b(%rip), %r14     # 0x53357
movq %r14, -0x38(%rbp)
movq %r12, -0xc0(%rbp)
movq %r13, -0xb8(%rbp)
movabsq $-0x4000000000000000, %rax # imm = 0xC000000000000000
movq %rax, -0x78(%rbp)
leaq 0x2bea2(%rip), %rsi     # 0x537c5
leaq -0x98(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x5160
leaq -0x210(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xe12a
movsd %xmm0, -0x60(%rbp)
leaq 0x2bf14(%rip), %rax     # 0x53866
movq %rax, 0x10(%rsp)
leaq -0x60(%rbp), %rax
movq %rax, 0x8(%rsp)
leaq 0x2befa(%rip), %rax     # 0x53861
movq %rax, (%rsp)
leaq -0x50(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
pushq $0x5d
popq %rdx
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
leaq -0x78(%rbp), %r9
callq 0x2903d
leaq -0x98(%rbp), %rdi
callq 0x57b8
movq 0x48b6c(%rip), %rdi     # 0x70508
leaq -0x260(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x250(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
pushq $0x5e
popq %rdx
callq 0x5710
movb $0x0, -0x48(%rbp)
movq %rbx, -0x50(%rbp)
movq 0x485e1(%rip), %rax     # 0x6ffb0
movq %rax, -0x40(%rbp)
movq %r14, -0x38(%rbp)
movq %r12, -0xb0(%rbp)
movq %r13, -0xa8(%rbp)
movabsq $-0x3ff8000000000000, %rax # imm = 0xC008000000000000
movq %rax, -0x78(%rbp)
leaq 0x2bdd2(%rip), %rsi     # 0x537cc
leaq -0x98(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x5160
leaq -0x210(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0xe12a
movsd %xmm0, -0x60(%rbp)
leaq 0x2be59(%rip), %rax     # 0x53882
movq %rax, 0x10(%rsp)
leaq -0x60(%rbp), %rax
movq %rax, 0x8(%rsp)
leaq 0x2be3f(%rip), %rax     # 0x5387d
movq %rax, (%rsp)
leaq -0x50(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
pushq $0x5e
popq %rdx
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
leaq -0x78(%rbp), %r14
movq %r14, %r9
callq 0x2903d
leaq -0x98(%rbp), %rdi
callq 0x57b8
leaq 0x2bcf0(%rip), %rsi     # 0x53766
leaq -0x50(%rbp), %rdi
leaq -0x98(%rbp), %rdx
callq 0x5160
leaq -0x210(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xe12a
leaq -0x50(%rbp), %rdi
callq 0x57b8
xorl %ebx, %ebx
movq 0x48a60(%rip), %rdi     # 0x70508
leaq -0x240(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x230(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
pushq $0x67
popq %rdx
callq 0x5710
leaq -0x98(%rbp), %rdi
movb %bl, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq 0x2bca5(%rip), %rax     # 0x53788
movq %rax, -0x78(%rbp)
leaq 0x2bca0(%rip), %rax     # 0x5378e
movq %rax, -0x70(%rbp)
leaq -0x50(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x4806f(%rip), %rax     # 0x6fb70
movq %rax, (%rsi)
movq 0x484a5(%rip), %rax     # 0x6ffb0
movq %rax, 0x10(%rsi)
movq %r14, 0x18(%rsi)
leaq -0x220(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
andq $0x0, (%rsp)
pushq $0x67
popq %rcx
pushq $0x1
popq %r8
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x56f0
leaq -0x88(%rbp), %rdi
callq 0x291f6
leaq -0x210(%rbp), %rdi
callq 0xdea0
leaq -0xf0(%rbp), %rdi
callq 0x1bba4
addq $0x398, %rsp            # imm = 0x398
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x88(%rbp), %rdi
callq 0x291f6
jmp 0x27c3d
movq %rdx, -0xa0(%rbp)
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x57b8
jmp 0x27ba5
jmp 0x27c3a
movq %rdx, -0xa0(%rbp)
movq %rax, %rbx
cmpl $0x1, -0xa0(%rbp)
jne 0x27c3d
movq %rbx, %rdi
callq 0x5170
movb $0x1, %bl
callq 0x5610
jmp 0x27aa1
jmp 0x27c3a
jmp 0x27c3a
jmp 0x27c3a
jmp 0x27bee
jmp 0x27bfc
jmp 0x27c3a
jmp 0x27bee
jmp 0x27bfc
jmp 0x27c3a
jmp 0x27bee
jmp 0x27bfc
jmp 0x27c3a
jmp 0x27bfc
jmp 0x27c3a
jmp 0x27bee
jmp 0x27bfc
jmp 0x27c3a
jmp 0x27bee
jmp 0x27bfc
jmp 0x27c3a
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
callq 0x291f6
jmp 0x27bff
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
jmp 0x27c33
jmp 0x27c3a
jmp 0x27c22
jmp 0x27c11
jmp 0x27c22
jmp 0x27c11
jmp 0x27c22
movq %rax, %rbx
leaq -0x210(%rbp), %rdi
callq 0x57b8
jmp 0x27c49
movq %rax, %rbx
jmp 0x27c49
jmp 0x27c29
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
callq 0x57b8
jmp 0x27c3d
movq %rax, %rbx
leaq -0x210(%rbp), %rdi
callq 0xdea0
leaq -0xf0(%rbp), %rdi
callq 0x1bba4
movq %rbx, %rdi
callq 0x56b0