// File: 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
movq %rsp, %rbp
subq $0x60, %rsp
movb %cl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
andb $0x1, %al
movb %al, -0x19(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq %rax, (%rdi)
movq -0x18(%rbp), %rax
movq %rax, 0x8(%rdi)
movq -0x18(%rbp), %rax
addq $0x8, %rax
movq %rax, 0x10(%rdi)
movl $0x0, 0x18(%rdi)
addq $0x20, %rdi
movq %rdi, -0x50(%rbp)
callq 0xe900
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
movq %rdi, -0x48(%rbp)
callq 0xe900
movq -0x40(%rbp), %rax
movq %rax, %rdi
addq $0x60, %rdi
movq %rdi, -0x38(%rbp)
movq 0x10(%rax), %rsi
callq 0x12360
jmp 0x54a1d
movq -0x40(%rbp), %rdi
subq $-0x80, %rdi
movq %rdi, -0x58(%rbp)
movq -0x18(%rbp), %rsi
addq $0xc0, %rsi
callq 0x24490
jmp 0x54a3b
movq -0x40(%rbp), %rax
movb -0x19(%rbp), %cl
andb $0x1, %cl
movb %cl, 0x98(%rax)
movq 0x10(%rax), %rdi
callq 0x12090
movl %eax, %ecx
movl %ecx, -0x5c(%rbp)
subl $-0x1, %eax
je 0x54dcb
jmp 0x54a64
movl -0x5c(%rbp), %eax
testl %eax, %eax
je 0x54b1c
jmp 0x54a71
movl -0x5c(%rbp), %eax
subl $0x1, %eax
je 0x54d16
jmp 0x54a7f
movl -0x5c(%rbp), %eax
subl $0x2, %eax
je 0x54d31
jmp 0x54a8d
movl -0x5c(%rbp), %eax
subl $0x10, %eax
je 0x54dcb
jmp 0x54a9b
movl -0x5c(%rbp), %eax
subl $0x11, %eax
je 0x54bb4
jmp 0x54aa9
movl -0x5c(%rbp), %eax
subl $0x12, %eax
je 0x54d4c
jmp 0x54ab7
movl -0x5c(%rbp), %eax
subl $0x110, %eax            # imm = 0x110
je 0x54dcb
jmp 0x54ac7
movl -0x5c(%rbp), %eax
subl $0x111, %eax            # imm = 0x111
je 0x54c6e
jmp 0x54ad7
movl -0x5c(%rbp), %eax
subl $0x112, %eax            # imm = 0x112
je 0x54cde
jmp 0x54ae7
movl -0x5c(%rbp), %eax
subl $0x210, %eax            # imm = 0x210
je 0x54ca6
jmp 0x54dec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x54dfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x54df2
movq -0x40(%rbp), %rdi
movl $0x3, 0x18(%rdi)
addq $0x20, %rdi
leaq 0x29f55(%rip), %rsi     # 0x7ea87
callq 0xe8e0
jmp 0x54b39
movq -0x18(%rbp), %rdi
addq $0xc0, %rdi
callq 0x246c0
cmpq $0x1, %rax
jne 0x54b81
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
leaq 0x29f67(%rip), %rsi     # 0x7eac5
callq 0xe8e0
jmp 0x54b65
jmp 0x54b81
movq -0x58(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x1cb10
jmp 0x54df2
movq -0x18(%rbp), %rdi
addq $0xc0, %rdi
callq 0x246c0
cmpq $0x1, %rax
jbe 0x54baf
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
leaq 0x29fb2(%rip), %rsi     # 0x7eb58
callq 0xe8e0
jmp 0x54bad
jmp 0x54baf
jmp 0x54dec
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x12040
movb %al, -0x5d(%rbp)
jmp 0x54bc6
movb -0x5d(%rbp), %al
testb $0x1, %al
jne 0x54bcf
jmp 0x54bee
movq -0x40(%rbp), %rdi
movl $0x3, 0x18(%rdi)
addq $0x20, %rdi
leaq 0x29ea9(%rip), %rsi     # 0x7ea8e
callq 0xe8e0
jmp 0x54bec
jmp 0x54c0d
movq -0x40(%rbp), %rdi
movl $0x12, 0x18(%rdi)
addq $0x20, %rdi
leaq 0x29e9e(%rip), %rsi     # 0x7eaa2
callq 0xe8e0
jmp 0x54c0b
jmp 0x54c0d
movq -0x18(%rbp), %rdi
addq $0xc0, %rdi
callq 0x246c0
cmpq $0x1, %rax
jne 0x54c3b
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
leaq 0x29e93(%rip), %rsi     # 0x7eac5
callq 0xe8e0
jmp 0x54c39
jmp 0x54c3b
movq -0x18(%rbp), %rdi
addq $0xc0, %rdi
callq 0x246c0
cmpq $0x1, %rax
jbe 0x54c69
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
leaq 0x29ef8(%rip), %rsi     # 0x7eb58
callq 0xe8e0
jmp 0x54c67
jmp 0x54c69
jmp 0x54dec
movq -0x40(%rbp), %rdi
movl $0x12, 0x18(%rdi)
addq $0x20, %rdi
leaq 0x29e1e(%rip), %rsi     # 0x7eaa2
callq 0xe8e0
jmp 0x54c8b
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
leaq 0x29e0f(%rip), %rsi     # 0x7eaa9
callq 0xe8e0
jmp 0x54ca1
jmp 0x54dec
movq -0x40(%rbp), %rdi
movl $0x12, 0x18(%rdi)
addq $0x20, %rdi
leaq 0x29de6(%rip), %rsi     # 0x7eaa2
callq 0xe8e0
jmp 0x54cc3
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
leaq 0x29e00(%rip), %rsi     # 0x7ead2
callq 0xe8e0
jmp 0x54cd9
jmp 0x54dec
movq -0x40(%rbp), %rdi
movl $0x12, 0x18(%rdi)
addq $0x20, %rdi
leaq 0x29dae(%rip), %rsi     # 0x7eaa2
callq 0xe8e0
jmp 0x54cfb
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
leaq 0x29de7(%rip), %rsi     # 0x7eaf1
callq 0xe8e0
jmp 0x54d11
jmp 0x54dec
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
leaq 0x29e03(%rip), %rsi     # 0x7eb28
callq 0xe8e0
jmp 0x54d2c
jmp 0x54dec
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
leaq 0x29ded(%rip), %rsi     # 0x7eb2d
callq 0xe8e0
jmp 0x54d47
jmp 0x54dec
movq -0x40(%rbp), %rdi
addq $0x20, %rdi
leaq 0x29d47(%rip), %rsi     # 0x7eaa2
callq 0xe8e0
jmp 0x54d62
movq -0x40(%rbp), %rax
movl $0x12, 0x18(%rax)
movq -0x18(%rbp), %rdi
addq $0xc0, %rdi
callq 0x246c0
cmpq $0x1, %rax
jne 0x54d9b
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
leaq 0x29da3(%rip), %rsi     # 0x7eb35
callq 0xe8e0
jmp 0x54d99
jmp 0x54d9b
movq -0x18(%rbp), %rdi
addq $0xc0, %rdi
callq 0x246c0
cmpq $0x1, %rax
jbe 0x54dc9
movq -0x40(%rbp), %rdi
addq $0x40, %rdi
leaq 0x29d8d(%rip), %rsi     # 0x7eb4d
callq 0xe8e0
jmp 0x54dc7
jmp 0x54dc9
jmp 0x54dec
movq -0x40(%rbp), %rdi
addq $0x20, %rdi
leaq 0x29d8c(%rip), %rsi     # 0x7eb66
callq 0xe8e0
jmp 0x54de1
movq -0x40(%rbp), %rax
movl $0x12, 0x18(%rax)
addq $0x60, %rsp
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0xecd8
movq -0x48(%rbp), %rdi
callq 0xecd8
movq -0x50(%rbp), %rdi
callq 0xecd8
movq -0x28(%rbp), %rdi
callq 0xeb60
nopw %cs:(%rax,%rax)