// File: cegme[P]vose/test.cc
// Function: test::test7()
bool test::test7() {

  std::cerr << "Need to make sure each branch is being selected.\n";

  VoseTree tree;
  tree.set_max_marbles(0);
  tree.set_max_bags(4);

  tree.add("red", 5);
  tree.add("blue", 5);
  tree.add("yellow", 5);
  std::cerr << tree.toString();

  for( size_t i = 0; i != 6; ++i) {
    std::cerr << ">>> " << tree.rand_marble().label << "\n";
  }

  return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x8(%rbp)
movq 0x1325a(%rip), %rdi     # 0x2aff0
leaq 0x4718(%rip), %rsi      # 0x1c4b5
callq 0x2210
leaq -0x78(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0x18660
movq -0x160(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x186f0
jmp 0x17dc4
leaq -0x78(%rbp), %rdi
movl $0x4, %esi
callq 0x18750
jmp 0x17dd4
leaq -0xa9(%rbp), %rdi
movq %rdi, -0x168(%rbp)
callq 0x2300
movq -0x168(%rbp), %rdx
leaq 0x44e4(%rip), %rsi      # 0x1c2d9
leaq -0xa8(%rbp), %rdi
callq 0x2270
jmp 0x17e03
leaq -0x78(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
movl $0x5, %edx
callq 0x24f0
jmp 0x17e1a
leaq -0xa8(%rbp), %rdi
callq 0x2140
leaq -0xa9(%rbp), %rdi
callq 0x2240
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x2300
movq -0x170(%rbp), %rdx
leaq 0x465d(%rip), %rsi      # 0x1c4b0
leaq -0xd0(%rbp), %rdi
callq 0x2270
jmp 0x17e61
leaq -0x78(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
movl $0x5, %edx
callq 0x24f0
jmp 0x17e78
leaq -0xd0(%rbp), %rdi
callq 0x2140
leaq -0xd1(%rbp), %rdi
callq 0x2240
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x178(%rbp)
callq 0x2300
movq -0x178(%rbp), %rdx
leaq 0x4480(%rip), %rsi      # 0x1c331
leaq -0xf8(%rbp), %rdi
callq 0x2270
jmp 0x17ebf
leaq -0x78(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
movl $0x5, %edx
callq 0x24f0
jmp 0x17ed6
leaq -0xf8(%rbp), %rdi
callq 0x2140
leaq -0xf9(%rbp), %rdi
callq 0x2240
leaq -0x120(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x3080
jmp 0x17f00
movq 0x130e9(%rip), %rdi     # 0x2aff0
leaq -0x120(%rbp), %rsi
callq 0x21e0
jmp 0x17f15
leaq -0x120(%rbp), %rdi
callq 0x2140
movq $0x0, -0x128(%rbp)
cmpq $0x6, -0x128(%rbp)
je 0x180be
movq 0x130af(%rip), %rdi     # 0x2aff0
leaq 0x459f(%rip), %rsi      # 0x1c4e7
callq 0x2210
movq %rax, -0x180(%rbp)
jmp 0x17f56
leaq -0x158(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x2f00
jmp 0x17f68
movq -0x180(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x21e0
movq %rax, -0x188(%rbp)
jmp 0x17f84
movq -0x188(%rbp), %rdi
leaq 0x458a(%rip), %rsi      # 0x1c51c
callq 0x2210
jmp 0x17f99
leaq -0x158(%rbp), %rdi
callq 0x4200
movq -0x128(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x128(%rbp)
jmp 0x17f2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x180d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x17ffc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x2140
leaq -0xa9(%rbp), %rdi
callq 0x2240
jmp 0x180d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x18039
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x2140
leaq -0xd1(%rbp), %rdi
callq 0x2240
jmp 0x180d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x18076
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x2140
leaq -0xf9(%rbp), %rdi
callq 0x2240
jmp 0x180d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x120(%rbp), %rdi
callq 0x2140
jmp 0x180d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x4200
jmp 0x180d4
leaq -0x78(%rbp), %rdi
callq 0x18710
movb $0x1, %al
andb $0x1, %al
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
leaq -0x78(%rbp), %rdi
callq 0x18710
movq -0x80(%rbp), %rdi
callq 0x22f0
nopw %cs:(%rax,%rax)