// File: /workspace/github_cpp_makefile_star2_O3/porzell[P]PTest/examples/../include/ptest.hpp
// Function: PTest::PTestRegistry::RunAllTests()
int RunAllTests() {
			size_t testsRunCount = 0;
			size_t testsFailedCount = 0;

			SetConsoleColor(PColor::Green);
			printf("\n[Running all tests]\n\n");
			SetConsoleColor(PColor::Normal);

			std::chrono::duration<double, std::milli> totalDuration = std::chrono::milliseconds(0);

			for (auto& it : index_) {
				auto& theTest = it->second;
				currentTest_ = &theTest;
				if (!theTest.Run()) {
					testsFailedCount++;
				}
				currentTest_ = nullptr;
				totalDuration += theTest.GetDuration();
				testsRunCount++;
			}

			putchar('\n');
			SetConsoleColor(PColor::Normal); PrintBars(3); printf("[Test Summary]:");
			SetConsoleColor(PColor::Blue); printf("\t\t\t(Total Time: %f ms)\n", totalDuration.count());
			SetConsoleColor(PColor::Green); printf("\tTests Passed:\t");
			SetConsoleColor(PColor::Normal); printf("%zu\n", testsRunCount - testsFailedCount);
			testsFailedCount ? SetConsoleColor(PColor::Red) : SetConsoleColor(PColor::Green);
			printf("\tTests Failed:\t");
			SetConsoleColor(PColor::Normal); printf("%zu\n", testsFailedCount);
			SetConsoleColor(PColor::Blue); printf("\tTotal Tests:\t");
			SetConsoleColor(PColor::Normal); printf("%zu\n", testsRunCount); PrintBars(3);

			return testsFailedCount;
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %r14
leaq 0x2328(%rip), %rdi      # 0x502d
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x2030
leaq 0x261f(%rip), %rdi      # 0x5334
callq 0x21c0
leaq 0x2318(%rip), %rdi      # 0x5039
xorl %eax, %eax
callq 0x2030
movq 0x38(%r14), %r15
movq 0x40(%r14), %rax
xorpd %xmm0, %xmm0
cmpq %rax, %r15
je 0x2d9d
movsd %xmm0, -0x30(%rbp)
movq %r14, -0x40(%rbp)
xorl %r14d, %r14d
xorl %ebx, %ebx
movq %rax, -0x38(%rbp)
movq (%r15), %r13
leaq 0x28(%r13), %rdi
movq %r14, %r12
movq -0x40(%rbp), %r14
movq %rdi, 0x50(%r14)
callq 0x463e
xorb $0x1, %al
movzbl %al, %eax
movq $0x0, 0x50(%r14)
movq %r12, %r14
movsd -0x30(%rbp), %xmm0
addsd 0x98(%r13), %xmm0
movsd %xmm0, -0x30(%rbp)
addq %rax, %rbx
movq -0x38(%rbp), %rax
addq $0x8, %r15
decq %r14
cmpq %rax, %r15
jne 0x2d4b
negq %r14
jmp 0x2da5
movsd %xmm0, -0x30(%rbp)
xorl %r14d, %r14d
movl $0xa, %edi
callq 0x2190
leaq 0x2283(%rip), %r12      # 0x5039
movq %r12, %rdi
xorl %eax, %eax
callq 0x2030
movl $0x3, %edi
callq 0x24bc
leaq 0x24a2(%rip), %rdi      # 0x5273
xorl %eax, %eax
callq 0x2030
leaq 0x2254(%rip), %rdi      # 0x5033
xorl %eax, %eax
callq 0x2030
leaq 0x2496(%rip), %rdi      # 0x5283
movsd -0x30(%rbp), %xmm0
movb $0x1, %al
callq 0x2030
leaq 0x222d(%rip), %r13      # 0x502d
movq %r13, %rdi
xorl %eax, %eax
callq 0x2030
leaq 0x248a(%rip), %rdi      # 0x529b
xorl %eax, %eax
callq 0x2030
movq %r12, %rdi
xorl %eax, %eax
callq 0x2030
movq %r14, %rsi
subq %rbx, %rsi
leaq 0x247c(%rip), %r15      # 0x52ab
movq %r15, %rdi
xorl %eax, %eax
callq 0x2030
testq %rbx, %rbx
leaq 0x21e4(%rip), %rdi      # 0x5027
cmoveq %r13, %rdi
xorl %eax, %eax
callq 0x2030
leaq 0x245b(%rip), %rdi      # 0x52b0
xorl %eax, %eax
callq 0x2030
movq %r12, %rdi
xorl %eax, %eax
callq 0x2030
movq %r15, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x2030
leaq 0x21b9(%rip), %rdi      # 0x5033
xorl %eax, %eax
callq 0x2030
leaq 0x2438(%rip), %rdi      # 0x52c0
xorl %eax, %eax
callq 0x2030
movq %r12, %rdi
xorl %eax, %eax
callq 0x2030
movq %r15, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x2030
movl $0x3, %edi
callq 0x24bc
movl %ebx, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop