// File: aalto-speech[P]ftk/test/emtest.cc
// Function: assert_node(FactorGraph const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned int, unsigned int)
void assert_node(const FactorGraph &fg,
                 int node,
                 const std::string &nstr,
                 unsigned int incoming_sz,
                 unsigned int outgoing_sz)
{
    std::string tst;
    fg.get_factor(fg.nodes[node], tst);
    BOOST_CHECK_EQUAL( nstr, tst );
    BOOST_CHECK_EQUAL( incoming_sz, (unsigned int)fg.nodes[node].incoming.size() );
    BOOST_CHECK_EQUAL( outgoing_sz, (unsigned int)fg.nodes[node].outgoing.size() );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl %r8d, -0x20(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x65f0
movq -0x8(%rbp), %rdi
movq %rdi, -0x178(%rbp)
addq $0x40, %rdi
movslq -0xc(%rbp), %rsi
callq 0x270f0
movq -0x178(%rbp), %rdi
movq -0x170(%rbp), %rdx
movq %rax, %rsi
callq 0x271f0
jmp 0x8245d
jmp 0x8245f
movq 0x8518a(%rip), %rax     # 0x1075f0
movq %rax, -0x180(%rbp)
leaq 0x496f4(%rip), %rsi     # 0xcbb68
leaq -0x60(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x82484
leaq -0x70(%rbp), %rdi
callq 0x70c00
jmp 0x8248f
movq -0x180(%rbp), %rdi
leaq -0x60(%rbp), %rsi
movl $0x170, %edx            # imm = 0x170
leaq -0x70(%rbp), %rcx
callq 0x6840
jmp 0x824aa
callq 0x70e90
movq %rax, -0x188(%rbp)
jmp 0x824b8
movq -0x188(%rbp), %rsi
leaq 0x48e64(%rip), %rdx     # 0xcb32a
leaq -0x98(%rbp), %rdi
callq 0x70e50
jmp 0x824d4
leaq 0x4968d(%rip), %rsi     # 0xcbb68
leaq -0xa8(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x824ee
movq -0x18(%rbp), %r9
leaq 0x4999b(%rip), %rcx     # 0xcbe94
movq %rsp, %rax
movq %rcx, 0x10(%rax)
leaq -0x40(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq 0x49980(%rip), %rcx     # 0xcbe8f
movq %rcx, (%rax)
leaq -0x98(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
movl $0x170, %edx            # imm = 0x170
movl $0x1, %ecx
movl $0x2, %r8d
callq 0xbf260
jmp 0x82537
leaq -0x98(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x189(%rbp)
jmp 0x82550
movb -0x189(%rbp), %al
testb $0x1, %al
jne 0x8245f
jmp 0x82560
jmp 0x82562
movq 0x85087(%rip), %rax     # 0x1075f0
movq %rax, -0x198(%rbp)
leaq 0x495f1(%rip), %rsi     # 0xcbb68
leaq -0xb8(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x8258a
leaq -0xc8(%rbp), %rdi
callq 0x70c00
jmp 0x82598
movq -0x198(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
movl $0x171, %edx            # imm = 0x171
leaq -0xc8(%rbp), %rcx
callq 0x6840
jmp 0x825b9
callq 0x70e90
movq %rax, -0x1a0(%rbp)
jmp 0x825c7
movq -0x1a0(%rbp), %rsi
leaq 0x48d55(%rip), %rdx     # 0xcb32a
leaq -0xf0(%rbp), %rdi
callq 0x70e50
jmp 0x825e3
leaq 0x4957e(%rip), %rsi     # 0xcbb68
leaq -0x100(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x825fd
movq -0x8(%rbp), %rdi
addq $0x40, %rdi
movslq -0xc(%rbp), %rsi
callq 0x270f0
movq %rax, %rdi
addq $0x8, %rdi
callq 0x26f90
movl %eax, -0x104(%rbp)
leaq 0x4987d(%rip), %rcx     # 0xcbea4
movq %rsp, %rax
movq %rcx, 0x10(%rax)
leaq -0x104(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq 0x49858(%rip), %rcx     # 0xcbe98
movq %rcx, (%rax)
leaq -0xf0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
movl $0x171, %edx            # imm = 0x171
movl $0x1, %ecx
movl $0x2, %r8d
leaq -0x1c(%rbp), %r9
callq 0xbf9a0
jmp 0x8266c
leaq -0xf0(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x1a1(%rbp)
jmp 0x82685
movb -0x1a1(%rbp), %al
testb $0x1, %al
jne 0x82562
jmp 0x82695
jmp 0x82697
movq 0x84f52(%rip), %rax     # 0x1075f0
movq %rax, -0x1b0(%rbp)
leaq 0x494bc(%rip), %rsi     # 0xcbb68
leaq -0x118(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x826bf
leaq -0x128(%rbp), %rdi
callq 0x70c00
jmp 0x826cd
movq -0x1b0(%rbp), %rdi
leaq -0x118(%rbp), %rsi
movl $0x172, %edx            # imm = 0x172
leaq -0x128(%rbp), %rcx
callq 0x6840
jmp 0x826ee
callq 0x70e90
movq %rax, -0x1b8(%rbp)
jmp 0x826fc
movq -0x1b8(%rbp), %rsi
leaq 0x48c20(%rip), %rdx     # 0xcb32a
leaq -0x150(%rbp), %rdi
callq 0x70e50
jmp 0x82718
leaq 0x49449(%rip), %rsi     # 0xcbb68
leaq -0x160(%rbp), %rdi
movl $0xe, %edx
callq 0x70bd0
jmp 0x82732
movq -0x8(%rbp), %rdi
addq $0x40, %rdi
movslq -0xc(%rbp), %rsi
callq 0x270f0
movq %rax, %rdi
addq $0x20, %rdi
callq 0x26f90
movl %eax, -0x164(%rbp)
leaq 0x49781(%rip), %rcx     # 0xcbedd
movq %rsp, %rax
movq %rcx, 0x10(%rax)
leaq -0x164(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq 0x4975c(%rip), %rcx     # 0xcbed1
movq %rcx, (%rax)
leaq -0x150(%rbp), %rdi
leaq -0x160(%rbp), %rsi
movl $0x172, %edx            # imm = 0x172
movl $0x1, %ecx
movl $0x2, %r8d
leaq -0x20(%rbp), %r9
callq 0xbf9a0
jmp 0x827a1
leaq -0x150(%rbp), %rdi
callq 0x70ea0
callq 0x70ec0
movb %al, -0x1b9(%rbp)
jmp 0x827ba
movb -0x1b9(%rbp), %al
testb $0x1, %al
jne 0x82697
jmp 0x827ca
leaq -0x40(%rbp), %rdi
callq 0x6908
addq $0x1e0, %rsp            # imm = 0x1E0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x82836
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x70ea0
jmp 0x82836
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x70ea0
jmp 0x82836
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x70ea0
leaq -0x40(%rbp), %rdi
callq 0x6908
movq -0x48(%rbp), %rdi
callq 0x67a0
nopl (%rax,%rax)