// File: /workspace/github_cpp_makefile_star2_O1/jswaff[P]prophet3/test/movegen__test.cpp
// Function: test_gen_queen_noncaptures()
void test_gen_queen_noncaptures() {
    position pos;
    set_pos(&pos,"8/8/3bk3/8/8/2K3Q1/8/8 w - - 0 1");

    move moves[20];
    move *mp = gen_queen_moves(moves,&pos,G3,false,true);

    assert((mp - moves) == 17);
    assert(is_in_move_list(to_move(QUEEN,G3,G4),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,G5),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,G6),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,G7),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,G8),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,H4),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,H3),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,H2),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,G2),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,G1),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,F2),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,E1),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,F3),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,E3),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,D3),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,F4),moves,mp));
    assert(is_in_move_list(to_move(QUEEN,G3,E5),moves,mp));
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x268, %rsp            # imm = 0x268
leaq 0x179e3(%rip), %rsi     # 0x3366a
leaq 0xa0(%rsp), %rbx
movq %rbx, %rdi
callq 0xaa74
movq %rsp, %r14
movq %r14, %rdi
movq %rbx, %rsi
movl $0x2e, %edx
xorl %ecx, %ecx
movl $0x1, %r8d
callq 0x88a3
movq %rax, %rbx
subq %r14, %rax
cmpq $0x88, %rax
jne 0x1bf99
movl $0x5, %edi
movl $0x2e, %esi
movl $0x26, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1bfb8
movl $0x5, %edi
movl $0x2e, %esi
movl $0x1e, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1bfd7
movl $0x5, %edi
movl $0x2e, %esi
movl $0x16, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1bff6
movl $0x5, %edi
movl $0x2e, %esi
movl $0xe, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c015
movl $0x5, %edi
movl $0x2e, %esi
movl $0x6, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c034
movl $0x5, %edi
movl $0x2e, %esi
movl $0x27, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c053
movl $0x5, %edi
movl $0x2e, %esi
movl $0x2f, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c072
movl $0x5, %edi
movl $0x2e, %esi
movl $0x37, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c091
movl $0x5, %edi
movl $0x2e, %esi
movl $0x36, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c0b0
movl $0x5, %edi
movl $0x2e, %esi
movl $0x3e, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c0cf
movl $0x5, %edi
movl $0x2e, %esi
movl $0x35, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c0ee
movl $0x5, %edi
movl $0x2e, %esi
movl $0x3c, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c10d
movl $0x5, %edi
movl $0x2e, %esi
movl $0x2d, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c12c
movl $0x5, %edi
movl $0x2e, %esi
movl $0x2c, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c14b
movl $0x5, %edi
movl $0x2e, %esi
movl $0x2b, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c16a
movl $0x5, %edi
movl $0x2e, %esi
movl $0x25, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c189
movl $0x5, %edi
movl $0x2e, %esi
movl $0x1c, %edx
callq 0x76b8
movq %rsp, %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0xe727
testb %al, %al
je 0x1c1a8
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r14
retq
leaq 0x17a7e(%rip), %rdi     # 0x33a1e
leaq 0x16d27(%rip), %rsi     # 0x32cce
leaq 0x17a83(%rip), %rcx     # 0x33a31
movl $0xeb, %edx
callq 0x20d0
leaq 0x176e8(%rip), %rdi     # 0x336a7
leaq 0x16d08(%rip), %rsi     # 0x32cce
leaq 0x17a64(%rip), %rcx     # 0x33a31
movl $0xec, %edx
callq 0x20d0
leaq 0x176f8(%rip), %rdi     # 0x336d6
leaq 0x16ce9(%rip), %rsi     # 0x32cce
leaq 0x17a45(%rip), %rcx     # 0x33a31
movl $0xed, %edx
callq 0x20d0
leaq 0x17708(%rip), %rdi     # 0x33705
leaq 0x16cca(%rip), %rsi     # 0x32cce
leaq 0x17a26(%rip), %rcx     # 0x33a31
movl $0xee, %edx
callq 0x20d0
leaq 0x17718(%rip), %rdi     # 0x33734
leaq 0x16cab(%rip), %rsi     # 0x32cce
leaq 0x17a07(%rip), %rcx     # 0x33a31
movl $0xef, %edx
callq 0x20d0
leaq 0x17728(%rip), %rdi     # 0x33763
leaq 0x16c8c(%rip), %rsi     # 0x32cce
leaq 0x179e8(%rip), %rcx     # 0x33a31
movl $0xf0, %edx
callq 0x20d0
leaq 0x17738(%rip), %rdi     # 0x33792
leaq 0x16c6d(%rip), %rsi     # 0x32cce
leaq 0x179c9(%rip), %rcx     # 0x33a31
movl $0xf1, %edx
callq 0x20d0
leaq 0x17748(%rip), %rdi     # 0x337c1
leaq 0x16c4e(%rip), %rsi     # 0x32cce
leaq 0x179aa(%rip), %rcx     # 0x33a31
movl $0xf2, %edx
callq 0x20d0
leaq 0x17758(%rip), %rdi     # 0x337f0
leaq 0x16c2f(%rip), %rsi     # 0x32cce
leaq 0x1798b(%rip), %rcx     # 0x33a31
movl $0xf3, %edx
callq 0x20d0
leaq 0x17768(%rip), %rdi     # 0x3381f
leaq 0x16c10(%rip), %rsi     # 0x32cce
leaq 0x1796c(%rip), %rcx     # 0x33a31
movl $0xf4, %edx
callq 0x20d0
leaq 0x17778(%rip), %rdi     # 0x3384e
leaq 0x16bf1(%rip), %rsi     # 0x32cce
leaq 0x1794d(%rip), %rcx     # 0x33a31
movl $0xf5, %edx
callq 0x20d0
leaq 0x17788(%rip), %rdi     # 0x3387d
leaq 0x16bd2(%rip), %rsi     # 0x32cce
leaq 0x1792e(%rip), %rcx     # 0x33a31
movl $0xf6, %edx
callq 0x20d0
leaq 0x17798(%rip), %rdi     # 0x338ac
leaq 0x16bb3(%rip), %rsi     # 0x32cce
leaq 0x1790f(%rip), %rcx     # 0x33a31
movl $0xf7, %edx
callq 0x20d0
leaq 0x177a8(%rip), %rdi     # 0x338db
leaq 0x16b94(%rip), %rsi     # 0x32cce
leaq 0x178f0(%rip), %rcx     # 0x33a31
movl $0xf8, %edx
callq 0x20d0
leaq 0x177b8(%rip), %rdi     # 0x3390a
leaq 0x16b75(%rip), %rsi     # 0x32cce
leaq 0x178d1(%rip), %rcx     # 0x33a31
movl $0xf9, %edx
callq 0x20d0
leaq 0x177c8(%rip), %rdi     # 0x33939
leaq 0x16b56(%rip), %rsi     # 0x32cce
leaq 0x178b2(%rip), %rcx     # 0x33a31
movl $0xfa, %edx
callq 0x20d0
leaq 0x177d8(%rip), %rdi     # 0x33968
leaq 0x16b37(%rip), %rsi     # 0x32cce
leaq 0x17893(%rip), %rcx     # 0x33a31
movl $0xfb, %edx
callq 0x20d0
leaq 0x177e8(%rip), %rdi     # 0x33997
leaq 0x16b18(%rip), %rsi     # 0x32cce
leaq 0x17874(%rip), %rcx     # 0x33a31
movl $0xfc, %edx
callq 0x20d0