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

    ss.remove("hei");
    ss.add("hei", -4.0);

    BOOST_CHECK ( ss.includes("hei") );
    BOOST_CHECK_EQUAL ( -4.0, ss.get_score("hei") );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x410, %rsp            # imm = 0x410
movq %rdi, -0x8(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x530a0
leaq -0x59(%rbp), %rdi
movq %rdi, -0x368(%rbp)
callq 0x67b0
movq -0x368(%rbp), %rdx
leaq 0x5cd00(%rip), %rsi     # 0xcb736
leaq -0x58(%rbp), %rdi
callq 0x65e0
jmp 0x6ea41
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x370(%rbp)
jmp 0x6ea57
movq -0x370(%rbp), %rax
movabsq $-0x4010000000000000, %rcx # imm = 0xBFF0000000000000
movq %rcx, (%rax)
leaq -0x58(%rbp), %rdi
callq 0x6908
leaq -0x59(%rbp), %rdi
callq 0x6470
leaq -0x91(%rbp), %rdi
movq %rdi, -0x378(%rbp)
callq 0x67b0
movq -0x378(%rbp), %rdx
leaq 0x5ccf7(%rip), %rsi     # 0xcb795
leaq -0x90(%rbp), %rdi
callq 0x65e0
jmp 0x6eaac
leaq -0x38(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x380(%rbp)
jmp 0x6eac5
movq -0x380(%rbp), %rax
movabsq $-0x4000000000000000, %rcx # imm = 0xC000000000000000
movq %rcx, (%rax)
leaq -0x90(%rbp), %rdi
callq 0x6908
leaq -0x91(%rbp), %rdi
callq 0x6470
leaq -0xb9(%rbp), %rdi
movq %rdi, -0x388(%rbp)
callq 0x67b0
movq -0x388(%rbp), %rdx
leaq 0x5cc8a(%rip), %rsi     # 0xcb79c
leaq -0xb8(%rbp), %rdi
callq 0x65e0
jmp 0x6eb20
leaq -0x38(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x4b2f0
movq %rax, -0x390(%rbp)
jmp 0x6eb39
movq -0x390(%rbp), %rax
movabsq $-0x3ff8000000000000, %rcx # imm = 0xC008000000000000
movq %rcx, (%rax)
leaq -0xb8(%rbp), %rdi
callq 0x6908
leaq -0xb9(%rbp), %rdi
callq 0x6470
leaq -0x1e0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x1ce60
jmp 0x6eb77
leaq -0x201(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0x67b0
movq -0x398(%rbp), %rdx
leaq 0x5cb9e(%rip), %rsi     # 0xcb736
leaq -0x200(%rbp), %rdi
callq 0x65e0
jmp 0x6eba6
leaq -0x1e0(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x1da70
jmp 0x6ebbb
leaq -0x200(%rbp), %rdi
callq 0x6908
leaq -0x201(%rbp), %rdi
callq 0x6470
leaq -0x229(%rbp), %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x67b0
movq -0x3a0(%rbp), %rdx
leaq 0x5cb42(%rip), %rsi     # 0xcb736
leaq -0x228(%rbp), %rdi
callq 0x65e0
jmp 0x6ec02
leaq -0x1e0(%rbp), %rdi
leaq -0x228(%rbp), %rsi
movsd 0x5caf8(%rip), %xmm0    # 0xcb710
callq 0x1d290
jmp 0x6ec1f
leaq -0x228(%rbp), %rdi
callq 0x6908
leaq -0x229(%rbp), %rdi
callq 0x6470
movq 0x9897a(%rip), %rax     # 0x1075b8
movq %rax, -0x3a8(%rbp)
leaq 0x5cadb(%rip), %rsi     # 0xcb727
leaq -0x240(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x6ec5f
leaq -0x250(%rbp), %rdi
callq 0x70c00
jmp 0x6ec6d
movq -0x3a8(%rbp), %rdi
leaq -0x240(%rbp), %rsi
movl $0x76, %edx
leaq -0x250(%rbp), %rcx
callq 0x6840
jmp 0x6ec8e
leaq -0x289(%rbp), %rdi
movq %rdi, -0x3b0(%rbp)
callq 0x67b0
movq -0x3b0(%rbp), %rdx
leaq 0x5ca87(%rip), %rsi     # 0xcb736
leaq -0x288(%rbp), %rdi
callq 0x65e0
jmp 0x6ecbd
leaq -0x1e0(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x1d7e0
movb %al, -0x3b1(%rbp)
jmp 0x6ecd8
movb -0x3b1(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x268(%rbp), %rdi
callq 0x70ed0
jmp 0x6ecf2
callq 0x70e90
movq %rax, -0x3c0(%rbp)
jmp 0x6ed00
leaq 0x5cba6(%rip), %rsi     # 0xcb8ad
leaq -0x2c0(%rbp), %rdi
movl $0x12, %edx
callq 0x70bd0
jmp 0x6ed1a
movq -0x3c0(%rbp), %rsi
leaq -0x2b0(%rbp), %rdi
leaq -0x2c0(%rbp), %rdx
callq 0x70f10
jmp 0x6ed36
leaq 0x5c9ea(%rip), %rsi     # 0xcb727
leaq -0x2d0(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x6ed50
movq %rsp, %rax
movq $0x0, (%rax)
xorl %r9d, %r9d
movb %r9b, %al
leaq -0x268(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
leaq -0x2d0(%rbp), %rdx
movl $0x76, %ecx
movl $0x1, %r8d
callq 0x6810
jmp 0x6ed87
leaq -0x2b0(%rbp), %rdi
callq 0x70f50
leaq -0x268(%rbp), %rdi
callq 0x70f70
leaq -0x288(%rbp), %rdi
callq 0x6908
leaq -0x289(%rbp), %rdi
callq 0x6470
callq 0x70ec0
movb %al, -0x3c1(%rbp)
jmp 0x6edc4
movb -0x3c1(%rbp), %al
testb $0x1, %al
jne 0x6ec37
jmp 0x6edd4
jmp 0x6edd6
movq 0x987db(%rip), %rax     # 0x1075b8
movq %rax, -0x3d0(%rbp)
leaq 0x5c93c(%rip), %rsi     # 0xcb727
leaq -0x2e0(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x6edfe
leaq -0x2f0(%rbp), %rdi
callq 0x70c00
jmp 0x6ee0c
movq -0x3d0(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
movl $0x77, %edx
leaq -0x2f0(%rbp), %rcx
callq 0x6840
jmp 0x6ee2d
callq 0x70e90
movq %rax, -0x3d8(%rbp)
jmp 0x6ee3b
movq -0x3d8(%rbp), %rsi
leaq 0x5c4e1(%rip), %rdx     # 0xcb32a
leaq -0x318(%rbp), %rdi
callq 0x70e50
jmp 0x6ee57
leaq 0x5c8c9(%rip), %rsi     # 0xcb727
leaq -0x328(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x6ee71
movabsq $-0x3ff0000000000000, %rax # imm = 0xC010000000000000
movq %rax, -0x330(%rbp)
leaq -0x359(%rbp), %rdi
movq %rdi, -0x3e0(%rbp)
callq 0x67b0
movq -0x3e0(%rbp), %rdx
leaq 0x5c893(%rip), %rsi     # 0xcb736
leaq -0x358(%rbp), %rdi
callq 0x65e0
jmp 0x6eeb1
leaq -0x1e0(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x1d8a0
movsd %xmm0, -0x3e8(%rbp)
jmp 0x6eece
movsd -0x3e8(%rbp), %xmm0
movsd %xmm0, -0x338(%rbp)
leaq 0x5c85a(%rip), %rcx     # 0xcb73f
movq %rsp, %rax
movq %rcx, 0x10(%rax)
leaq -0x338(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq 0x5c968(%rip), %rcx     # 0xcb866
movq %rcx, (%rax)
leaq -0x318(%rbp), %rdi
leaq -0x328(%rbp), %rsi
movl $0x77, %edx
movl $0x1, %ecx
movl $0x2, %r8d
leaq -0x330(%rbp), %r9
callq 0x70c30
jmp 0x6ef2d
leaq -0x358(%rbp), %rdi
callq 0x6908
leaq -0x359(%rbp), %rdi
callq 0x6470
leaq -0x318(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x3e9(%rbp)
jmp 0x6ef5e
movb -0x3e9(%rbp), %al
testb $0x1, %al
jne 0x6edd6
jmp 0x6ef6e
leaq -0x1e0(%rbp), %rdi
callq 0x1d3d0
leaq -0x38(%rbp), %rdi
callq 0x4cf70
addq $0x410, %rsp            # imm = 0x410
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6efaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x6908
leaq -0x59(%rbp), %rdi
callq 0x6470
jmp 0x6f17b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6efe3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x6908
leaq -0x91(%rbp), %rdi
callq 0x6470
jmp 0x6f17b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6f01a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x6908
leaq -0xb9(%rbp), %rdi
callq 0x6470
jmp 0x6f17b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6f17b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6f062
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x6908
leaq -0x201(%rbp), %rdi
callq 0x6470
jmp 0x6f16f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6f099
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x6908
leaq -0x229(%rbp), %rdi
callq 0x6470
jmp 0x6f16f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6f16f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6f115
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6f109
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6f0fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x70f50
leaq -0x268(%rbp), %rdi
callq 0x70f70
leaq -0x288(%rbp), %rdi
callq 0x6908
leaq -0x289(%rbp), %rdi
callq 0x6470
jmp 0x6f16f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6f163
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x6f157
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x358(%rbp), %rdi
callq 0x6908
leaq -0x359(%rbp), %rdi
callq 0x6470
leaq -0x318(%rbp), %rdi
callq 0x70ea0
leaq -0x1e0(%rbp), %rdi
callq 0x1d3d0
leaq -0x38(%rbp), %rdi
callq 0x4cf70
movq -0x68(%rbp), %rdi
callq 0x67a0
nopl (%rax)