// File: /workspace/github_cpp_makefile_star2_O2/ambersun1234[P]AVL_Tree/./googletest/googletest/src/gtest.cc
// Function: testing::internal::JsonUnitTestResultPrinter::PrintJsonTestCase(std::ostream*, testing::TestCase const&)
void JsonUnitTestResultPrinter::PrintJsonTestCase(std::ostream* stream,
                                                  const TestCase& test_case) {
  const std::string kTestsuite = "testsuite";
  const std::string kIndent = Indent(6);

  *stream << Indent(4) << "{\n";
  OutputJsonKey(stream, kTestsuite, "name", test_case.name(), kIndent);
  OutputJsonKey(stream, kTestsuite, "tests", test_case.reportable_test_count(),
                kIndent);
  if (!GTEST_FLAG(list_tests)) {
    OutputJsonKey(stream, kTestsuite, "failures", test_case.failed_test_count(),
                  kIndent);
    OutputJsonKey(stream, kTestsuite, "disabled",
                  test_case.reportable_disabled_test_count(), kIndent);
    OutputJsonKey(stream, kTestsuite, "errors", 0, kIndent);
    OutputJsonKey(stream, kTestsuite, "time",
                  FormatTimeInMillisAsDuration(test_case.elapsed_time()),
                  kIndent, false);
    *stream << TestPropertiesAsJson(test_case.ad_hoc_test_result(), kIndent)
            << ",\n";
  }

  *stream << kIndent << "\"" << kTestsuite << "\": [\n";

  bool comma = false;
  for (int i = 0; i < test_case.total_test_count(); ++i) {
    if (test_case.GetTestInfo(i)->is_reportable()) {
      if (comma) {
        *stream << ",\n";
      } else {
        comma = true;
      }
      OutputJsonTestInfo(stream, test_case.name(), *test_case.GetTestInfo(i));
    }
  }
  *stream << "\n" << kIndent << "]\n" << Indent(4) << "}";
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x1238a(%rip), %rsi     # 0x2a612
leaq 0x78(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0xb770
leaq 0x38(%rsp), %rdi
pushq $0x6
popq %rsi
callq 0x1806c
leaq 0x10(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x1806c
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8410
leaq 0x12449(%rip), %rsi     # 0x2a70e
movq %rax, %rdi
callq 0x8460
leaq 0x10(%rsp), %rdi
callq 0x8aa8
leaq 0x122ee(%rip), %rsi     # 0x2a5cc
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xb770
movq 0x8(%r14), %rsi
leaq 0x58(%rsp), %rdi
leaq 0x37(%rsp), %rdx
callq 0xb770
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x58(%rsp), %rcx
leaq 0x38(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
callq 0x17646
leaq 0x58(%rsp), %rdi
callq 0x8aa8
leaq 0x10(%rsp), %rdi
callq 0x8aa8
leaq 0x1206c(%rip), %rsi     # 0x2a3a7
leaq 0x10(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0xb770
movq %r14, %rdi
callq 0xf2b0
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x38(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
movl %eax, %ecx
callq 0x177d8
leaq 0x10(%rsp), %rdi
callq 0x8aa8
cmpb $0x0, 0x27439(%rip)     # 0x3f7b9
jne 0x184e0
leaq 0x12da7(%rip), %rsi     # 0x2b134
leaq 0x10(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0xb770
movq %r14, %rdi
callq 0xf232
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x38(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
movl %eax, %ecx
callq 0x177d8
leaq 0x10(%rsp), %rdi
callq 0x8aa8
leaq 0x1224e(%rip), %rsi     # 0x2a620
leaq 0x10(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0xb770
movq %r14, %rdi
callq 0xf256
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x38(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
movl %eax, %ecx
callq 0x177d8
leaq 0x10(%rsp), %rdi
callq 0x8aa8
leaq 0x12212(%rip), %rsi     # 0x2a629
leaq 0x10(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0xb770
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x38(%rsp), %r8
pushq $0x1
popq %r9
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x177d8
leaq 0x10(%rsp), %rdi
callq 0x8aa8
leaq 0x1216e(%rip), %rsi     # 0x2a5c2
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xb770
movq 0x78(%r14), %rsi
leaq 0x58(%rsp), %rdi
callq 0x18086
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdx
leaq 0x58(%rsp), %rcx
leaq 0x38(%rsp), %r8
movq %rbx, %rdi
xorl %r9d, %r9d
callq 0x17646
leaq 0x58(%rsp), %rdi
callq 0x8aa8
leaq 0x10(%rsp), %rdi
callq 0x8aa8
leaq 0x80(%r14), %rsi
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x180fa
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8410
leaq 0x12255(%rip), %rsi     # 0x2a723
movq %rax, %rdi
callq 0x8460
leaq 0x10(%rsp), %rdi
callq 0x8aa8
leaq 0x38(%rsp), %rsi
movq %rbx, %rdi
callq 0x8410
leaq 0x1222c(%rip), %rsi     # 0x2a720
movq %rax, %rdi
callq 0x8460
leaq 0x78(%rsp), %rsi
movq %rax, %rdi
callq 0x8410
leaq 0x121f6(%rip), %rsi     # 0x2a706
movq %rax, %rdi
callq 0x8460
xorl %r13d, %r13d
leaq 0x12201(%rip), %r15     # 0x2a723
xorl %ebp, %ebp
movq 0x38(%r14), %rax
subq 0x30(%r14), %rax
shrq $0x3, %rax
cmpl %eax, %ebp
jge 0x18584
movq %r14, %rdi
movl %ebp, %esi
callq 0x135c2
cmpb $0x1, 0x82(%rax)
jne 0x18580
testb $0x1, 0x83(%rax)
jne 0x18580
testb $0x1, %r13b
je 0x18561
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8460
movq 0x8(%r14), %r12
movq %r14, %rdi
movl %ebp, %esi
callq 0x135c2
movb $0x1, %r13b
movq %rbx, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x1795a
incl %ebp
jmp 0x18524
leaq 0x11e8b(%rip), %rsi     # 0x2a416
movq %rbx, %rdi
callq 0x8460
leaq 0x38(%rsp), %rsi
movq %rax, %rdi
callq 0x8410
leaq 0x12193(%rip), %rsi     # 0x2a73a
movq %rax, %rdi
callq 0x8460
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
pushq $0x4
popq %rsi
callq 0x1806c
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8410
leaq 0x12165(%rip), %rsi     # 0x2a738
movq %rax, %rdi
callq 0x8460
leaq 0x10(%rsp), %rdi
callq 0x8aa8
leaq 0x38(%rsp), %rdi
callq 0x8aa8
leaq 0x78(%rsp), %rdi
callq 0x8aa8
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x18656
jmp 0x18625
jmp 0x18643
jmp 0x18656
jmp 0x18643
jmp 0x18656
jmp 0x18656
jmp 0x18656
jmp 0x18656
jmp 0x18643
jmp 0x18643
jmp 0x18643
jmp 0x18656
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x8aa8
jmp 0x18646
jmp 0x18643
jmp 0x18656
jmp 0x18656
movq %rax, %rbx
jmp 0x18663
jmp 0x18643
jmp 0x18643
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x8aa8
jmp 0x18659
jmp 0x18656
jmp 0x18656
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x8aa8
leaq 0x78(%rsp), %rdi
callq 0x8aa8
movq %rbx, %rdi
callq 0x8980
nop