fix tests

This commit is contained in:
Henri Bourcereau 2024-01-27 18:53:48 +01:00
parent c9e7cef443
commit ad3635e275
2 changed files with 50 additions and 147 deletions

View file

@ -65,3 +65,29 @@ Encodage efficace : https://www.gnu.org/software/gnubg/manual/html_node/A-techni
* grande bredouille possible 1bit
Total : 77 + 1 + 2 + 6 + 20 = 105 bits = 17.666 * 6 -> 18 u32 (108 possible)
## TODO
### Epic : jeu simple
Store
- gestion des évènements
- déplacement de dames
- jet des dés
- déplacements physiques possibles
- déplacements autorisés par les règles (pourront être validés physiquement si jeu avec écoles)
- calcul des points automatique (pas d'écoles)
Server
-
Client
- client tui (ratatui)
- client desktop (bevy)
- client web
### Epic : jeu avec écoles
- déplacement de fiches points : validation physique
- évenements de déclaration d'école & contre école
### Epic : Bot

View file

@ -112,7 +112,7 @@ impl Board {
/// Check if a field is blocked for a player
pub fn blocked(&self, player: &Player, field: usize) -> Result<bool, Error> {
if field > 24 {
if field < 1 || 24 < field {
return Err(Error::FieldInvalid);
}
@ -159,188 +159,65 @@ mod tests {
}
#[test]
fn blocked_player0() -> Result<(), Error> {
fn blocked_outofrange() -> Result<(), Error> {
let board = Board::new();
assert!(board.blocked(
&Player {
name: "".into(),
color: Color::White,
holes: 0,
points: 0,
can_bredouille: true,
can_big_bredouille: true
},
0
)?);
let player = Player::new("".into(), Color::White);
assert!(board.blocked( &player, 0).is_err());
assert!(board.blocked( &player, 28).is_err());
Ok(())
}
#[test]
fn blocked_player1() -> Result<(), Error> {
fn blocked_otherplayer() -> Result<(), Error> {
let board = Board::new();
assert!(board.blocked(
&Player {
name: "".into(),
color: Color::Black,
holes: 0,
points: 0,
can_bredouille: true,
can_big_bredouille: true
},
0
)?);
let player = Player::new("".into(), Color::White);
assert!(board.blocked( &player, 24)?);
Ok(())
}
#[test]
fn blocked_player0_a() -> Result<(), Error> {
let mut board = Board::new();
board.set(
&Player {
name: "".into(),
color: Color::Black,
holes: 0,
points: 0,
can_bredouille: true,
can_big_bredouille: true
},
1,
2,
)?;
assert!(board.blocked(
&Player {
name: "".into(),
color: Color::White,
holes: 0,
points: 0,
can_bredouille: true,
can_big_bredouille: true
},
22
)?);
Ok(())
}
#[test]
fn blocked_player1_a() -> Result<(), Error> {
let mut board = Board::new();
board.set(
&Player {
name: "".into(),
color: Color::White,
holes: 0,
points: 0,
can_bredouille: true,
can_big_bredouille: true
},
1,
2,
)?;
assert!(board.blocked(
&Player {
name: "".into(),
color: Color::Black,
holes: 0,
points: 0,
can_bredouille: true,
can_big_bredouille: true
},
22
)?);
Ok(())
}
#[test]
fn blocked_invalid_field() {
fn blocked_notblocked() -> Result<(), Error> {
let board = Board::new();
assert!(board
.blocked(
&Player {
name: "".into(),
color: Color::White,
holes: 0,
points: 0,
can_bredouille: true,
can_big_bredouille: true
},
24
)
.is_err());
let player = Player::new("".into(), Color::White);
assert!(!board.blocked( &player, 6)?);
Ok(())
}
#[test]
fn set_field_blocked() {
let mut board = Board::new();
assert!(board
.set(
&Player {
name: "".into(),
color: Color::White,
holes: 0,
points: 0,
can_bredouille: true,
can_big_bredouille: true
},
0,
2
)
.is_err());
let player = Player::new("".into(), Color::White);
assert!(
board.set( &player, 0, 24)
.is_err()
);
}
#[test]
fn set_wrong_field1() {
let mut board = Board::new();
let player = Player::new("".into(), Color::White);
assert!(board
.set(
&Player {
name: "".into(),
color: Color::White,
holes: 0,
points: 0,
can_bredouille: true,
can_big_bredouille: true
},
50,
2
)
.set( &player, 50, 2)
.is_err());
}
#[test]
fn set_wrong_amount0() {
let mut board = Board::new();
let player = Player::new("".into(), Color::White);
assert!(board
.set(
&Player {
name: "".into(),
color: Color::White,
holes: 0,
points: 0,
can_bredouille: true,
can_big_bredouille: true
},
23,
-3
)
.set(&player , 23, -3)
.is_err());
}
#[test]
fn set_wrong_amount1() {
let mut board = Board::new();
let player = Player::new("".into(), Color::White);
assert!(board
.set(
&Player {
name: "".into(),
color: Color::Black,
holes: 0,
points: 0,
can_bredouille: true,
can_big_bredouille: true
},
23,
-3
)
.set( &player, 23, -3)
.is_err());
}
}