summaryrefslogtreecommitdiff
path: root/2019-worms/tests/strategy.rs
blob: 70880997d40db6c97ffdbd6b96d3bd8f957e5697 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use std::path::Path;

use steam_powered_wyrm::game;
use steam_powered_wyrm::json;
use steam_powered_wyrm::strategy::{choose_move_with_normalized_perf, ScoreConfig};

#[test]
fn strategy_is_implemented_symetrically() {
    let state = game::GameBoard::new(
        json::read_state_from_json_file(&Path::new(&format!("./tests/example-state.json")))
            .unwrap(),
    );
    let depth = 100;

    let config = ScoreConfig::default();
    let flipped_state = {
        let mut flipped_state = state.clone();
        flipped_state.players[0] = state.players[1].clone();
        flipped_state.players[1] = state.players[0].clone();
        flipped_state
    };

    let position_one_move = choose_move_with_normalized_perf(&state, &config, 0, depth);
    let position_two_move = choose_move_with_normalized_perf(&flipped_state, &config, 1, depth);

    assert_eq!(position_one_move, position_two_move);
}