// File: /workspace/github_cpp_makefile_star2_O3/jswaff[P]prophet3/test/evalp__test.cpp
// Function: test_isolated_pawn()
void test_isolated_pawn() {
    position pos;
    set_pos(&pos,"k7/p1p3p1/3p3p/1P5P/1PP1P1P1/8/8/K7 w - - 0 ");

    // white's pawn on the E file and black's pawn on the A file are isolated
    assert(!is_passed(&pos,E4,true));
    assert(!is_doubled(&pos,E4,true));
    assert(is_isolated(&pos,E4,true));

    assert(!is_passed(&pos,A7,false));
    assert(!is_doubled(&pos,A7,false));
    assert(is_isolated(&pos,A7,false));

    assert(!is_passed(&pos,C7,false));
    assert(!is_doubled(&pos,C7,false));
    assert(!is_isolated(&pos,C7,false));

    assert(!is_passed(&pos,G4,WHITE));
    assert(!is_doubled(&pos,G4,WHITE));
    assert(!is_isolated(&pos,G4,WHITE));
}

// Assembly:
pushq %rbx
subq $0x1d0, %rsp            # imm = 0x1D0
leaq 0x1d0b4(%rip), %rsi     # 0x3134e
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0xaa82
movq %rbx, %rdi
movl $0x24, %esi
movl $0x1, %edx
callq 0x5c9e
testb %al, %al
jne 0x143ec
leaq 0x8(%rsp), %rdi
movl $0x24, %esi
movl $0x1, %edx
callq 0x5cf8
testb %al, %al
jne 0x1440b
leaq 0x8(%rsp), %rdi
movl $0x24, %esi
movl $0x1, %edx
callq 0x5d76
testb %al, %al
je 0x1442a
leaq 0x8(%rsp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x5c9e
testb %al, %al
jne 0x14449
leaq 0x8(%rsp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x5cf8
testb %al, %al
jne 0x14468
leaq 0x8(%rsp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x5d76
testb %al, %al
je 0x14487
leaq 0x8(%rsp), %rdi
movl $0xa, %esi
xorl %edx, %edx
callq 0x5c9e
testb %al, %al
jne 0x144a6
leaq 0x8(%rsp), %rdi
movl $0xa, %esi
xorl %edx, %edx
callq 0x5cf8
testb %al, %al
jne 0x144c5
leaq 0x8(%rsp), %rdi
movl $0xa, %esi
xorl %edx, %edx
callq 0x5d76
testb %al, %al
jne 0x144e4
leaq 0x8(%rsp), %rdi
movl $0x26, %esi
movl $0x1, %edx
callq 0x5c9e
testb %al, %al
jne 0x14503
leaq 0x8(%rsp), %rdi
movl $0x26, %esi
movl $0x1, %edx
callq 0x5cf8
testb %al, %al
jne 0x14522
leaq 0x8(%rsp), %rdi
movl $0x26, %esi
movl $0x1, %edx
callq 0x5d76
testb %al, %al
jne 0x14541
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbx
retq
leaq 0x1cf88(%rip), %rdi     # 0x3137b
leaq 0x1c990(%rip), %rsi     # 0x30d8a
leaq 0x1cf93(%rip), %rcx     # 0x31394
movl $0x78, %edx
callq 0x20d0
leaq 0x1cf9c(%rip), %rdi     # 0x313ae
leaq 0x1c971(%rip), %rsi     # 0x30d8a
leaq 0x1cf74(%rip), %rcx     # 0x31394
movl $0x79, %edx
callq 0x20d0
leaq 0x1cf97(%rip), %rdi     # 0x313c8
leaq 0x1c952(%rip), %rsi     # 0x30d8a
leaq 0x1cf55(%rip), %rcx     # 0x31394
movl $0x7a, %edx
callq 0x20d0
leaq 0x1cf92(%rip), %rdi     # 0x313e2
leaq 0x1c933(%rip), %rsi     # 0x30d8a
leaq 0x1cf36(%rip), %rcx     # 0x31394
movl $0x7c, %edx
callq 0x20d0
leaq 0x1cf8d(%rip), %rdi     # 0x313fc
leaq 0x1c914(%rip), %rsi     # 0x30d8a
leaq 0x1cf17(%rip), %rcx     # 0x31394
movl $0x7d, %edx
callq 0x20d0
leaq 0x1cf89(%rip), %rdi     # 0x31417
leaq 0x1c8f5(%rip), %rsi     # 0x30d8a
leaq 0x1cef8(%rip), %rcx     # 0x31394
movl $0x7e, %edx
callq 0x20d0
leaq 0x1cf85(%rip), %rdi     # 0x31432
leaq 0x1c8d6(%rip), %rsi     # 0x30d8a
leaq 0x1ced9(%rip), %rcx     # 0x31394
movl $0x80, %edx
callq 0x20d0
leaq 0x1cf80(%rip), %rdi     # 0x3144c
leaq 0x1c8b7(%rip), %rsi     # 0x30d8a
leaq 0x1ceba(%rip), %rcx     # 0x31394
movl $0x81, %edx
callq 0x20d0
leaq 0x1cf7c(%rip), %rdi     # 0x31467
leaq 0x1c898(%rip), %rsi     # 0x30d8a
leaq 0x1ce9b(%rip), %rcx     # 0x31394
movl $0x82, %edx
callq 0x20d0
leaq 0x1cf79(%rip), %rdi     # 0x31483
leaq 0x1c879(%rip), %rsi     # 0x30d8a
leaq 0x1ce7c(%rip), %rcx     # 0x31394
movl $0x84, %edx
callq 0x20d0
leaq 0x1cf74(%rip), %rdi     # 0x3149d
leaq 0x1c85a(%rip), %rsi     # 0x30d8a
leaq 0x1ce5d(%rip), %rcx     # 0x31394
movl $0x85, %edx
callq 0x20d0
leaq 0x1cf70(%rip), %rdi     # 0x314b8
leaq 0x1c83b(%rip), %rsi     # 0x30d8a
leaq 0x1ce3e(%rip), %rcx     # 0x31394
movl $0x86, %edx
callq 0x20d0