// File: /workspace/github_cpp_makefile_star2_O3/dsharlet[P]array/test/main.cpp
// Function: main
int main(int argc, const char** argv) {
  // By default, the filter matches all tests.
  const char* filter = "*";
  if (argc > 1) {
    filter = argv[1];
    std::cout << "Running tests matching '" << filter << "'..." << std::endl;
  }

  size_t passed = 0;
  size_t total = 0;
  for (auto& i : tests()) {
    if (!wildcard_match(filter, i.first.c_str())) continue;

    std::cout << i.first << " ";
    std::flush(std::cout);
    try {
      i.second();
      std::cout << "passed" << std::endl;
      passed++;
    } catch (const std::exception& e) { std::cout << "failed: " << e.what() << std::endl; }
    total++;
  }
  std::cout << passed << " of " << total << " tests passed, " << tests().size() - total
            << " skipped" << std::endl;
  return passed < total ? -1 : 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
cmpl $0x2, %edi
jl 0x78ce3
movq 0x8(%rsi), %r15
movq 0x6e31a(%rip), %rbx     # 0xe6fc8
leaq 0x415a3(%rip), %rsi     # 0xba258
movl $0x18, %edx
movq %rbx, %rdi
callq 0x2210
testq %r15, %r15
je 0x78cec
movq %r15, %rdi
callq 0x2090
movq 0x6e2f2(%rip), %rdi     # 0xe6fc8
movq %r15, %rsi
movq %rax, %rdx
callq 0x2210
jmp 0x78d03
leaq 0x4156c(%rip), %r15     # 0xba256
jmp 0x78d3e
movq (%rbx), %rax
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x22d0
leaq 0x41567(%rip), %rsi     # 0xba271
movl $0x4, %edx
movq %rbx, %rdi
callq 0x2210
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
callq 0x78c7d
movq 0x6e5ae(%rip), %rbx     # 0xe72f8
movq 0x6e5af(%rip), %r14     # 0xe7300
cmpq %r14, %rbx
je 0x78e61
movq %r15, (%rsp)
xorl %r12d, %r12d
movq 0x6e260(%rip), %r13     # 0xe6fc8
xorl %r15d, %r15d
movq (%rbx), %rbp
movq (%rsp), %rdi
movq %rbp, %rsi
callq 0x78f40
testb %al, %al
je 0x78df9
movq 0x8(%rbx), %rdx
movq %r13, %rdi
movq %rbp, %rsi
callq 0x2210
movl $0x1, %edx
movq %rax, %rdi
leaq 0x414fd(%rip), %rsi     # 0xba299
callq 0x2210
movq %r13, %rdi
callq 0x2120
cmpq $0x0, 0x30(%rbx)
je 0x78e08
leaq 0x20(%rbx), %rdi
callq *0x38(%rbx)
movl $0x6, %edx
movq %r13, %rdi
leaq 0x414b0(%rip), %rsi     # 0xba276
callq 0x2210
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
incq %r12
incq %r15
addq $0x40, %rbx
cmpq %r14, %rbx
jne 0x78d6b
jmp 0x78e67
callq 0x2070
jmp 0x78f28
movq %rax, %rbp
cmpl $0x1, %edx
jne 0x78f30
movq %rbp, %rdi
callq 0x2080
movq %rax, %rbp
movl $0x8, %edx
movq %r13, %rdi
leaq 0x41445(%rip), %rsi     # 0xba27d
callq 0x2210
movq (%rbp), %rax
movq %rbp, %rdi
callq *0x10(%rax)
movq %r13, %rdi
movq %rax, %rsi
callq 0x21d0
movq %rax, %rdi
callq 0x20b0
callq 0x22b0
jmp 0x78df6
xorl %r15d, %r15d
xorl %r12d, %r12d
movq 0x6e15a(%rip), %rdi     # 0xe6fc8
movq %r12, %rsi
callq 0x2110
movq %rax, %rbx
leaq 0x41406(%rip), %rsi     # 0xba286
movl $0x4, %edx
movq %rax, %rdi
callq 0x2210
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2110
movq %rax, %rbx
leaq 0x413e9(%rip), %rsi     # 0xba28b
movl $0xf, %edx
movq %rax, %rdi
callq 0x2210
callq 0x78c7d
movq 0x6e445(%rip), %rsi     # 0xe7300
subq 0x6e436(%rip), %rsi     # 0xe72f8
sarq $0x6, %rsi
subq %r15, %rsi
movq %rbx, %rdi
callq 0x2110
movq %rax, %rbx
leaq 0x413c0(%rip), %rsi     # 0xba29b
movl $0x8, %edx
movq %rax, %rdi
callq 0x2210
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2120
cmpq %r15, %r12
movl $0x0, %eax
sbbl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbp
callq 0x22b0
movq %rbp, %rdi
callq 0x2300
movq %rax, %rdi
callq 0xc0a9