mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-16 02:12:28 -06:00
test: add tons of tests for all easy submodules
This commit is contained in:
@@ -35,3 +35,67 @@ impl From<Direction> for IVec2 {
|
||||
}
|
||||
|
||||
pub const DIRECTIONS: [Direction; 4] = [Direction::Up, Direction::Down, Direction::Left, Direction::Right];
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_direction_opposite() {
|
||||
assert_eq!(Direction::Up.opposite(), Direction::Down);
|
||||
assert_eq!(Direction::Down.opposite(), Direction::Up);
|
||||
assert_eq!(Direction::Left.opposite(), Direction::Right);
|
||||
assert_eq!(Direction::Right.opposite(), Direction::Left);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_direction_as_ivec2() {
|
||||
assert_eq!(Direction::Up.as_ivec2(), -IVec2::Y);
|
||||
assert_eq!(Direction::Down.as_ivec2(), IVec2::Y);
|
||||
assert_eq!(Direction::Left.as_ivec2(), -IVec2::X);
|
||||
assert_eq!(Direction::Right.as_ivec2(), IVec2::X);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_direction_from_ivec2() {
|
||||
assert_eq!(IVec2::from(Direction::Up), -IVec2::Y);
|
||||
assert_eq!(IVec2::from(Direction::Down), IVec2::Y);
|
||||
assert_eq!(IVec2::from(Direction::Left), -IVec2::X);
|
||||
assert_eq!(IVec2::from(Direction::Right), IVec2::X);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_directions_constant() {
|
||||
assert_eq!(DIRECTIONS.len(), 4);
|
||||
assert!(DIRECTIONS.contains(&Direction::Up));
|
||||
assert!(DIRECTIONS.contains(&Direction::Down));
|
||||
assert!(DIRECTIONS.contains(&Direction::Left));
|
||||
assert!(DIRECTIONS.contains(&Direction::Right));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_direction_equality() {
|
||||
assert_eq!(Direction::Up, Direction::Up);
|
||||
assert_ne!(Direction::Up, Direction::Down);
|
||||
assert_ne!(Direction::Left, Direction::Right);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_direction_clone() {
|
||||
let dir = Direction::Up;
|
||||
let cloned = dir;
|
||||
assert_eq!(dir, cloned);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_direction_hash() {
|
||||
use std::collections::HashMap;
|
||||
let mut map = HashMap::new();
|
||||
map.insert(Direction::Up, "up");
|
||||
map.insert(Direction::Down, "down");
|
||||
|
||||
assert_eq!(map.get(&Direction::Up), Some(&"up"));
|
||||
assert_eq!(map.get(&Direction::Down), Some(&"down"));
|
||||
assert_eq!(map.get(&Direction::Left), None);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,8 +36,14 @@ impl Pacman {
|
||||
|
||||
let stopped_tiles = vec![SpriteAtlas::get_tile(atlas, &format!("{moving_prefix}_b.png")).unwrap()];
|
||||
|
||||
textures.insert(direction, AnimatedTexture::new(moving_tiles, 0.08));
|
||||
stopped_textures.insert(direction, AnimatedTexture::new(stopped_tiles, 0.1));
|
||||
textures.insert(
|
||||
direction,
|
||||
AnimatedTexture::new(moving_tiles, 0.08).expect("Invalid frame duration"),
|
||||
);
|
||||
stopped_textures.insert(
|
||||
direction,
|
||||
AnimatedTexture::new(stopped_tiles, 0.1).expect("Invalid frame duration"),
|
||||
);
|
||||
}
|
||||
|
||||
Self {
|
||||
|
||||
Reference in New Issue
Block a user