// File: dadocolussi[P]gdc-circular_queue/tests/catch.hpp
// Function: Catch::listTests(Catch::Config const&)
inline std::size_t listTests( Config const& config ) {

        TestSpec testSpec = config.testSpec();
        if( config.testSpec().hasFilters() )
            Catch::cout() << "Matching test cases:\n";
        else {
            Catch::cout() << "All available test cases:\n";
            testSpec = TestSpecParser( ITagAliasRegistry::get() ).parse( "*" ).testSpec();
        }

        std::size_t matchedTests = 0;
        TextAttributes nameAttr, tagsAttr;
        nameAttr.setInitialIndent( 2 ).setIndent( 4 );
        tagsAttr.setIndent( 6 );

        std::vector<TestCase> matchedTestCases = filterTests( getAllTestCasesSorted( config ), testSpec, config );
        for( std::vector<TestCase>::const_iterator it = matchedTestCases.begin(), itEnd = matchedTestCases.end();
                it != itEnd;
                ++it ) {
            matchedTests++;
            TestCaseInfo const& testCaseInfo = it->getTestCaseInfo();
            Colour::Code colour = testCaseInfo.isHidden()
                ? Colour::SecondaryText
                : Colour::None;
            Colour colourGuard( colour );

            Catch::cout() << Text( testCaseInfo.name, nameAttr ) << std::endl;
            if( !testCaseInfo.tags.empty() )
                Catch::cout() << Text( testCaseInfo.tagsAsString, tagsAttr ) << std::endl;
        }

        if( !config.testSpec().hasFilters() )
            Catch::cout() << pluralise( matchedTests, "test case" ) << "\n" << std::endl;
        else
            Catch::cout() << pluralise( matchedTests, "matching test case" ) << "\n" << std::endl;
        return matchedTests;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x370, %rsp            # imm = 0x370
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x68(%rax), %rax
callq *%rax
movq %rax, %rsi
leaq -0x20(%rbp), %rdi
callq 0x19650
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x68(%rax), %rax
callq *%rax
movq %rax, -0x2c8(%rbp)
jmp 0x454be
movq -0x2c8(%rbp), %rdi
callq 0x19680
testb $0x1, %al
jne 0x454d0
jmp 0x454fc
callq 0x11b50
movq %rax, %rdi
leaq 0x3906b(%rip), %rsi     # 0x7e54a
callq 0xe670
jmp 0x454e6
jmp 0x45604
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x45b85
callq 0x11b50
movq %rax, %rdi
leaq 0x39055(%rip), %rsi     # 0x7e560
callq 0xe670
jmp 0x45512
callq 0x10370
movq %rax, %rsi
leaq -0xb8(%rbp), %rdi
callq 0x196a0
jmp 0x45528
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x2d0(%rbp)
callq 0xeb70
movq -0x2d0(%rbp), %rdx
leaq 0x39630(%rip), %rsi     # 0x7eb79
leaq -0xd8(%rbp), %rdi
callq 0x18c80
jmp 0x45557
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x196f0
movq %rax, -0x2d8(%rbp)
jmp 0x45573
movq -0x2d8(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x197d0
jmp 0x45585
leaq -0x20(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x19820
leaq -0x48(%rbp), %rdi
callq 0x19850
leaq -0xd8(%rbp), %rdi
callq 0xecd8
leaq -0xd9(%rbp), %rdi
callq 0xe710
leaq -0xb8(%rbp), %rdi
callq 0x19870
jmp 0x45604
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x455e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0xecd8
leaq -0xd9(%rbp), %rdi
callq 0xe710
leaq -0xb8(%rbp), %rdi
callq 0x19870
jmp 0x45b85
movq $0x0, -0xe8(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x3fcc0
jmp 0x4561d
leaq -0x128(%rbp), %rdi
callq 0x3fcc0
jmp 0x4562b
leaq -0x108(%rbp), %rdi
movl $0x2, %esi
callq 0x46ba0
movq %rax, -0x2e0(%rbp)
jmp 0x45645
movq -0x2e0(%rbp), %rdi
movl $0x4, %esi
callq 0x3fcf0
leaq -0x128(%rbp), %rdi
movl $0x6, %esi
callq 0x3fcf0
movq -0x8(%rbp), %rdi
callq 0x10380
movq %rax, -0x2e8(%rbp)
jmp 0x45679
movq -0x2e8(%rbp), %rsi
movq -0x8(%rbp), %rcx
leaq -0x140(%rbp), %rdi
leaq -0x20(%rbp), %rdx
callq 0x10b90
jmp 0x45696
leaq -0x140(%rbp), %rdi
callq 0x46bc0
movq %rax, -0x150(%rbp)
leaq -0x148(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x46bf0
leaq -0x140(%rbp), %rdi
callq 0x46c30
movq %rax, -0x160(%rbp)
leaq -0x158(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x46bf0
leaq -0x148(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x19930
testb $0x1, %al
jne 0x456fe
jmp 0x458ca
movq -0xe8(%rbp), %rax
incq %rax
movq %rax, -0xe8(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x1a3b0
movq %rax, %rdi
callq 0x10b80
movq %rax, -0x168(%rbp)
movq -0x168(%rbp), %rdi
callq 0x12810
movb %al, %cl
xorl %eax, %eax
testb %cl, %cl
movl $0x17, %ecx
cmovnel %ecx, %eax
movl %eax, -0x16c(%rbp)
movl -0x16c(%rbp), %esi
leaq -0x16d(%rbp), %rdi
callq 0x11bf0
jmp 0x4575e
callq 0x11b50
movq %rax, -0x2f0(%rbp)
movq -0x168(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
leaq -0x108(%rbp), %rdx
callq 0x3fd10
jmp 0x45786
movq -0x2f0(%rbp), %rdi
leaq -0x1c8(%rbp), %rsi
callq 0x3fc20
movq %rax, -0x2f8(%rbp)
jmp 0x457a2
movq -0x2f8(%rbp), %rdi
movq 0x6f788(%rip), %rsi     # 0xb4f38
callq 0xe6f0
jmp 0x457b7
leaq -0x1c8(%rbp), %rdi
callq 0x40350
movq -0x168(%rbp), %rdi
addq $0x60, %rdi
callq 0x46c60
testb $0x1, %al
jne 0x4589c
callq 0x11b50
movq %rax, -0x300(%rbp)
movq -0x168(%rbp), %rsi
addq $0xc0, %rsi
leaq -0x220(%rbp), %rdi
leaq -0x128(%rbp), %rdx
callq 0x3fd10
jmp 0x4580a
movq -0x300(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x3fc20
movq %rax, -0x308(%rbp)
jmp 0x45826
movq -0x308(%rbp), %rdi
movq 0x6f704(%rip), %rsi     # 0xb4f38
callq 0xe6f0
jmp 0x4583b
leaq -0x220(%rbp), %rdi
callq 0x40350
jmp 0x4589c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x45b79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x458b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x1c8(%rbp), %rdi
callq 0x40350
jmp 0x458b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x220(%rbp), %rdi
callq 0x40350
jmp 0x458b9
leaq -0x16d(%rbp), %rdi
callq 0x11cf0
leaq -0x148(%rbp), %rdi
callq 0x19dd0
jmp 0x456e2
leaq -0x16d(%rbp), %rdi
callq 0x11cf0
jmp 0x45b79
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq 0x68(%rax), %rax
callq *%rax
movq %rax, -0x310(%rbp)
jmp 0x458e0
movq -0x310(%rbp), %rdi
callq 0x19680
testb $0x1, %al
jne 0x45a20
callq 0x11b50
movq %rax, -0x328(%rbp)
movq -0xe8(%rbp), %rax
movq %rax, -0x320(%rbp)
leaq -0x269(%rbp), %rdi
movq %rdi, -0x318(%rbp)
callq 0xeb70
movq -0x318(%rbp), %rdx
leaq 0x38c55(%rip), %rsi     # 0x7e584
leaq -0x268(%rbp), %rdi
callq 0x18c80
jmp 0x4593d
movq -0x320(%rbp), %rsi
leaq -0x248(%rbp), %rdi
leaq -0x268(%rbp), %rdx
callq 0x13c80
jmp 0x45959
movq -0x328(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x13cc0
movq %rax, -0x330(%rbp)
jmp 0x45975
movq -0x330(%rbp), %rdi
leaq 0x390a6(%rip), %rsi     # 0x7ea29
callq 0xe670
movq %rax, -0x338(%rbp)
jmp 0x45991
movq -0x338(%rbp), %rdi
movq 0x6f599(%rip), %rsi     # 0xb4f38
callq 0xe6f0
jmp 0x459a6
leaq -0x248(%rbp), %rdi
callq 0x46c80
leaq -0x268(%rbp), %rdi
callq 0xecd8
leaq -0x269(%rbp), %rdi
callq 0xe710
jmp 0x45b46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x45a0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x45a03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x46c80
leaq -0x268(%rbp), %rdi
callq 0xecd8
leaq -0x269(%rbp), %rdi
callq 0xe710
jmp 0x45b79
callq 0x11b50
movq %rax, -0x350(%rbp)
movq -0xe8(%rbp), %rax
movq %rax, -0x348(%rbp)
leaq -0x2b9(%rbp), %rdi
movq %rdi, -0x340(%rbp)
callq 0xeb70
movq -0x340(%rbp), %rdx
leaq 0x38b20(%rip), %rsi     # 0x7e57b
leaq -0x2b8(%rbp), %rdi
callq 0x18c80
jmp 0x45a69
movq -0x348(%rbp), %rsi
leaq -0x298(%rbp), %rdi
leaq -0x2b8(%rbp), %rdx
callq 0x13c80
jmp 0x45a85
movq -0x350(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x13cc0
movq %rax, -0x358(%rbp)
jmp 0x45aa1
movq -0x358(%rbp), %rdi
leaq 0x38f7a(%rip), %rsi     # 0x7ea29
callq 0xe670
movq %rax, -0x360(%rbp)
jmp 0x45abd
movq -0x360(%rbp), %rdi
movq 0x6f46d(%rip), %rsi     # 0xb4f38
callq 0xe6f0
jmp 0x45ad2
leaq -0x298(%rbp), %rdi
callq 0x46c80
leaq -0x2b8(%rbp), %rdi
callq 0xecd8
leaq -0x2b9(%rbp), %rdi
callq 0xe710
jmp 0x45b46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x45b38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x45b2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x46c80
leaq -0x2b8(%rbp), %rdi
callq 0xecd8
leaq -0x2b9(%rbp), %rdi
callq 0xe710
jmp 0x45b79
movq -0xe8(%rbp), %rax
movq %rax, -0x368(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x1a5d0
leaq -0x20(%rbp), %rdi
callq 0x19850
movq -0x368(%rbp), %rax
addq $0x370, %rsp            # imm = 0x370
popq %rbp
retq
leaq -0x140(%rbp), %rdi
callq 0x1a5d0
leaq -0x20(%rbp), %rdi
callq 0x19850
movq -0x28(%rbp), %rdi
callq 0xeb60
nopw (%rax,%rax)