usiagent 0.7.0

USIAgent is a framework for Shogi AI development that supports the usi protocol.
Documentation
use usiagent::rule::*;
use usiagent::shogi::{Banmen, Teban};
use usiagent::shogi::KomaKind::{Blank, SOu, GOu};

#[test]
fn test_sente_ou_square() {
    let positions:Vec<(Square,Square)> = vec![(2,0),(2,8),(3,0),(3,8),(6,0),(6,8),(7,0),(7,8)];

    let blank_banmen = Banmen([[Blank; 9]; 9]);

    for &(x,y) in positions.iter() {
        let mut banmen = blank_banmen.clone();

        banmen.0[y as usize][x as usize] = SOu;

        assert_eq!(Rule::ou_square(Teban::Sente,&State::new(banmen)),x * 9 + y);
    }
}
#[test]
fn test_gote_ou_square() {
    let positions:Vec<(Square,Square)> = vec![(2,0),(2,8),(3,0),(3,8),(6,0),(6,8),(7,0),(7,8)];

    let blank_banmen = Banmen([[Blank; 9]; 9]);

    for &(x,y) in positions.iter() {
        let mut banmen = blank_banmen.clone();

        banmen.0[y as usize][x as usize] = GOu;

        assert_eq!(Rule::ou_square(Teban::Gote,&State::new(banmen)),x * 9 + y);
    }
}