// File: minimind[P]simple-graph/unittest/catch.hpp
// Function: Catch::makeTestCase(Catch::ITestCase*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, Catch::SourceLineInfo const&)
TestCase makeTestCase(  ITestCase* _testCase,
                            std::string const& _className,
                            std::string const& _name,
                            std::string const& _descOrTags,
                            SourceLineInfo const& _lineInfo )
    {
        bool isHidden( startsWith( _name, "./" ) ); // Legacy support

        // Parse out tags
        std::set<std::string> tags;
        std::string desc, tag;
        bool inTag = false;
        for( std::size_t i = 0; i < _descOrTags.size(); ++i ) {
            char c = _descOrTags[i];
            if( !inTag ) {
                if( c == '[' )
                    inTag = true;
                else
                    desc += c;
            }
            else {
                if( c == ']' ) {
                    enforceNotReservedTag( tag, _lineInfo );

                    inTag = false;
                    if( tag == "hide" || tag == "." )
                        isHidden = true;
                    else
                        tags.insert( tag );
                    tag.clear();
                }
                else
                    tag += c;
            }
        }
        if( isHidden ) {
            tags.insert( "hide" );
            tags.insert( "." );
        }

        TestCaseInfo info( _name, _className, desc, tags, _lineInfo );
        return TestCase( _testCase, info );
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x300, %rsp            # imm = 0x300
movq %rdi, -0x2a8(%rbp)
movq %rdi, %rax
movq %rax, -0x2a0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x298(%rbp)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x290(%rbp)
callq 0xb930
movq -0x290(%rbp), %rdx
leaq 0x6bedd(%rip), %rsi     # 0x786ba
leaq -0x58(%rbp), %rdi
callq 0x134e0
jmp 0xc7e8
movq -0x298(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0xd990
movb %al, -0x2a9(%rbp)
jmp 0xc800
leaq -0x58(%rbp), %rdi
callq 0xb330
leaq -0x59(%rbp), %rdi
callq 0xb5c0
movb -0x2a9(%rbp), %al
andb $0x1, %al
movb %al, -0x31(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x13c80
leaq -0xc0(%rbp), %rdi
callq 0xb720
leaq -0xe0(%rbp), %rdi
callq 0xb720
movb $0x0, -0xe1(%rbp)
movq $0x0, -0xf0(%rbp)
movq -0xf0(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq -0x28(%rbp), %rdi
callq 0xb3c0
movq %rax, %rcx
movq -0x2b8(%rbp), %rax
cmpq %rcx, %rax
jae 0xca0a
movq -0x28(%rbp), %rdi
movq -0xf0(%rbp), %rsi
callq 0xb5e0
movb (%rax), %al
movb %al, -0xf1(%rbp)
testb $0x1, -0xe1(%rbp)
jne 0xc911
movsbl -0xf1(%rbp), %eax
cmpl $0x5b, %eax
jne 0xc8e4
movb $0x1, -0xe1(%rbp)
jmp 0xc90c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xc8d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xb330
leaq -0x59(%rbp), %rdi
callq 0xb5c0
jmp 0xcc47
movsbl -0xf1(%rbp), %esi
leaq -0xc0(%rbp), %rdi
callq 0xb340
jmp 0xc8f9
jmp 0xc90c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xcc23
jmp 0xc9f1
movsbl -0xf1(%rbp), %eax
cmpl $0x5d, %eax
jne 0xc9d8
movq -0x30(%rbp), %rsi
leaq -0xe0(%rbp), %rdi
callq 0x13ca0
jmp 0xc933
movb $0x0, -0xe1(%rbp)
leaq 0x6c001(%rip), %rsi     # 0x78942
leaq -0xe0(%rbp), %rdi
callq 0x13680
movb %al, -0x2b9(%rbp)
jmp 0xc955
movb -0x2b9(%rbp), %al
testb $0x1, %al
jne 0xc988
jmp 0xc961
leaq 0x6ce5c(%rip), %rsi     # 0x797c4
leaq -0xe0(%rbp), %rdi
callq 0x13680
movb %al, -0x2ba(%rbp)
jmp 0xc97c
movb -0x2ba(%rbp), %al
testb $0x1, %al
jne 0xc988
jmp 0xc98e
movb $0x1, -0x31(%rbp)
jmp 0xc9ca
leaq -0xa0(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
callq 0x13dc0
movb %dl, -0x2c9(%rbp)
movq %rax, -0x2c8(%rbp)
jmp 0xc9b0
movb -0x2c9(%rbp), %al
movq -0x2c8(%rbp), %rcx
movq %rcx, -0x108(%rbp)
movb %al, -0x100(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0xb6e0
jmp 0xc9ef
movsbl -0xf1(%rbp), %esi
leaq -0xe0(%rbp), %rdi
callq 0xb340
jmp 0xc9ed
jmp 0xc9ef
jmp 0xc9f1
jmp 0xc9f3
movq -0xf0(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xf0(%rbp)
jmp 0xc853
testb $0x1, -0x31(%rbp)
je 0xcb8a
leaq -0x129(%rbp), %rdi
movq %rdi, -0x2d8(%rbp)
callq 0xb930
movq -0x2d8(%rbp), %rdx
leaq 0x6bf0d(%rip), %rsi     # 0x78942
leaq -0x128(%rbp), %rdi
callq 0x134e0
jmp 0xca43
leaq -0xa0(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0x13e10
movb %dl, -0x2e1(%rbp)
movq %rax, -0x2e0(%rbp)
jmp 0xca65
movb -0x2e1(%rbp), %al
movq -0x2e0(%rbp), %rcx
movq %rcx, -0x140(%rbp)
movb %al, -0x138(%rbp)
leaq -0x128(%rbp), %rdi
callq 0xb330
leaq -0x129(%rbp), %rdi
callq 0xb5c0
leaq -0x161(%rbp), %rdi
movq %rdi, -0x2f0(%rbp)
callq 0xb930
movq -0x2f0(%rbp), %rdx
leaq 0x6cd0c(%rip), %rsi     # 0x797c4
leaq -0x160(%rbp), %rdi
callq 0x134e0
jmp 0xcac6
leaq -0xa0(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x13e10
movb %dl, -0x2f9(%rbp)
movq %rax, -0x2f8(%rbp)
jmp 0xcae8
movb -0x2f9(%rbp), %al
movq -0x2f8(%rbp), %rcx
movq %rcx, -0x178(%rbp)
movb %al, -0x170(%rbp)
leaq -0x160(%rbp), %rdi
callq 0xb330
leaq -0x161(%rbp), %rdi
callq 0xb5c0
jmp 0xcb8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xcb42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x128(%rbp), %rdi
callq 0xb330
leaq -0x129(%rbp), %rdi
callq 0xb5c0
jmp 0xcc23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xcb79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x160(%rbp), %rdi
callq 0xb330
leaq -0x161(%rbp), %rdi
callq 0xb5c0
jmp 0xcc23
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x30(%rbp), %r9
leaq -0x288(%rbp), %rdi
leaq -0xc0(%rbp), %rcx
leaq -0xa0(%rbp), %r8
callq 0xda30
jmp 0xcbb2
movq -0x2a8(%rbp), %rdi
movq -0x10(%rbp), %rsi
leaq -0x288(%rbp), %rdx
callq 0xe050
jmp 0xcbcb
leaq -0x288(%rbp), %rdi
callq 0x13e60
leaq -0xe0(%rbp), %rdi
callq 0xb330
leaq -0xc0(%rbp), %rdi
callq 0xb330
leaq -0xa0(%rbp), %rdi
callq 0x13ee0
movq -0x2a0(%rbp), %rax
addq $0x300, %rsp            # imm = 0x300
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x13e60
leaq -0xe0(%rbp), %rdi
callq 0xb330
leaq -0xc0(%rbp), %rdi
callq 0xb330
leaq -0xa0(%rbp), %rdi
callq 0x13ee0
movq -0x68(%rbp), %rdi
callq 0xb920