// File: /workspace/github_cpp_makefile_star2_O2/dadocolussi[P]gdc-circular_queue/tests/catch.hpp
// Function: Catch::ConsoleReporter::AssertionPrinter::AssertionPrinter(std::ostream&, Catch::AssertionStats const&, bool)
AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
            :   stream( _stream ),
                stats( _stats ),
                result( _stats.assertionResult ),
                colour( Colour::None ),
                message( result.getMessage() ),
                messages( _stats.infoMessages ),
                printInfoMessages( _printInfoMessages )
            {
                switch( result.getResultType() ) {
                    case ResultWas::Ok:
                        colour = Colour::Success;
                        passOrFail = "PASSED";
                        //if( result.hasMessage() )
                        if( _stats.infoMessages.size() == 1 )
                            messageLabel = "with message";
                        if( _stats.infoMessages.size() > 1 )
                            messageLabel = "with messages";
                        break;
                    case ResultWas::ExpressionFailed:
                        if( result.isOk() ) {
                            colour = Colour::Success;
                            passOrFail = "FAILED - but was ok";
                        }
                        else {
                            colour = Colour::Error;
                            passOrFail = "FAILED";
                        }
                        if( _stats.infoMessages.size() == 1 )
                            messageLabel = "with message";
                        if( _stats.infoMessages.size() > 1 )
                            messageLabel = "with messages";
                        break;
                    case ResultWas::ThrewException:
                        colour = Colour::Error;
                        passOrFail = "FAILED";
                        messageLabel = "due to unexpected exception with message";
                        break;
                    case ResultWas::FatalErrorCondition:
                        colour = Colour::Error;
                        passOrFail = "FAILED";
                        messageLabel = "due to a fatal error condition";
                        break;
                    case ResultWas::DidntThrowException:
                        colour = Colour::Error;
                        passOrFail = "FAILED";
                        messageLabel = "because no exception was thrown where one was expected";
                        break;
                    case ResultWas::Info:
                        messageLabel = "info";
                        break;
                    case ResultWas::Warning:
                        messageLabel = "warning";
                        break;
                    case ResultWas::ExplicitFailure:
                        passOrFail = "FAILED";
                        colour = Colour::Error;
                        if( _stats.infoMessages.size() == 1 )
                            messageLabel = "explicitly with message";
                        if( _stats.infoMessages.size() > 1 )
                            messageLabel = "explicitly with messages";
                        break;
                    // These cases are here to prevent compiler warnings
                    case ResultWas::Unknown:
                    case ResultWas::FailureBit:
                    case ResultWas::Exception:
                        passOrFail = "** internal error **";
                        colour = Colour::Error;
                        break;
                }
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %ecx, %r14d
movq %rdx, %r13
movq %rdi, %rbp
movq %rsi, (%rdi)
movq %rdx, 0x8(%rdi)
leaq 0x8(%rdx), %rax
movq %rax, 0x10(%rdi)
andl $0x0, 0x18(%rdi)
leaq 0x30(%rdi), %rax
movq %rax, 0x20(%rdi)
andq $0x0, 0x28(%rdi)
leaq 0x20(%rdi), %rbx
xorl %eax, %eax
movb %al, 0x30(%rdi)
leaq 0x50(%rdi), %rcx
movq %rcx, 0x40(%rdi)
andq $0x0, 0x48(%rdi)
leaq 0x40(%rdi), %rcx
movq %rcx, (%rsp)
movb %al, 0x50(%rdi)
leaq 0x60(%rdi), %r15
leaq 0x98(%rdx), %rsi
movq %r15, %rdi
callq 0xc650
leaq 0x80(%rbp), %r12
leaq 0xc0(%r13), %rsi
movq %r12, %rdi
callq 0x16756
movb %r14b, 0x98(%rbp)
movq 0x10(%rbp), %rcx
movl 0xb0(%rcx), %eax
leal 0x1(%rax), %edx
cmpl $0x3, %edx
jbe 0x2585e
cmpl $0x10, %eax
je 0x2586e
cmpl $0x11, %eax
je 0x2598b
cmpl $0x12, %eax
je 0x25889
cmpl $0x110, %eax            # imm = 0x110
je 0x2586e
cmpl $0x111, %eax            # imm = 0x111
je 0x2594a
cmpl $0x112, %eax            # imm = 0x112
je 0x2596c
cmpl $0x210, %eax            # imm = 0x210
jne 0x25a05
movl $0x12, 0x18(%rbp)
leaq 0x11220(%rip), %rsi     # 0x36a6a
movq %rbx, %rdi
callq 0xc8e0
leaq 0x11241(%rip), %rsi     # 0x36a9a
jmp 0x259fc
leaq 0xff5b(%rip), %rax      # 0x357c0
movslq (%rax,%rdx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x112b9(%rip), %rsi     # 0x36b2e
movq %rbx, %rdi
callq 0xc8e0
movl $0x12, 0x18(%rbp)
jmp 0x25a05
leaq 0x111da(%rip), %rsi     # 0x36a6a
movq %rbx, %rdi
callq 0xc8e0
movl $0x12, 0x18(%rbp)
movq 0xc8(%r13), %rax
subq 0xc0(%r13), %rax
cmpq $0x78, %rax
jne 0x258d1
leaq 0x11243(%rip), %rsi     # 0x36afd
movq (%rsp), %rdi
callq 0xc8e0
movq 0xc8(%r13), %rax
subq 0xc0(%r13), %rax
pushq $0x78
popq %rcx
cqto
idivq %rcx
cmpq $0x2, %rax
jb 0x25a05
leaq 0x1122b(%rip), %rsi     # 0x36b15
jmp 0x259fc
leaq 0x111fa(%rip), %rsi     # 0x36af0
jmp 0x259fc
leaq 0x111f3(%rip), %rsi     # 0x36af5
jmp 0x259fc
movl $0x3, 0x18(%rbp)
leaq 0x1113a(%rip), %rsi     # 0x36a4f
movq %rbx, %rdi
callq 0xc8e0
movq 0xc8(%r13), %rax
subq 0xc0(%r13), %rax
cmpq $0x78, %rax
jne 0x259e7
leaq 0x11151(%rip), %rsi     # 0x36a8d
movq (%rsp), %rdi
callq 0xc8e0
jmp 0x259d9
movl $0x12, 0x18(%rbp)
leaq 0x11112(%rip), %rsi     # 0x36a6a
movq %rbx, %rdi
callq 0xc8e0
leaq 0x1110a(%rip), %rsi     # 0x36a71
jmp 0x259fc
movl $0x12, 0x18(%rbp)
leaq 0x110f0(%rip), %rsi     # 0x36a6a
movq %rbx, %rdi
callq 0xc8e0
leaq 0x11130(%rip), %rsi     # 0x36ab9
jmp 0x259fc
testb $0x8, 0x68(%rcx)
pushq $0x12
popq %rax
pushq $0x3
popq %rcx
cmovel %eax, %ecx
leaq 0x110cb(%rip), %rax     # 0x36a6a
leaq 0x110b0(%rip), %rsi     # 0x36a56
cmoveq %rax, %rsi
movl %ecx, 0x18(%rbp)
movq %rbx, %rdi
callq 0xc8e0
movq 0xc8(%r13), %rax
subq 0xc0(%r13), %rax
cmpq $0x78, %rax
jne 0x259e7
leaq 0x110bd(%rip), %rsi     # 0x36a8d
movq (%rsp), %rdi
callq 0xc8e0
movq 0xc8(%r13), %rax
subq 0xc0(%r13), %rax
pushq $0x78
popq %rcx
cqto
idivq %rcx
cmpq $0x1, %rax
jbe 0x25a05
leaq 0x11124(%rip), %rsi     # 0x36b20
movq (%rsp), %rdi
callq 0xc8e0
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
jmp 0x25a29
movq %rax, %r14
jmp 0x25a31
movq %rax, %r14
movq %r12, %rdi
callq 0x130ec
movq %r15, %rdi
callq 0xc978
movq (%rsp), %rdi
callq 0xc978
movq %rbx, %rdi
callq 0xc978
movq %r14, %rdi
callq 0xc840