// File: aalto-speech[P]ftk/test/emtest.cc
// Function: FactorGraphTest3::test_method()
BOOST_AUTO_TEST_CASE(FactorGraphTest3)
{
    map<std::string, flt_type> vocab;
    vocab.insert(make_pair("hal", 0.0));
    vocab.insert(make_pair("oja", 0.0));
    vocab.insert(make_pair("oj", 0.0));

    FactorGraph fg("halojaa", start_end, vocab, 3);
    BOOST_CHECK_EQUAL(0, (int)fg.nodes.size());

    StringSet ssvocab(vocab);
    FactorGraph ssfg("halojaa", start_end, ssvocab);
    BOOST_CHECK(fg.assert_equal(ssfg));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4c0, %rsp            # imm = 0x4C0
movq %rdi, -0x8(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x530a0
movq $0x0, -0x50(%rbp)
leaq 0x476d3(%rip), %rdi     # 0xcbf0a
leaq -0x50(%rbp), %rsi
callq 0xbfc00
movsd %xmm0, -0x408(%rbp)
movq %rax, -0x400(%rbp)
jmp 0x84851
movsd -0x408(%rbp), %xmm0
movq -0x400(%rbp), %rax
movq %rax, -0x48(%rbp)
movsd %xmm0, -0x40(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xbfbc0
movb %dl, -0x411(%rbp)
movq %rax, -0x410(%rbp)
jmp 0x84885
movb -0x411(%rbp), %al
movq -0x410(%rbp), %rcx
movq %rcx, -0x70(%rbp)
movb %al, -0x68(%rbp)
movq $0x0, -0x88(%rbp)
leaq 0x47699(%rip), %rdi     # 0xcbf44
leaq -0x88(%rbp), %rsi
callq 0xbfc00
movsd %xmm0, -0x428(%rbp)
movq %rax, -0x420(%rbp)
jmp 0x848c8
movsd -0x428(%rbp), %xmm0
movq -0x420(%rbp), %rax
movq %rax, -0x80(%rbp)
movsd %xmm0, -0x78(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0xbfbc0
movb %dl, -0x431(%rbp)
movq %rax, -0x430(%rbp)
jmp 0x848fc
movb -0x431(%rbp), %al
movq -0x430(%rbp), %rcx
movq %rcx, -0x98(%rbp)
movb %al, -0x90(%rbp)
movq $0x0, -0xb0(%rbp)
leaq 0x47619(%rip), %rdi     # 0xcbf41
leaq -0xb0(%rbp), %rsi
callq 0xbfcc0
movsd %xmm0, -0x448(%rbp)
movq %rax, -0x440(%rbp)
jmp 0x84945
movsd -0x448(%rbp), %xmm0
movq -0x440(%rbp), %rax
movq %rax, -0xa8(%rbp)
movsd %xmm0, -0xa0(%rbp)
leaq -0x38(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0xbfbc0
movb %dl, -0x451(%rbp)
movq %rax, -0x450(%rbp)
jmp 0x84982
movb -0x451(%rbp), %al
movq -0x450(%rbp), %rcx
movq %rcx, -0xc0(%rbp)
movb %al, -0xb8(%rbp)
leaq -0x159(%rbp), %rdi
movq %rdi, -0x460(%rbp)
callq 0x67b0
movq -0x460(%rbp), %rdx
leaq 0x47551(%rip), %rsi     # 0xcbf0e
leaq -0x158(%rbp), %rdi
callq 0x65e0
jmp 0x849cb
leaq 0x82c66(%rip), %rdx     # 0x107638
leaq -0x138(%rbp), %rdi
leaq -0x158(%rbp), %rsi
leaq -0x38(%rbp), %rcx
movl $0x3, %r8d
xorl %r9d, %r9d
callq 0x23750
jmp 0x849f4
leaq -0x158(%rbp), %rdi
callq 0x6908
leaq -0x159(%rbp), %rdi
callq 0x6470
movq 0x82bdd(%rip), %rax     # 0x1075f0
movq %rax, -0x468(%rbp)
leaq 0x47147(%rip), %rsi     # 0xcbb68
leaq -0x170(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x84a34
leaq -0x180(%rbp), %rdi
callq 0x70c00
jmp 0x84a42
movq -0x468(%rbp), %rdi
leaq -0x170(%rbp), %rsi
movl $0x1a6, %edx            # imm = 0x1A6
leaq -0x180(%rbp), %rcx
callq 0x6840
jmp 0x84a63
callq 0x70e90
movq %rax, -0x470(%rbp)
jmp 0x84a71
movq -0x470(%rbp), %rsi
leaq 0x468ab(%rip), %rdx     # 0xcb32a
leaq -0x1a8(%rbp), %rdi
callq 0x70e50
jmp 0x84a8d
leaq 0x470d4(%rip), %rsi     # 0xcbb68
leaq -0x1b8(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x84aa7
movl $0x0, -0x1bc(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x26b90
movl %eax, -0x1c0(%rbp)
leaq 0x4744c(%rip), %rcx     # 0xcbf16
movq %rsp, %rax
movq %rcx, 0x10(%rax)
leaq -0x1c0(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq 0x47f5d(%rip), %rcx     # 0xcca40
movq %rcx, (%rax)
leaq -0x1a8(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
movl $0x1a6, %edx            # imm = 0x1A6
movl $0x1, %ecx
movl $0x2, %r8d
leaq -0x1bc(%rbp), %r9
callq 0xbf480
jmp 0x84b12
leaq -0x1a8(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x471(%rbp)
jmp 0x84b2b
movb -0x471(%rbp), %al
testb $0x1, %al
jne 0x84a0c
jmp 0x84b3b
leaq -0x2e0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x1ce60
jmp 0x84b4d
leaq -0x379(%rbp), %rdi
movq %rdi, -0x480(%rbp)
callq 0x67b0
movq -0x480(%rbp), %rdx
leaq 0x473a0(%rip), %rsi     # 0xcbf0e
leaq -0x378(%rbp), %rdi
callq 0x65e0
jmp 0x84b7c
leaq 0x82ab5(%rip), %rdx     # 0x107638
leaq -0x358(%rbp), %rdi
leaq -0x378(%rbp), %rsi
leaq -0x2e0(%rbp), %rcx
xorl %r8d, %r8d
callq 0x23c10
jmp 0x84ba2
leaq -0x378(%rbp), %rdi
callq 0x6908
leaq -0x379(%rbp), %rdi
callq 0x6470
movq 0x82a2f(%rip), %rax     # 0x1075f0
movq %rax, -0x488(%rbp)
leaq 0x46f99(%rip), %rsi     # 0xcbb68
leaq -0x390(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x84be2
leaq -0x3a0(%rbp), %rdi
callq 0x70c00
jmp 0x84bf0
movq -0x488(%rbp), %rdi
leaq -0x390(%rbp), %rsi
movl $0x1aa, %edx            # imm = 0x1AA
leaq -0x3a0(%rbp), %rcx
callq 0x6840
jmp 0x84c11
leaq -0x138(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x250b0
movb %al, -0x489(%rbp)
jmp 0x84c2c
movb -0x489(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x3b8(%rbp), %rdi
callq 0x70ed0
jmp 0x84c46
callq 0x70e90
movq %rax, -0x498(%rbp)
jmp 0x84c54
leaq 0x472d0(%rip), %rsi     # 0xcbf2b
leaq -0x3e8(%rbp), %rdi
movl $0x15, %edx
callq 0x70bd0
jmp 0x84c6e
movq -0x498(%rbp), %rsi
leaq -0x3d8(%rbp), %rdi
leaq -0x3e8(%rbp), %rdx
callq 0x70f10
jmp 0x84c8a
leaq 0x46ed7(%rip), %rsi     # 0xcbb68
leaq -0x3f8(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x84ca4
movq %rsp, %rax
movq $0x0, (%rax)
xorl %r9d, %r9d
movb %r9b, %al
leaq -0x3b8(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
leaq -0x3f8(%rbp), %rdx
movl $0x1aa, %ecx            # imm = 0x1AA
movl $0x1, %r8d
callq 0x6810
jmp 0x84cdb
leaq -0x3d8(%rbp), %rdi
callq 0x70f50
leaq -0x3b8(%rbp), %rdi
callq 0x70f70
callq 0x70ec0
movb %al, -0x499(%rbp)
jmp 0x84d00
movb -0x499(%rbp), %al
testb $0x1, %al
jne 0x84bba
jmp 0x84d10
leaq -0x358(%rbp), %rdi
callq 0x26180
leaq -0x2e0(%rbp), %rdi
callq 0x1d3d0
leaq -0x138(%rbp), %rdi
callq 0x26180
leaq -0x38(%rbp), %rdi
callq 0x4cf70
addq $0x4c0, %rsp            # imm = 0x4C0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x84e54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x84d7d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x6908
leaq -0x159(%rbp), %rdi
callq 0x6470
jmp 0x84e54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x84e48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x70ea0
jmp 0x84e48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x84de2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x378(%rbp), %rdi
callq 0x6908
leaq -0x379(%rbp), %rdi
callq 0x6470
jmp 0x84e3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x84e30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x84e24
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x3d8(%rbp), %rdi
callq 0x70f50
leaq -0x3b8(%rbp), %rdi
callq 0x70f70
leaq -0x358(%rbp), %rdi
callq 0x26180
leaq -0x2e0(%rbp), %rdi
callq 0x1d3d0
leaq -0x138(%rbp), %rdi
callq 0x26180
leaq -0x38(%rbp), %rdi
callq 0x4cf70
movq -0x58(%rbp), %rdi
callq 0x67a0
nopw %cs:(%rax,%rax)