// File: /workspace/github_cpp_makefile_star2_O3/lvandeve[P]lodepng/lodepng_unittest.cpp
// Function: testPNGCodec()
void testPNGCodec() {
  codecTest(1, 1);
  codecTest(2, 2);
  codecTest(1, 1, LCT_GREY, 1);
  codecTest(7, 7, LCT_GREY, 1);
#ifndef DISABLE_SLOW
  codecTest(127, 127);
  codecTest(127, 127, LCT_GREY, 1);
  codecTest(320, 320);
  codecTest(1, 10000);
  codecTest(10000, 1);

  testOtherPattern1();
  testOtherPattern2();
#endif // DISABLE_SLOW

  testColor(255, 255, 255, 255);
  testColor(0, 0, 0, 255);
  testColor(1, 2, 3, 255);
  testColor(255, 0, 0, 255);
  testColor(0, 255, 0, 255);
  testColor(0, 0, 255, 255);
  testColor(0, 0, 0, 255);
  testColor(1, 1, 1, 255);
  testColor(1, 1, 1, 1);
  testColor(0, 0, 0, 128);
  testColor(255, 0, 0, 128);
  testColor(127, 127, 127, 255);
  testColor(128, 128, 128, 255);
  testColor(127, 127, 127, 128);
  testColor(128, 128, 128, 128);
  //transparent single pixels
  testColor(0, 0, 0, 0);
  testColor(255, 0, 0, 0);
  testColor(1, 2, 3, 0);
  testColor(255, 255, 255, 0);
  testColor(254, 254, 254, 0);

  // This is mainly to test the Adam7 interlacing
  for(unsigned h = 1; h < 12; h++)
  for(unsigned w = 1; w < 12; w++) {
    testSize(w, h);
  }
}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
movl $0x1, %ebx
movl $0x1, %edi
movl $0x1, %esi
movl $0x6, %edx
movl $0x8, %ecx
callq 0x1ba4b
movl $0x2, %edi
movl $0x2, %esi
movl $0x6, %edx
movl $0x8, %ecx
callq 0x1ba4b
movl $0x1, %edi
movl $0x1, %esi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x1ba4b
movl $0x7, %edi
movl $0x7, %esi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x1ba4b
movl $0x7f, %edi
movl $0x7f, %esi
movl $0x6, %edx
movl $0x8, %ecx
callq 0x1ba4b
movl $0x7f, %edi
movl $0x7f, %esi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x1ba4b
movl $0x140, %edi            # imm = 0x140
movl $0x140, %esi            # imm = 0x140
movl $0x6, %edx
movl $0x8, %ecx
callq 0x1ba4b
movl $0x1, %edi
movl $0x2710, %esi           # imm = 0x2710
movl $0x6, %edx
movl $0x8, %ecx
callq 0x1ba4b
movl $0x2710, %edi           # imm = 0x2710
movl $0x1, %esi
movl $0x6, %edx
movl $0x8, %ecx
callq 0x1ba4b
callq 0x1c18e
callq 0x1c3bc
movl $0xff, %edi
movl $0xff, %esi
movl $0xff, %edx
movl $0xff, %ecx
callq 0x1c610
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
movl $0xff, %ecx
callq 0x1c610
movl $0x1, %edi
movl $0x2, %esi
movl $0x3, %edx
movl $0xff, %ecx
callq 0x1c610
movl $0xff, %edi
xorl %esi, %esi
xorl %edx, %edx
movl $0xff, %ecx
callq 0x1c610
xorl %edi, %edi
movl $0xff, %esi
xorl %edx, %edx
movl $0xff, %ecx
callq 0x1c610
xorl %edi, %edi
xorl %esi, %esi
movl $0xff, %edx
movl $0xff, %ecx
callq 0x1c610
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
movl $0xff, %ecx
callq 0x1c610
movl $0x1, %edi
movl $0x1, %esi
movl $0x1, %edx
movl $0xff, %ecx
callq 0x1c610
movl $0x1, %edi
movl $0x1, %esi
movl $0x1, %edx
movl $0x1, %ecx
callq 0x1c610
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
movl $0x80, %ecx
callq 0x1c610
movl $0xff, %edi
xorl %esi, %esi
xorl %edx, %edx
movl $0x80, %ecx
callq 0x1c610
movl $0x7f, %edi
movl $0x7f, %esi
movl $0x7f, %edx
movl $0xff, %ecx
callq 0x1c610
movl $0x80, %edi
movl $0x80, %esi
movl $0x80, %edx
movl $0xff, %ecx
callq 0x1c610
movl $0x7f, %edi
movl $0x7f, %esi
movl $0x7f, %edx
movl $0x80, %ecx
callq 0x1c610
movl $0x80, %edi
movl $0x80, %esi
movl $0x80, %edx
movl $0x80, %ecx
callq 0x1c610
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x1c610
movl $0xff, %edi
xorl %esi, %esi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x1c610
movl $0x1, %edi
movl $0x2, %esi
movl $0x3, %edx
xorl %ecx, %ecx
callq 0x1c610
movl $0xff, %edi
movl $0xff, %esi
movl $0xff, %edx
xorl %ecx, %ecx
callq 0x1c610
movl $0xfe, %edi
movl $0xfe, %esi
movl $0xfe, %edx
xorl %ecx, %ecx
callq 0x1c610
movl $0x1, %ebp
movl %ebp, %edi
movl %ebx, %esi
callq 0x1d140
incl %ebp
cmpl $0xc, %ebp
jne 0x1d523
incl %ebx
cmpl $0xc, %ebx
jne 0x1d51e
addq $0x8, %rsp
popq %rbx
popq %rbp
retq