rchess 2.3.0

A Chess Library Written In Rust
Documentation
use rchess::{ChessBoard, MoveGen};

#[test]
fn p1() {
    let fen = ChessBoard::from_fen("rnbq1bnr/p1ppkppp/p7/4p3/4P3/7N/PPPP1PPP/RNBQ1RK1 b - - 0 1")
        .unwrap();
    let moves =
        ChessBoard::from_str_moves(&["e2e4", "e7e5", "f1a6", "b7a6", "g1h3", "e8e7", "e1g1"])
            .unwrap();
    assert_eq!(fen, moves);
    assert_eq!(fen.hash(), moves.hash());
}

#[test]
fn p2() {
    let fen = ChessBoard::from_fen("7N/8/8/8/8/8/k6K/8 b - -").unwrap();
    let mut moves = ChessBoard::from_fen("8/7P/8/8/8/8/k6K/8 w - -").unwrap();
    moves.make_move(MoveGen::create_str_move(&moves, "h7h8n").unwrap());

    assert_eq!(fen, moves);
    assert_eq!(fen.hash(), moves.hash());
}

#[test]
fn p3() {
    let fen = ChessBoard::from_fen("7Q/8/8/8/8/8/k6K/8 b - -").unwrap();
    let mut moves = ChessBoard::from_fen("7r/6P1/8/8/8/8/k6K/8 w - -").unwrap();
    moves.make_move(MoveGen::create_str_move(&moves, "g7h8q").unwrap());

    assert_eq!(fen, moves);
    assert_eq!(fen.hash(), moves.hash());
}