// File: /workspace/github_cpp_makefile_star2_O2/ef-gy[P]libefgy/src/test-case/factory.cpp
// Function: testGeometryFactory(std::ostream&)
bool testGeometryFactory(std::ostream &log) {
  std::cerr << "\n";
  model<float, functor::echo, cube, 7, 7, format::cartesian>::with(
      log, 5, 0, format::cartesian());

  std::set<const char *> models;
  models = with<float, functor::models, 7>(models, "*", 0, 0);

  bool haveCube = false;

  for (std::string m : models) {
    haveCube || (haveCube = (m == "cube"));
    std::cerr << m << "\n";
  }

  if (!haveCube) {
    log << "no cube model\n";
    return false;
  }

  return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rdi, %rbx
movq 0x28724(%rip), %rdi     # 0x2cfe8
leaq 0x178d4(%rip), %rsi     # 0x1c19f
callq 0x4260
leaq 0x40(%rsp), %rsi
movq $0x5, (%rsi)
leaq 0x20(%rsp), %rdx
andq $0x0, (%rdx)
leaq 0x8(%rsp), %rcx
movq %rbx, %rdi
callq 0x4f5c
leaq 0x48(%rsp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq 0x17807(%rip), %rsi     # 0x1c11a
leaq 0x20(%rsp), %rdi
leaq 0x1f(%rsp), %rdx
callq 0x4d38
movq %rbx, 0x70(%rsp)
andq $0x0, 0x8(%rsp)
andq $0x0, 0x10(%rsp)
leaq 0x177e0(%rip), %rsi     # 0x1c11a
leaq 0x20(%rsp), %rdi
callq 0x5025
testb %al, %al
jne 0x495d
leaq 0x18189(%rip), %rsi     # 0x1cad8
leaq 0x20(%rsp), %rdi
callq 0x5025
testb %al, %al
je 0x4976
leaq 0x40(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x7(%rsp), %rcx
callq 0x13082
leaq 0x1779d(%rip), %rsi     # 0x1c11a
leaq 0x20(%rsp), %rdi
callq 0x5025
testb %al, %al
jne 0x49a0
leaq 0x1778a(%rip), %rsi     # 0x1c11c
leaq 0x20(%rsp), %rdi
callq 0x5025
testb %al, %al
je 0x49b9
leaq 0x40(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x7(%rsp), %rcx
callq 0x14400
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x10(%rsp), %rcx
leaq 0x7(%rsp), %r8
callq 0x12db8
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x10(%rsp), %rcx
leaq 0x7(%rsp), %r8
callq 0x12e1e
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x10(%rsp), %rcx
leaq 0x7(%rsp), %r8
callq 0x12e84
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x10(%rsp), %rcx
leaq 0x7(%rsp), %r8
callq 0x12eea
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x10(%rsp), %rcx
leaq 0x7(%rsp), %r8
callq 0x12f50
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x10(%rsp), %rcx
leaq 0x7(%rsp), %r8
callq 0x12fb6
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x10(%rsp), %rcx
leaq 0x7(%rsp), %r8
callq 0x1301c
leaq 0x17688(%rip), %rsi     # 0x1c11a
leaq 0x20(%rsp), %rdi
callq 0x5025
testb %al, %al
jne 0x4ab5
leaq 0x18082(%rip), %rsi     # 0x1cb29
leaq 0x20(%rsp), %rdi
callq 0x5025
testb %al, %al
je 0x4ace
leaq 0x40(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x7(%rsp), %rcx
callq 0x176f2
leaq 0x17645(%rip), %rsi     # 0x1c11a
leaq 0x20(%rsp), %rdi
callq 0x5025
testb %al, %al
jne 0x4af8
leaq 0x18051(%rip), %rsi     # 0x1cb3b
leaq 0x20(%rsp), %rdi
callq 0x5025
testb %al, %al
je 0x4b11
leaq 0x40(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x7(%rsp), %rcx
callq 0x1895a
leaq 0x17602(%rip), %rsi     # 0x1c11a
leaq 0x20(%rsp), %rdi
callq 0x5025
testb %al, %al
jne 0x4b3b
leaq 0x18593(%rip), %rsi     # 0x1d0c0
leaq 0x20(%rsp), %rdi
callq 0x5025
testb %al, %al
je 0x4b54
leaq 0x40(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x7(%rsp), %rcx
callq 0x19262
leaq 0x175bf(%rip), %rsi     # 0x1c11a
leaq 0x20(%rsp), %rdi
callq 0x5025
testb %al, %al
jne 0x4b7e
leaq 0x18562(%rip), %rsi     # 0x1d0d2
leaq 0x20(%rsp), %rdi
callq 0x5025
testb %al, %al
je 0x4b97
leaq 0x40(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x7(%rsp), %rcx
callq 0x1a4ca
leaq 0x20(%rsp), %r14
movq %r14, %rdi
callq 0x4110
xorl %ebp, %ebp
movq 0x58(%rsp), %rbx
leaq 0x8(%rsp), %r15
movq 0x28431(%rip), %r12     # 0x2cfe8
leaq 0x175e1(%rip), %r13     # 0x1c19f
leaq 0x48(%rsp), %rax
cmpq %rax, %rbx
je 0x4c19
movq 0x20(%rbx), %rsi
movq %r14, %rdi
movq %r15, %rdx
callq 0x4d38
testb $0x1, %bpl
jne 0x4bee
movq %r14, %rdi
leaq 0x17535(%rip), %rsi     # 0x1c11c
callq 0x5025
movl %eax, %ebp
movq %r12, %rdi
movq %r14, %rsi
callq 0x4240
movq %rax, %rdi
movq %r13, %rsi
callq 0x4260
movq %r14, %rdi
callq 0x4110
movq %rbx, %rdi
callq 0x42f0
movq %rax, %rbx
jmp 0x4bbe
testb $0x1, %bpl
jne 0x4c30
leaq 0x174fb(%rip), %rsi     # 0x1c121
movq 0x70(%rsp), %rdi
callq 0x4260
leaq 0x40(%rsp), %rdi
callq 0x10410
andb $0x1, %bpl
movl %ebp, %eax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4c55
jmp 0x4c55
jmp 0x4c5a
movq %rax, %rbx
jmp 0x4c67
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x4110
leaq 0x40(%rsp), %rdi
callq 0x10410
movq %rbx, %rdi
callq 0x4400
nop