// File: /workspace/github_cpp_makefile_star2_O1/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 0x1cf80(%rip), %rsi     # 0x312ce
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0xaa74
movq %rbx, %rdi
movl $0x24, %esi
movl $0x1, %edx
callq 0x5bee
testb %al, %al
jne 0x144a0
leaq 0x8(%rsp), %rdi
movl $0x24, %esi
movl $0x1, %edx
callq 0x5c48
testb %al, %al
jne 0x144bf
leaq 0x8(%rsp), %rdi
movl $0x24, %esi
movl $0x1, %edx
callq 0x5ccb
testb %al, %al
je 0x144de
leaq 0x8(%rsp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x5bee
testb %al, %al
jne 0x144fd
leaq 0x8(%rsp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x5c48
testb %al, %al
jne 0x1451c
leaq 0x8(%rsp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x5ccb
testb %al, %al
je 0x1453b
leaq 0x8(%rsp), %rdi
movl $0xa, %esi
xorl %edx, %edx
callq 0x5bee
testb %al, %al
jne 0x1455a
leaq 0x8(%rsp), %rdi
movl $0xa, %esi
xorl %edx, %edx
callq 0x5c48
testb %al, %al
jne 0x14579
leaq 0x8(%rsp), %rdi
movl $0xa, %esi
xorl %edx, %edx
callq 0x5ccb
testb %al, %al
jne 0x14598
leaq 0x8(%rsp), %rdi
movl $0x26, %esi
movl $0x1, %edx
callq 0x5bee
testb %al, %al
jne 0x145b7
leaq 0x8(%rsp), %rdi
movl $0x26, %esi
movl $0x1, %edx
callq 0x5c48
testb %al, %al
jne 0x145d6
leaq 0x8(%rsp), %rdi
movl $0x26, %esi
movl $0x1, %edx
callq 0x5ccb
testb %al, %al
jne 0x145f5
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbx
retq
leaq 0x1ce54(%rip), %rdi     # 0x312fb
leaq 0x1c85c(%rip), %rsi     # 0x30d0a
leaq 0x1ce5f(%rip), %rcx     # 0x31314
movl $0x78, %edx
callq 0x20d0
leaq 0x1ce68(%rip), %rdi     # 0x3132e
leaq 0x1c83d(%rip), %rsi     # 0x30d0a
leaq 0x1ce40(%rip), %rcx     # 0x31314
movl $0x79, %edx
callq 0x20d0
leaq 0x1ce63(%rip), %rdi     # 0x31348
leaq 0x1c81e(%rip), %rsi     # 0x30d0a
leaq 0x1ce21(%rip), %rcx     # 0x31314
movl $0x7a, %edx
callq 0x20d0
leaq 0x1ce5e(%rip), %rdi     # 0x31362
leaq 0x1c7ff(%rip), %rsi     # 0x30d0a
leaq 0x1ce02(%rip), %rcx     # 0x31314
movl $0x7c, %edx
callq 0x20d0
leaq 0x1ce59(%rip), %rdi     # 0x3137c
leaq 0x1c7e0(%rip), %rsi     # 0x30d0a
leaq 0x1cde3(%rip), %rcx     # 0x31314
movl $0x7d, %edx
callq 0x20d0
leaq 0x1ce55(%rip), %rdi     # 0x31397
leaq 0x1c7c1(%rip), %rsi     # 0x30d0a
leaq 0x1cdc4(%rip), %rcx     # 0x31314
movl $0x7e, %edx
callq 0x20d0
leaq 0x1ce51(%rip), %rdi     # 0x313b2
leaq 0x1c7a2(%rip), %rsi     # 0x30d0a
leaq 0x1cda5(%rip), %rcx     # 0x31314
movl $0x80, %edx
callq 0x20d0
leaq 0x1ce4c(%rip), %rdi     # 0x313cc
leaq 0x1c783(%rip), %rsi     # 0x30d0a
leaq 0x1cd86(%rip), %rcx     # 0x31314
movl $0x81, %edx
callq 0x20d0
leaq 0x1ce48(%rip), %rdi     # 0x313e7
leaq 0x1c764(%rip), %rsi     # 0x30d0a
leaq 0x1cd67(%rip), %rcx     # 0x31314
movl $0x82, %edx
callq 0x20d0
leaq 0x1ce45(%rip), %rdi     # 0x31403
leaq 0x1c745(%rip), %rsi     # 0x30d0a
leaq 0x1cd48(%rip), %rcx     # 0x31314
movl $0x84, %edx
callq 0x20d0
leaq 0x1ce40(%rip), %rdi     # 0x3141d
leaq 0x1c726(%rip), %rsi     # 0x30d0a
leaq 0x1cd29(%rip), %rcx     # 0x31314
movl $0x85, %edx
callq 0x20d0
leaq 0x1ce3c(%rip), %rdi     # 0x31438
leaq 0x1c707(%rip), %rsi     # 0x30d0a
leaq 0x1cd0a(%rip), %rcx     # 0x31314
movl $0x86, %edx
callq 0x20d0