// File: /workspace/github_cpp_makefile_star2_O2/jswaff[P]prophet3/test/utils__test.cpp
// Function: test_gs_draw_by_rep()
void test_gs_draw_by_rep() {
    reset_pos(&gpos);
    assert(get_game_status()!=DRAW_REP);

    apply_move(&gpos,to_move(PAWN,E2,E4),gundos);
    assert(get_game_status()!=DRAW_REP);

    apply_move(&gpos,to_move(KNIGHT,G8,F6),gundos);
    assert(get_game_status()!=DRAW_REP);

    apply_move(&gpos,to_move(KNIGHT,G1,F3),gundos);
    assert(get_game_status()!=DRAW_REP);

    apply_move(&gpos,to_move(KNIGHT,F6,G8),gundos);
    assert(get_game_status()!=DRAW_REP);

    apply_move(&gpos,to_move(KNIGHT,F3,G1),gundos);
    assert(get_game_status()!=DRAW_REP); // still 1 (first has ep square)

    apply_move(&gpos,to_move(KNIGHT,G8,F6),gundos);
    assert(get_game_status()!=DRAW_REP); // 2

    apply_move(&gpos,to_move(KNIGHT,G1,F3),gundos);
    assert(get_game_status()!=DRAW_REP); // 2

    apply_move(&gpos,to_move(KNIGHT,F6,G8),gundos);
    assert(get_game_status()!=DRAW_REP); // 2

    apply_move(&gpos,to_move(KNIGHT,F3,G1),gundos);
    assert(get_game_status()!=DRAW_REP); // 2

    apply_move(&gpos,to_move(KNIGHT,G8,F6),gundos);
    assert(get_game_status()==DRAW_REP); // 3

    apply_move(&gpos,to_move(PAWN,D2,D4),gundos);
    assert(get_game_status()!=DRAW_REP);
}

// Assembly:
pushq %rax
leaq 0xa58b0(%rip), %rdi     # 0xcb920
callq 0xa187
callq 0xdbb8
cmpl $0x5, %eax
je 0x262ab
pushq $0x1
popq %rdi
pushq $0x34
popq %rsi
pushq $0x24
popq %rdx
callq 0x7284
leaq 0xa5888(%rip), %rdi     # 0xcb920
leaq 0xa5a51(%rip), %rdx     # 0xcbaf0
movq %rax, %rsi
callq 0x2fa5
callq 0xdbb8
cmpl $0x5, %eax
je 0x262ca
pushq $0x2
popq %rdi
pushq $0x6
popq %rsi
pushq $0x15
popq %rdx
callq 0x7284
leaq 0xa5856(%rip), %rdi     # 0xcb920
leaq 0xa5a1f(%rip), %rdx     # 0xcbaf0
movq %rax, %rsi
callq 0x2fa5
callq 0xdbb8
cmpl $0x5, %eax
je 0x262e9
pushq $0x2
popq %rdi
pushq $0x3e
popq %rsi
pushq $0x2d
popq %rdx
callq 0x7284
leaq 0xa5824(%rip), %rdi     # 0xcb920
leaq 0xa59ed(%rip), %rdx     # 0xcbaf0
movq %rax, %rsi
callq 0x2fa5
callq 0xdbb8
cmpl $0x5, %eax
je 0x26308
pushq $0x2
popq %rdi
pushq $0x15
popq %rsi
pushq $0x6
popq %rdx
callq 0x7284
leaq 0xa57f2(%rip), %rdi     # 0xcb920
leaq 0xa59bb(%rip), %rdx     # 0xcbaf0
movq %rax, %rsi
callq 0x2fa5
callq 0xdbb8
cmpl $0x5, %eax
je 0x26327
pushq $0x2
popq %rdi
pushq $0x2d
popq %rsi
pushq $0x3e
popq %rdx
callq 0x7284
leaq 0xa57c0(%rip), %rdi     # 0xcb920
leaq 0xa5989(%rip), %rdx     # 0xcbaf0
movq %rax, %rsi
callq 0x2fa5
callq 0xdbb8
cmpl $0x5, %eax
je 0x26346
pushq $0x2
popq %rdi
pushq $0x6
popq %rsi
pushq $0x15
popq %rdx
callq 0x7284
leaq 0xa578e(%rip), %rdi     # 0xcb920
leaq 0xa5957(%rip), %rdx     # 0xcbaf0
movq %rax, %rsi
callq 0x2fa5
callq 0xdbb8
cmpl $0x5, %eax
je 0x26365
pushq $0x2
popq %rdi
pushq $0x3e
popq %rsi
pushq $0x2d
popq %rdx
callq 0x7284
leaq 0xa575c(%rip), %rdi     # 0xcb920
leaq 0xa5925(%rip), %rdx     # 0xcbaf0
movq %rax, %rsi
callq 0x2fa5
callq 0xdbb8
cmpl $0x5, %eax
je 0x26384
pushq $0x2
popq %rdi
pushq $0x15
popq %rsi
pushq $0x6
popq %rdx
callq 0x7284
leaq 0xa572a(%rip), %rdi     # 0xcb920
leaq 0xa58f3(%rip), %rdx     # 0xcbaf0
movq %rax, %rsi
callq 0x2fa5
callq 0xdbb8
cmpl $0x5, %eax
je 0x263a3
pushq $0x2
popq %rdi
pushq $0x2d
popq %rsi
pushq $0x3e
popq %rdx
callq 0x7284
leaq 0xa56f8(%rip), %rdi     # 0xcb920
leaq 0xa58c1(%rip), %rdx     # 0xcbaf0
movq %rax, %rsi
callq 0x2fa5
callq 0xdbb8
cmpl $0x5, %eax
je 0x263c2
pushq $0x2
popq %rdi
pushq $0x6
popq %rsi
pushq $0x15
popq %rdx
callq 0x7284
leaq 0xa56c6(%rip), %rdi     # 0xcb920
leaq 0xa588f(%rip), %rdx     # 0xcbaf0
movq %rax, %rsi
callq 0x2fa5
callq 0xdbb8
cmpl $0x5, %eax
jne 0x263e1
pushq $0x1
popq %rdi
pushq $0x33
popq %rsi
pushq $0x23
popq %rdx
callq 0x7284
leaq 0xa5694(%rip), %rdi     # 0xcb920
leaq 0xa585d(%rip), %rdx     # 0xcbaf0
movq %rax, %rsi
callq 0x2fa5
callq 0xdbb8
cmpl $0x5, %eax
je 0x26400
popq %rax
retq
leaq 0x106ac(%rip), %rdi     # 0x3695e
leaq 0xfe32(%rip), %rsi      # 0x360eb
leaq 0x106ba(%rip), %rcx     # 0x3697a
movl $0x11f, %edx            # imm = 0x11F
callq 0x20c0
leaq 0x1068d(%rip), %rdi     # 0x3695e
leaq 0xfe13(%rip), %rsi      # 0x360eb
leaq 0x1069b(%rip), %rcx     # 0x3697a
movl $0x122, %edx            # imm = 0x122
callq 0x20c0
leaq 0x1066e(%rip), %rdi     # 0x3695e
leaq 0xfdf4(%rip), %rsi      # 0x360eb
leaq 0x1067c(%rip), %rcx     # 0x3697a
movl $0x125, %edx            # imm = 0x125
callq 0x20c0
leaq 0x1064f(%rip), %rdi     # 0x3695e
leaq 0xfdd5(%rip), %rsi      # 0x360eb
leaq 0x1065d(%rip), %rcx     # 0x3697a
movl $0x128, %edx            # imm = 0x128
callq 0x20c0
leaq 0x10630(%rip), %rdi     # 0x3695e
leaq 0xfdb6(%rip), %rsi      # 0x360eb
leaq 0x1063e(%rip), %rcx     # 0x3697a
movl $0x12b, %edx            # imm = 0x12B
callq 0x20c0
leaq 0x10611(%rip), %rdi     # 0x3695e
leaq 0xfd97(%rip), %rsi      # 0x360eb
leaq 0x1061f(%rip), %rcx     # 0x3697a
movl $0x12e, %edx            # imm = 0x12E
callq 0x20c0
leaq 0x105f2(%rip), %rdi     # 0x3695e
leaq 0xfd78(%rip), %rsi      # 0x360eb
leaq 0x10600(%rip), %rcx     # 0x3697a
movl $0x131, %edx            # imm = 0x131
callq 0x20c0
leaq 0x105d3(%rip), %rdi     # 0x3695e
leaq 0xfd59(%rip), %rsi      # 0x360eb
leaq 0x105e1(%rip), %rcx     # 0x3697a
movl $0x134, %edx            # imm = 0x134
callq 0x20c0
leaq 0x105b4(%rip), %rdi     # 0x3695e
leaq 0xfd3a(%rip), %rsi      # 0x360eb
leaq 0x105c2(%rip), %rcx     # 0x3697a
movl $0x137, %edx            # imm = 0x137
callq 0x20c0
leaq 0x10595(%rip), %rdi     # 0x3695e
leaq 0xfd1b(%rip), %rsi      # 0x360eb
leaq 0x105a3(%rip), %rcx     # 0x3697a
movl $0x13a, %edx            # imm = 0x13A
callq 0x20c0
leaq 0x105ad(%rip), %rdi     # 0x36995
leaq 0xfcfc(%rip), %rsi      # 0x360eb
leaq 0x10584(%rip), %rcx     # 0x3697a
movl $0x13d, %edx            # imm = 0x13D
callq 0x20c0
leaq 0x10557(%rip), %rdi     # 0x3695e
leaq 0xfcdd(%rip), %rsi      # 0x360eb
leaq 0x10565(%rip), %rcx     # 0x3697a
movl $0x140, %edx            # imm = 0x140
callq 0x20c0