// File: /workspace/github_cpp_makefile_star2_O2/aalto-speech[P]ftk/test/sstest.cc
// Function: StringSetTest5::test_method()
BOOST_AUTO_TEST_CASE(StringSetTest5)
{
    map<string, flt_type> vocab;
    vocab["joo"] = 50;
    vocab["heippa"] = 10;
    vocab["hei"] = 10;
    vocab["heh"] = 15;

    StringSet ss(vocab);

    auto it = vocab.find(string("heippa"));
    vocab.erase(it);
    vocab["jepsis"] = 30;

    ss.assign_scores(vocab);
    BOOST_CHECK_EQUAL ( vocab["joo"], ss.get_score("joo") );
    BOOST_CHECK_EQUAL ( vocab["hei"], ss.get_score("hei") );
    BOOST_CHECK_EQUAL ( vocab["heh"], ss.get_score("heh") );
    BOOST_CHECK_EQUAL ( vocab["jepsis"], ss.get_score("jepsis") );

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2e8, %rsp            # imm = 0x2E8
leaq -0xc8(%rbp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq 0x2b237(%rip), %rsi     # 0x5390e
leaq -0x230(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x5160
leaq -0xd0(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x1b3d2
movabsq $0x4049000000000000, %rcx # imm = 0x4049000000000000
movq %rcx, (%rax)
leaq -0x230(%rbp), %rdi
callq 0x57b8
leaq 0x2b0ab(%rip), %rsi     # 0x537c5
leaq -0x230(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x5160
leaq -0xd0(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x1b3d2
movabsq $0x4024000000000000, %rbx # imm = 0x4024000000000000
movq %rbx, (%rax)
leaq -0x230(%rbp), %rdi
callq 0x57b8
leaq 0x2b009(%rip), %rsi     # 0x53766
leaq -0x230(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x5160
leaq -0xd0(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x1b3d2
movq %rbx, (%rax)
leaq -0x230(%rbp), %rdi
callq 0x57b8
leaq 0x2b036(%rip), %rsi     # 0x537cc
leaq -0x230(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x5160
leaq -0xd0(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x1b3d2
movabsq $0x402e000000000000, %rcx # imm = 0x402E000000000000
movq %rcx, (%rax)
leaq -0x230(%rbp), %rdi
callq 0x57b8
leaq -0x230(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0xdbec
leaq 0x2afd9(%rip), %rsi     # 0x537c5
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x5160
leaq -0xd0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x1bdcc
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x57b8
leaq -0xd0(%rbp), %rdi
movq %rbx, %rsi
callq 0x21510
leaq 0x2b0e7(%rip), %rsi     # 0x53912
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x5160
leaq -0xd0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x1b3d2
movabsq $0x403e000000000000, %rcx # imm = 0x403E000000000000
movq %rcx, (%rax)
leaq -0x50(%rbp), %rdi
callq 0x57b8
leaq -0x230(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0xe2aa
movq 0x47c90(%rip), %rdi     # 0x70508
leaq 0x2aed8(%rip), %r12     # 0x53757
leaq -0x310(%rbp), %rsi
movq %r12, (%rsi)
leaq 0x2aed5(%rip), %r13     # 0x53765
movq %r13, 0x8(%rsi)
leaq 0x2b17a(%rip), %r15     # 0x53a15
leaq -0x300(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
movl $0x8c, %edx
callq 0x5710
movb $0x0, -0x48(%rbp)
leaq 0x47222(%rip), %rax     # 0x6fae0
movq %rax, -0x50(%rbp)
movq 0x476e7(%rip), %rax     # 0x6ffb0
movq %rax, -0x40(%rbp)
leaq 0x2aa83(%rip), %rax     # 0x53357
movq %rax, -0x38(%rbp)
movq %r12, -0x110(%rbp)
movq %r13, -0x108(%rbp)
leaq 0x2b021(%rip), %rsi     # 0x5390e
leaq -0x70(%rbp), %rdi
leaq -0x2a(%rbp), %rdx
callq 0x5160
leaq -0xd0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1b3d2
movq %rax, %rbx
leaq 0x2affa(%rip), %rsi     # 0x5390e
leaq -0x90(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x5160
leaq -0x230(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xe12a
leaq -0x98(%rbp), %r14
movsd %xmm0, (%r14)
subq $0x8, %rsp
leaq 0x2afd8(%rip), %rax     # 0x53926
leaq 0x2afc4(%rip), %r10     # 0x53919
leaq -0x50(%rbp), %rdi
leaq -0x110(%rbp), %rsi
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
movl $0x8c, %edx
movq %rbx, %r9
pushq %rax
pushq %r14
pushq %r10
callq 0x2903d
addq $0x20, %rsp
leaq -0x90(%rbp), %rdi
callq 0x57b8
leaq -0x70(%rbp), %rdi
callq 0x57b8
movq 0x47b6f(%rip), %rdi     # 0x70508
leaq -0x2f0(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x2e0(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
movl $0x8d, %edx
callq 0x5710
movb $0x0, -0x48(%rbp)
leaq 0x47116(%rip), %rax     # 0x6fae0
movq %rax, -0x50(%rbp)
movq 0x475db(%rip), %rax     # 0x6ffb0
movq %rax, -0x40(%rbp)
leaq 0x2a977(%rip), %rax     # 0x53357
movq %rax, -0x38(%rbp)
movq %r12, -0x100(%rbp)
movq %r13, -0xf8(%rbp)
leaq 0x2ad6d(%rip), %rsi     # 0x53766
leaq -0x70(%rbp), %rdi
leaq -0x2a(%rbp), %rdx
callq 0x5160
leaq -0xd0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1b3d2
movq %rax, %rbx
leaq 0x2ad46(%rip), %rsi     # 0x53766
leaq -0x90(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x5160
leaq -0x230(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xe12a
movsd %xmm0, -0x98(%rbp)
subq $0x8, %rsp
leaq 0x2ad19(%rip), %rax     # 0x5376f
leaq 0x2aedd(%rip), %r10     # 0x5393a
leaq -0x50(%rbp), %rdi
leaq -0x100(%rbp), %rsi
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
movl $0x8d, %edx
movq %rbx, %r9
pushq %rax
pushq %r14
pushq %r10
callq 0x2903d
addq $0x20, %rsp
leaq -0x90(%rbp), %rdi
callq 0x57b8
leaq -0x70(%rbp), %rdi
callq 0x57b8
movq 0x47a67(%rip), %rdi     # 0x70508
leaq -0x2d0(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x2c0(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
movl $0x8e, %edx
callq 0x5710
movb $0x0, -0x48(%rbp)
leaq 0x4700e(%rip), %rax     # 0x6fae0
movq %rax, -0x50(%rbp)
movq 0x474d3(%rip), %rax     # 0x6ffb0
movq %rax, -0x40(%rbp)
leaq 0x2a86f(%rip), %rax     # 0x53357
movq %rax, -0x38(%rbp)
movq %r12, -0xf0(%rbp)
movq %r13, -0xe8(%rbp)
leaq 0x2accb(%rip), %rsi     # 0x537cc
leaq -0x70(%rbp), %rdi
leaq -0x2a(%rbp), %rdx
callq 0x5160
leaq -0xd0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1b3d2
movq %rax, %rbx
leaq 0x2aca4(%rip), %rsi     # 0x537cc
leaq -0x90(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x5160
leaq -0x230(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xe12a
movsd %xmm0, -0x98(%rbp)
subq $0x8, %rsp
leaq 0x2ad24(%rip), %rax     # 0x53882
leaq 0x2ade2(%rip), %r10     # 0x53947
leaq -0x50(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
movl $0x8e, %edx
movq %rbx, %r9
pushq %rax
pushq %r14
pushq %r10
callq 0x2903d
addq $0x20, %rsp
leaq -0x90(%rbp), %rdi
callq 0x57b8
leaq -0x70(%rbp), %rdi
callq 0x57b8
movq 0x4795f(%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)
movl $0x8f, %edx
callq 0x5710
movb $0x0, -0x48(%rbp)
leaq 0x46f06(%rip), %rax     # 0x6fae0
movq %rax, -0x50(%rbp)
movq 0x473cb(%rip), %rax     # 0x6ffb0
movq %rax, -0x40(%rbp)
leaq 0x2a767(%rip), %rax     # 0x53357
movq %rax, -0x38(%rbp)
movq %r12, -0xe0(%rbp)
movq %r13, -0xd8(%rbp)
leaq 0x2ad09(%rip), %rsi     # 0x53912
leaq -0x70(%rbp), %rdi
leaq -0x2a(%rbp), %rdx
callq 0x5160
leaq -0xd0(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1b3d2
movq %rax, %rbx
leaq 0x2ace2(%rip), %rsi     # 0x53912
leaq -0x90(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x5160
leaq -0x230(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xe12a
movsd %xmm0, -0x98(%rbp)
subq $0x8, %rsp
leaq 0x2acfe(%rip), %rax     # 0x53964
leaq 0x2ace7(%rip), %r10     # 0x53954
leaq -0x50(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
pushq $0x1
popq %rcx
pushq $0x2
popq %r8
movl $0x8f, %edx
movq %rbx, %r9
pushq %rax
pushq %r14
pushq %r10
callq 0x2903d
addq $0x20, %rsp
leaq -0x90(%rbp), %r14
movq %r14, %rdi
callq 0x57b8
leaq -0x70(%rbp), %rdi
callq 0x57b8
leaq 0x2ab11(%rip), %rsi     # 0x537c5
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x5160
leaq -0x230(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xe12a
leaq -0x50(%rbp), %rdi
callq 0x57b8
xorl %ebx, %ebx
movq 0x47825(%rip), %rdi     # 0x70508
leaq -0x290(%rbp), %rsi
movq %r12, (%rsi)
movq %r13, 0x8(%rsi)
leaq -0x280(%rbp), %rcx
movq %r15, (%rcx)
movq %r15, 0x8(%rcx)
movl $0x98, %edx
callq 0x5710
leaq -0x70(%rbp), %rdi
movb %bl, (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq 0x2aa6b(%rip), %rax     # 0x53788
movq %rax, -0x90(%rbp)
leaq 0x2aa63(%rip), %rax     # 0x5378e
movq %rax, -0x88(%rbp)
leaq -0x50(%rbp), %rsi
movb $0x0, 0x8(%rsi)
leaq 0x46e2f(%rip), %rbx     # 0x6fb70
movq %rbx, (%rsi)
movq 0x47265(%rip), %rax     # 0x6ffb0
movq %rax, 0x10(%rsi)
movq %r14, 0x18(%rsi)
leaq -0x270(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
subq $0x10, %rsp
andq $0x0, (%rsp)
pushq $0x1
popq %r8
movl $0x98, %ecx
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x56f0
popq %rcx
popq %rdx
leaq -0x60(%rbp), %rdi
callq 0x291f6
movq 0x47779(%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)
movl $0x99, %edx
callq 0x5710
movq -0xa8(%rbp), %r15
leaq -0x230(%rbp), %rdi
callq 0xe4d0
movl %eax, %eax
cmpq %rax, %r15
leaq -0x70(%rbp), %rdi
sete (%rdi)
xorps %xmm0, %xmm0
movups %xmm0, 0x8(%rdi)
leaq 0x2ab99(%rip), %rax     # 0x5397b
movq %rax, -0x90(%rbp)
leaq 0x2abac(%rip), %rax     # 0x5399c
movq %rax, -0x88(%rbp)
leaq -0x50(%rbp), %rsi
movb $0x0, 0x8(%rsi)
movq %rbx, (%rsi)
movq 0x471a7(%rip), %rax     # 0x6ffb0
movq %rax, 0x10(%rsi)
movq %r14, 0x18(%rsi)
leaq -0x240(%rbp), %rdx
movq %r12, (%rdx)
movq %r13, 0x8(%rdx)
subq $0x10, %rsp
andq $0x0, (%rsp)
pushq $0x1
popq %r8
movl $0x99, %ecx
xorl %r9d, %r9d
xorl %eax, %eax
callq 0x56f0
popq %rcx
popq %rdx
leaq -0x60(%rbp), %rdi
callq 0x291f6
leaq -0x230(%rbp), %rdi
callq 0xdea0
leaq -0xd0(%rbp), %rdi
callq 0x1bba4
addq $0x2e8, %rsp            # imm = 0x2E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x28e77
jmp 0x28f4f
movq %rax, %rbx
leaq -0x60(%rbp), %rdi
callq 0x291f6
jmp 0x28f52
movq %rdx, -0xa0(%rbp)
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x57b8
jmp 0x28ea7
movq %rdx, -0xa0(%rbp)
movq %rax, %rbx
cmpl $0x1, -0xa0(%rbp)
jne 0x28f52
movq %rbx, %rdi
callq 0x5170
movb $0x1, %bl
callq 0x5610
jmp 0x28cdc
jmp 0x28f4f
jmp 0x28edb
jmp 0x28edb
jmp 0x28f4f
jmp 0x28edb
jmp 0x28edb
jmp 0x28f4f
jmp 0x28edb
movq %rax, %rbx
jmp 0x28f44
jmp 0x28f4f
jmp 0x28ee4
movq %rax, %rbx
jmp 0x28f44
jmp 0x28f4f
jmp 0x28eef
jmp 0x28f4f
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
jmp 0x28f48
jmp 0x28f4f
jmp 0x28f19
jmp 0x28f08
jmp 0x28f19
jmp 0x28f08
jmp 0x28f19
jmp 0x28f08
jmp 0x28f19
movq %rax, %rbx
leaq -0x230(%rbp), %rdi
callq 0x57b8
jmp 0x28f5e
movq %rax, %rbx
jmp 0x28f5e
jmp 0x28f4f
jmp 0x28f24
jmp 0x28f24
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x57b8
jmp 0x28f44
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x57b8
leaq -0x70(%rbp), %rdi
callq 0x57b8
jmp 0x28f52
movq %rax, %rbx
leaq -0x230(%rbp), %rdi
callq 0xdea0
leaq -0xd0(%rbp), %rdi
callq 0x1bba4
movq %rbx, %rdi
callq 0x56b0