// File: 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 %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
leaq -0x1c8(%rbp), %rdi
leaq 0x216fb(%rip), %rsi     # 0x3daa4
callq 0xf3e0
leaq -0x1c8(%rbp), %rdi
movl $0x24, %esi
movl $0x1, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c3cc
jmp 0x1c3ce
jmp 0x1c3ed
leaq 0x216fc(%rip), %rdi     # 0x3dad1
leaq 0x21104(%rip), %rsi     # 0x3d4e0
movl $0x78, %edx
leaq 0x21702(%rip), %rcx     # 0x3daea
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x24, %esi
movl $0x1, %edx
callq 0x7d60
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c40b
jmp 0x1c40d
jmp 0x1c42c
leaq 0x216f0(%rip), %rdi     # 0x3db04
leaq 0x210c5(%rip), %rsi     # 0x3d4e0
movl $0x79, %edx
leaq 0x216c3(%rip), %rcx     # 0x3daea
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x24, %esi
movl $0x1, %edx
callq 0x7e60
testb $0x1, %al
jne 0x1c448
jmp 0x1c44a
jmp 0x1c469
leaq 0x216cd(%rip), %rdi     # 0x3db1e
leaq 0x21088(%rip), %rsi     # 0x3d4e0
movl $0x7a, %edx
leaq 0x21686(%rip), %rcx     # 0x3daea
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c484
jmp 0x1c486
jmp 0x1c4a5
leaq 0x216ab(%rip), %rdi     # 0x3db38
leaq 0x2104c(%rip), %rsi     # 0x3d4e0
movl $0x7c, %edx
leaq 0x2164a(%rip), %rcx     # 0x3daea
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x7d60
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c4c0
jmp 0x1c4c2
jmp 0x1c4e1
leaq 0x21689(%rip), %rdi     # 0x3db52
leaq 0x21010(%rip), %rsi     # 0x3d4e0
movl $0x7d, %edx
leaq 0x2160e(%rip), %rcx     # 0x3daea
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x8, %esi
xorl %edx, %edx
callq 0x7e60
testb $0x1, %al
jne 0x1c4fa
jmp 0x1c4fc
jmp 0x1c51b
leaq 0x2166a(%rip), %rdi     # 0x3db6d
leaq 0x20fd6(%rip), %rsi     # 0x3d4e0
movl $0x7e, %edx
leaq 0x215d4(%rip), %rcx     # 0x3daea
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0xa, %esi
xorl %edx, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c536
jmp 0x1c538
jmp 0x1c557
leaq 0x21649(%rip), %rdi     # 0x3db88
leaq 0x20f9a(%rip), %rsi     # 0x3d4e0
movl $0x80, %edx
leaq 0x21598(%rip), %rcx     # 0x3daea
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0xa, %esi
xorl %edx, %edx
callq 0x7d60
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c572
jmp 0x1c574
jmp 0x1c593
leaq 0x21627(%rip), %rdi     # 0x3dba2
leaq 0x20f5e(%rip), %rsi     # 0x3d4e0
movl $0x81, %edx
leaq 0x2155c(%rip), %rcx     # 0x3daea
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0xa, %esi
xorl %edx, %edx
callq 0x7e60
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c5ae
jmp 0x1c5b0
jmp 0x1c5cf
leaq 0x21606(%rip), %rdi     # 0x3dbbd
leaq 0x20f22(%rip), %rsi     # 0x3d4e0
movl $0x82, %edx
leaq 0x21520(%rip), %rcx     # 0x3daea
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x26, %esi
movl $0x1, %edx
callq 0x7c70
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c5ed
jmp 0x1c5ef
jmp 0x1c60e
leaq 0x215e3(%rip), %rdi     # 0x3dbd9
leaq 0x20ee3(%rip), %rsi     # 0x3d4e0
movl $0x84, %edx
leaq 0x214e1(%rip), %rcx     # 0x3daea
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x26, %esi
movl $0x1, %edx
callq 0x7d60
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c62c
jmp 0x1c62e
jmp 0x1c64d
leaq 0x215be(%rip), %rdi     # 0x3dbf3
leaq 0x20ea4(%rip), %rsi     # 0x3d4e0
movl $0x85, %edx
leaq 0x214a2(%rip), %rcx     # 0x3daea
callq 0x20c0
leaq -0x1c8(%rbp), %rdi
movl $0x26, %esi
movl $0x1, %edx
callq 0x7e60
xorb $-0x1, %al
testb $0x1, %al
jne 0x1c66b
jmp 0x1c66d
jmp 0x1c68c
leaq 0x2159a(%rip), %rdi     # 0x3dc0e
leaq 0x20e65(%rip), %rsi     # 0x3d4e0
movl $0x86, %edx
leaq 0x21463(%rip), %rcx     # 0x3daea
callq 0x20c0
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
nopw %cs:(%rax,%rax)