// File: /workspace/github_cpp_makefile_star2_O2/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 0x1c25c(%rip), %rsi     # 0x2f2fe
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0xa1b8
pushq $0x24
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rdi
callq 0x580e
testb %al, %al
jne 0x131d0
leaq 0x8(%rsp), %rdi
pushq $0x24
popq %rsi
pushq $0x1
popq %rdx
callq 0x5866
testb %al, %al
jne 0x131e9
leaq 0x8(%rsp), %rdi
pushq $0x24
popq %rsi
pushq $0x1
popq %rdx
callq 0x58e2
testb %al, %al
je 0x13202
leaq 0x8(%rsp), %rdi
pushq $0x8
popq %rsi
xorl %edx, %edx
callq 0x580e
testb %al, %al
jne 0x1321b
leaq 0x8(%rsp), %rdi
pushq $0x8
popq %rsi
xorl %edx, %edx
callq 0x5866
testb %al, %al
jne 0x13234
leaq 0x8(%rsp), %rdi
pushq $0x8
popq %rsi
xorl %edx, %edx
callq 0x58e2
testb %al, %al
je 0x1324d
leaq 0x8(%rsp), %rdi
pushq $0xa
popq %rsi
xorl %edx, %edx
callq 0x580e
testb %al, %al
jne 0x1326a
leaq 0x8(%rsp), %rdi
pushq $0xa
popq %rsi
xorl %edx, %edx
callq 0x5866
testb %al, %al
jne 0x13289
leaq 0x8(%rsp), %rdi
pushq $0xa
popq %rsi
xorl %edx, %edx
callq 0x58e2
testb %al, %al
jne 0x132a8
leaq 0x8(%rsp), %rdi
pushq $0x26
popq %rsi
pushq $0x1
popq %rdx
callq 0x580e
testb %al, %al
jne 0x132c7
leaq 0x8(%rsp), %rdi
pushq $0x26
popq %rsi
pushq $0x1
popq %rdx
callq 0x5866
testb %al, %al
jne 0x132e6
leaq 0x8(%rsp), %rdi
pushq $0x26
popq %rsi
pushq $0x1
popq %rdx
callq 0x58e2
testb %al, %al
jne 0x13305
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbx
retq
leaq 0x1c154(%rip), %rdi     # 0x2f32b
leaq 0x1bb5c(%rip), %rsi     # 0x2ed3a
leaq 0x1c15f(%rip), %rcx     # 0x2f344
pushq $0x78
jmp 0x13264
leaq 0x1c16e(%rip), %rdi     # 0x2f35e
leaq 0x1bb43(%rip), %rsi     # 0x2ed3a
leaq 0x1c146(%rip), %rcx     # 0x2f344
pushq $0x79
jmp 0x13264
leaq 0x1c16f(%rip), %rdi     # 0x2f378
leaq 0x1bb2a(%rip), %rsi     # 0x2ed3a
leaq 0x1c12d(%rip), %rcx     # 0x2f344
pushq $0x7a
jmp 0x13264
leaq 0x1c170(%rip), %rdi     # 0x2f392
leaq 0x1bb11(%rip), %rsi     # 0x2ed3a
leaq 0x1c114(%rip), %rcx     # 0x2f344
pushq $0x7c
jmp 0x13264
leaq 0x1c171(%rip), %rdi     # 0x2f3ac
leaq 0x1baf8(%rip), %rsi     # 0x2ed3a
leaq 0x1c0fb(%rip), %rcx     # 0x2f344
pushq $0x7d
jmp 0x13264
leaq 0x1c173(%rip), %rdi     # 0x2f3c7
leaq 0x1badf(%rip), %rsi     # 0x2ed3a
leaq 0x1c0e2(%rip), %rcx     # 0x2f344
pushq $0x7e
popq %rdx
callq 0x20c0
leaq 0x1c171(%rip), %rdi     # 0x2f3e2
leaq 0x1bac2(%rip), %rsi     # 0x2ed3a
leaq 0x1c0c5(%rip), %rcx     # 0x2f344
movl $0x80, %edx
callq 0x20c0
leaq 0x1c16c(%rip), %rdi     # 0x2f3fc
leaq 0x1baa3(%rip), %rsi     # 0x2ed3a
leaq 0x1c0a6(%rip), %rcx     # 0x2f344
movl $0x81, %edx
callq 0x20c0
leaq 0x1c168(%rip), %rdi     # 0x2f417
leaq 0x1ba84(%rip), %rsi     # 0x2ed3a
leaq 0x1c087(%rip), %rcx     # 0x2f344
movl $0x82, %edx
callq 0x20c0
leaq 0x1c165(%rip), %rdi     # 0x2f433
leaq 0x1ba65(%rip), %rsi     # 0x2ed3a
leaq 0x1c068(%rip), %rcx     # 0x2f344
movl $0x84, %edx
callq 0x20c0
leaq 0x1c160(%rip), %rdi     # 0x2f44d
leaq 0x1ba46(%rip), %rsi     # 0x2ed3a
leaq 0x1c049(%rip), %rcx     # 0x2f344
movl $0x85, %edx
callq 0x20c0
leaq 0x1c15c(%rip), %rdi     # 0x2f468
leaq 0x1ba27(%rip), %rsi     # 0x2ed3a
leaq 0x1c02a(%rip), %rcx     # 0x2f344
movl $0x86, %edx
callq 0x20c0