// File: chuckwolber[P]Cube/test/test_cube.cpp
// Function: test_constructors()
void test_constructors() {
   std::cout << "Testing constructors... ";

   Cube c1;
   verify_cube(c1, getExpected(CubieColor::WHITE,  3));

   Cube c2(CubieColor::WHITE);
   Cube c3(CubieColor::BLUE);
   Cube c4(CubieColor::GREEN);
   Cube c5(CubieColor::ORANGE);
   Cube c6(CubieColor::RED);
   Cube c7(CubieColor::YELLOW);

   verify_cube(c2, getExpected(CubieColor::WHITE,  3));
   verify_cube(c3, getExpected(CubieColor::BLUE,   3));
   verify_cube(c4, getExpected(CubieColor::GREEN,  3));
   verify_cube(c5, getExpected(CubieColor::ORANGE, 3));
   verify_cube(c6, getExpected(CubieColor::RED,    3));
   verify_cube(c7, getExpected(CubieColor::YELLOW, 3));

   for (unsigned int i = 0; i < 10; i++)
      test_sized_constructors(i);

   std::cout << "Passed" << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x760, %rsp            # imm = 0x760
movq 0xc046(%rip), %rdi      # 0x15fd8
leaq 0x6367(%rip), %rsi      # 0x10300
callq 0x2160
leaq -0x78(%rbp), %rdi
movq %rdi, -0x758(%rbp)
callq 0x7a90
movq -0x758(%rbp), %rsi
leaq -0xf0(%rbp), %rdi
callq 0x7d50
jmp 0x9fc3
leaq -0x118(%rbp), %rdi
movl $0x77, %esi
movl $0x3, %edx
callq 0xd410
jmp 0x9fdb
leaq -0xf0(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0xd2e0
jmp 0x9ff0
leaq -0x118(%rbp), %rdi
callq 0x95e0
leaq -0xf0(%rbp), %rdi
callq 0x8210
leaq -0x190(%rbp), %rdi
movl $0x77, %esi
callq 0x7c90
jmp 0xa01b
leaq -0x208(%rbp), %rdi
movl $0x62, %esi
callq 0x7c90
jmp 0xa02e
leaq -0x280(%rbp), %rdi
movl $0x67, %esi
callq 0x7c90
jmp 0xa041
leaq -0x2f8(%rbp), %rdi
movl $0x6f, %esi
callq 0x7c90
jmp 0xa054
leaq -0x370(%rbp), %rdi
movl $0x72, %esi
callq 0x7c90
jmp 0xa067
leaq -0x3e8(%rbp), %rdi
movl $0x79, %esi
callq 0x7c90
jmp 0xa07a
leaq -0x460(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x7d50
jmp 0xa08f
leaq -0x478(%rbp), %rdi
movl $0x77, %esi
movl $0x3, %edx
callq 0xd410
jmp 0xa0a7
leaq -0x460(%rbp), %rdi
leaq -0x478(%rbp), %rsi
callq 0xd2e0
jmp 0xa0bc
leaq -0x478(%rbp), %rdi
callq 0x95e0
leaq -0x460(%rbp), %rdi
callq 0x8210
leaq -0x4f0(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x7d50
jmp 0xa0e9
leaq -0x508(%rbp), %rdi
movl $0x62, %esi
movl $0x3, %edx
callq 0xd410
jmp 0xa101
leaq -0x4f0(%rbp), %rdi
leaq -0x508(%rbp), %rsi
callq 0xd2e0
jmp 0xa116
leaq -0x508(%rbp), %rdi
callq 0x95e0
leaq -0x4f0(%rbp), %rdi
callq 0x8210
leaq -0x580(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x7d50
jmp 0xa143
leaq -0x598(%rbp), %rdi
movl $0x67, %esi
movl $0x3, %edx
callq 0xd410
jmp 0xa15b
leaq -0x580(%rbp), %rdi
leaq -0x598(%rbp), %rsi
callq 0xd2e0
jmp 0xa170
leaq -0x598(%rbp), %rdi
callq 0x95e0
leaq -0x580(%rbp), %rdi
callq 0x8210
leaq -0x610(%rbp), %rdi
leaq -0x2f8(%rbp), %rsi
callq 0x7d50
jmp 0xa19d
leaq -0x628(%rbp), %rdi
movl $0x6f, %esi
movl $0x3, %edx
callq 0xd410
jmp 0xa1b5
leaq -0x610(%rbp), %rdi
leaq -0x628(%rbp), %rsi
callq 0xd2e0
jmp 0xa1ca
leaq -0x628(%rbp), %rdi
callq 0x95e0
leaq -0x610(%rbp), %rdi
callq 0x8210
leaq -0x6a0(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x7d50
jmp 0xa1f7
leaq -0x6b8(%rbp), %rdi
movl $0x72, %esi
movl $0x3, %edx
callq 0xd410
jmp 0xa20f
leaq -0x6a0(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
callq 0xd2e0
jmp 0xa224
leaq -0x6b8(%rbp), %rdi
callq 0x95e0
leaq -0x6a0(%rbp), %rdi
callq 0x8210
leaq -0x730(%rbp), %rdi
leaq -0x3e8(%rbp), %rsi
callq 0x7d50
jmp 0xa251
leaq -0x748(%rbp), %rdi
movl $0x79, %esi
movl $0x3, %edx
callq 0xd410
jmp 0xa269
leaq -0x730(%rbp), %rdi
leaq -0x748(%rbp), %rsi
callq 0xd2e0
jmp 0xa27e
leaq -0x748(%rbp), %rdi
callq 0x95e0
leaq -0x730(%rbp), %rdi
callq 0x8210
movl $0x0, -0x74c(%rbp)
cmpl $0xa, -0x74c(%rbp)
jae 0xa543
movl -0x74c(%rbp), %edi
callq 0xd840
jmp 0xa2ba
jmp 0xa2bc
movl -0x74c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74c(%rbp)
jmp 0xa2a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa616
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa316
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x95e0
leaq -0xf0(%rbp), %rdi
callq 0x8210
jmp 0xa616
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa60a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa5fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa5f2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa5e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa5da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa5ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa3e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x478(%rbp), %rdi
callq 0x95e0
leaq -0x460(%rbp), %rdi
callq 0x8210
jmp 0xa5ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa426
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x508(%rbp), %rdi
callq 0x95e0
leaq -0x4f0(%rbp), %rdi
callq 0x8210
jmp 0xa5ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa469
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x598(%rbp), %rdi
callq 0x95e0
leaq -0x580(%rbp), %rdi
callq 0x8210
jmp 0xa5ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa4ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x628(%rbp), %rdi
callq 0x95e0
leaq -0x610(%rbp), %rdi
callq 0x8210
jmp 0xa5ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa4ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x6b8(%rbp), %rdi
callq 0x95e0
leaq -0x6a0(%rbp), %rdi
callq 0x8210
jmp 0xa5ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
jmp 0xa532
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xf8(%rbp)
movl %eax, -0xfc(%rbp)
leaq -0x748(%rbp), %rdi
callq 0x95e0
leaq -0x730(%rbp), %rdi
callq 0x8210
jmp 0xa5ce
movq 0xba8e(%rip), %rdi      # 0x15fd8
leaq 0x5dc8(%rip), %rsi      # 0x10319
callq 0x2160
movq %rax, -0x760(%rbp)
jmp 0xa55f
movq -0x760(%rbp), %rdi
movq 0xba5b(%rip), %rsi      # 0x15fc8
callq 0x2190
jmp 0xa574
leaq -0x3e8(%rbp), %rdi
callq 0x8210
leaq -0x370(%rbp), %rdi
callq 0x8210
leaq -0x2f8(%rbp), %rdi
callq 0x8210
leaq -0x280(%rbp), %rdi
callq 0x8210
leaq -0x208(%rbp), %rdi
callq 0x8210
leaq -0x190(%rbp), %rdi
callq 0x8210
leaq -0x78(%rbp), %rdi
callq 0x8210
addq $0x760, %rsp            # imm = 0x760
popq %rbp
retq
leaq -0x3e8(%rbp), %rdi
callq 0x8210
leaq -0x370(%rbp), %rdi
callq 0x8210
leaq -0x2f8(%rbp), %rdi
callq 0x8210
leaq -0x280(%rbp), %rdi
callq 0x8210
leaq -0x208(%rbp), %rdi
callq 0x8210
leaq -0x190(%rbp), %rdi
callq 0x8210
leaq -0x78(%rbp), %rdi
callq 0x8210
movq -0xf8(%rbp), %rdi
callq 0x2250
nopl (%rax,%rax)