mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-15 02:12:29 -06:00
refactor: remove dead code, tune lints, remove useless tests
This commit is contained in:
@@ -14,7 +14,8 @@ use pacman::{
|
||||
},
|
||||
systems::{
|
||||
AudioEvent, AudioState, BufferedDirection, Collider, DebugState, DeltaTime, EntityType, Ghost, GhostCollider, GhostState,
|
||||
GlobalState, ItemCollider, MovementModifiers, PacmanCollider, PlayerControlled, Position, ScoreResource, Velocity,
|
||||
GlobalState, ItemCollider, MovementModifiers, PacmanCollider, PelletCount, PlayerControlled, Position, ScoreResource,
|
||||
Velocity,
|
||||
},
|
||||
texture::sprite::{AtlasMapper, AtlasTile, SpriteAtlas},
|
||||
};
|
||||
@@ -85,6 +86,7 @@ pub fn create_test_world() -> World {
|
||||
world.insert_resource(AudioState::default());
|
||||
world.insert_resource(GlobalState { exit: false });
|
||||
world.insert_resource(DebugState::default());
|
||||
world.insert_resource(PelletCount(0));
|
||||
world.insert_resource(DeltaTime {
|
||||
seconds: 1.0 / 60.0,
|
||||
ticks: 1,
|
||||
@@ -1,66 +0,0 @@
|
||||
use pacman::error::{GameError, GameResult, IntoGameError, OptionExt, ResultExt};
|
||||
use speculoos::prelude::*;
|
||||
use std::io;
|
||||
|
||||
#[test]
|
||||
fn test_into_game_error_trait() {
|
||||
let result: Result<i32, io::Error> = Err(io::Error::new(io::ErrorKind::Other, "test error"));
|
||||
let game_result: GameResult<i32> = result.into_game_error();
|
||||
|
||||
assert_that(&game_result.is_err()).is_true();
|
||||
if let Err(GameError::InvalidState(msg)) = game_result {
|
||||
assert_that(&msg.contains("test error")).is_true();
|
||||
} else {
|
||||
panic!("Expected InvalidState error");
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_into_game_error_trait_success() {
|
||||
let result: Result<i32, io::Error> = Ok(42);
|
||||
let game_result: GameResult<i32> = result.into_game_error();
|
||||
|
||||
assert_that(&game_result.unwrap()).is_equal_to(42);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_option_ext_some() {
|
||||
let option: Option<i32> = Some(42);
|
||||
let result: GameResult<i32> = option.ok_or_game_error(|| GameError::InvalidState("Not found".to_string()));
|
||||
|
||||
assert_that(&result.unwrap()).is_equal_to(42);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_option_ext_none() {
|
||||
let option: Option<i32> = None;
|
||||
let result: GameResult<i32> = option.ok_or_game_error(|| GameError::InvalidState("Not found".to_string()));
|
||||
|
||||
assert_that(&result.is_err()).is_true();
|
||||
if let Err(GameError::InvalidState(msg)) = result {
|
||||
assert_that(&msg).is_equal_to("Not found".to_string());
|
||||
} else {
|
||||
panic!("Expected InvalidState error");
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_result_ext_success() {
|
||||
let result: Result<i32, io::Error> = Ok(42);
|
||||
let game_result: GameResult<i32> = result.with_context(|_| GameError::InvalidState("Context".to_string()));
|
||||
|
||||
assert_that(&game_result.unwrap()).is_equal_to(42);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_result_ext_error() {
|
||||
let result: Result<i32, io::Error> = Err(io::Error::new(io::ErrorKind::Other, "original error"));
|
||||
let game_result: GameResult<i32> = result.with_context(|_| GameError::InvalidState("Context error".to_string()));
|
||||
|
||||
assert_that(&game_result.is_err()).is_true();
|
||||
if let Err(GameError::InvalidState(msg)) = game_result {
|
||||
assert_that(&msg).is_equal_to("Context error".to_string());
|
||||
} else {
|
||||
panic!("Expected InvalidState error");
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
use bevy_ecs::{entity::Entity, system::RunSystemOnce};
|
||||
use pacman::systems::{is_valid_item_collision, item_system, EntityType, GhostState, Position, ScoreResource};
|
||||
use pacman::systems::{item_system, EntityType, GhostState, Position, ScoreResource};
|
||||
use speculoos::prelude::*;
|
||||
|
||||
mod common;
|
||||
@@ -24,21 +24,6 @@ fn test_is_collectible_item() {
|
||||
assert_that(&EntityType::Ghost.is_collectible()).is_false();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_is_valid_item_collision() {
|
||||
// Player-item collisions should be valid
|
||||
assert_that(&is_valid_item_collision(EntityType::Player, EntityType::Pellet)).is_true();
|
||||
assert_that(&is_valid_item_collision(EntityType::Player, EntityType::PowerPellet)).is_true();
|
||||
assert_that(&is_valid_item_collision(EntityType::Pellet, EntityType::Player)).is_true();
|
||||
assert_that(&is_valid_item_collision(EntityType::PowerPellet, EntityType::Player)).is_true();
|
||||
|
||||
// Non-player-item collisions should be invalid
|
||||
assert_that(&is_valid_item_collision(EntityType::Player, EntityType::Ghost)).is_false();
|
||||
assert_that(&is_valid_item_collision(EntityType::Ghost, EntityType::Pellet)).is_false();
|
||||
assert_that(&is_valid_item_collision(EntityType::Pellet, EntityType::PowerPellet)).is_false();
|
||||
assert_that(&is_valid_item_collision(EntityType::Player, EntityType::Player)).is_false();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_item_system_pellet_collection() {
|
||||
let mut world = common::create_test_world();
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
use glam::U16Vec2;
|
||||
use pacman::texture::sprite::{AtlasMapper, AtlasTile, MapperFrame};
|
||||
use sdl2::pixels::Color;
|
||||
use speculoos::prelude::*;
|
||||
use std::collections::HashMap;
|
||||
|
||||
mod common;
|
||||
|
||||
#[test]
|
||||
fn test_atlas_mapper_frame_lookup() {
|
||||
let mut frames = HashMap::new();
|
||||
frames.insert(
|
||||
"test".to_string(),
|
||||
MapperFrame {
|
||||
pos: U16Vec2::new(10, 20),
|
||||
size: U16Vec2::new(32, 64),
|
||||
},
|
||||
);
|
||||
|
||||
let mapper = AtlasMapper { frames };
|
||||
|
||||
// Test direct frame lookup
|
||||
let frame = mapper.frames.get("test");
|
||||
assert_that(&frame.is_some()).is_true();
|
||||
let frame = frame.unwrap();
|
||||
assert_that(&frame.pos).is_equal_to(U16Vec2::new(10, 20));
|
||||
assert_that(&frame.size).is_equal_to(U16Vec2::new(32, 64));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_atlas_mapper_multiple_frames() {
|
||||
let mut frames = HashMap::new();
|
||||
frames.insert(
|
||||
"tile1".to_string(),
|
||||
MapperFrame {
|
||||
pos: U16Vec2::new(0, 0),
|
||||
size: U16Vec2::new(32, 32),
|
||||
},
|
||||
);
|
||||
frames.insert(
|
||||
"tile2".to_string(),
|
||||
MapperFrame {
|
||||
pos: U16Vec2::new(32, 0),
|
||||
size: U16Vec2::new(64, 64),
|
||||
},
|
||||
);
|
||||
|
||||
let mapper = AtlasMapper { frames };
|
||||
|
||||
assert_that(&mapper.frames.len()).is_equal_to(2);
|
||||
assert_that(&mapper.frames.contains_key("tile1")).is_true();
|
||||
assert_that(&mapper.frames.contains_key("tile2")).is_true();
|
||||
assert_that(&mapper.frames.contains_key("tile3")).is_false();
|
||||
assert_that(&mapper.frames.contains_key("nonexistent")).is_false();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_atlas_tile_new_and_with_color() {
|
||||
let pos = U16Vec2::new(10, 20);
|
||||
let size = U16Vec2::new(30, 40);
|
||||
let color = Color::RGB(100, 150, 200);
|
||||
|
||||
let tile = AtlasTile::new(pos, size, None);
|
||||
assert_that(&tile.pos).is_equal_to(pos);
|
||||
assert_that(&tile.size).is_equal_to(size);
|
||||
assert_that(&tile.color).is_equal_to(None);
|
||||
|
||||
let tile_with_color = tile.with_color(color);
|
||||
assert_that(&tile_with_color.color).is_equal_to(Some(color));
|
||||
}
|
||||
@@ -81,44 +81,20 @@ fn test_text_scale() -> Result<(), String> {
|
||||
let string = "ABCDEFG !-/\"";
|
||||
let base_width = (string.len() * 8) as u32;
|
||||
|
||||
let mut text_texture = TextTexture::new(0.5);
|
||||
|
||||
assert_that(&text_texture.scale()).is_equal_to(0.5);
|
||||
let text_texture = TextTexture::new(0.5);
|
||||
assert_that(&text_texture.text_height()).is_equal_to(4);
|
||||
assert_that(&text_texture.text_width("")).is_equal_to(0);
|
||||
assert_that(&text_texture.text_width(string)).is_equal_to(base_width / 2);
|
||||
|
||||
text_texture.set_scale(2.0);
|
||||
assert_that(&text_texture.scale()).is_equal_to(2.0);
|
||||
let text_texture = TextTexture::new(2.0);
|
||||
assert_that(&text_texture.text_height()).is_equal_to(16);
|
||||
assert_that(&text_texture.text_width(string)).is_equal_to(base_width * 2);
|
||||
assert_that(&text_texture.text_width("")).is_equal_to(0);
|
||||
|
||||
text_texture.set_scale(1.0);
|
||||
assert_that(&text_texture.scale()).is_equal_to(1.0);
|
||||
let text_texture = TextTexture::new(1.0);
|
||||
assert_that(&text_texture.text_height()).is_equal_to(8);
|
||||
assert_that(&text_texture.text_width(string)).is_equal_to(base_width);
|
||||
assert_that(&text_texture.text_width("")).is_equal_to(0);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_text_color() -> Result<(), String> {
|
||||
let mut text_texture = TextTexture::new(1.0);
|
||||
|
||||
// Test default color (should be None initially)
|
||||
assert_that(&text_texture.color()).is_equal_to(None);
|
||||
|
||||
// Test setting color
|
||||
let test_color = sdl2::pixels::Color::YELLOW;
|
||||
text_texture.set_color(test_color);
|
||||
assert_that(&text_texture.color()).is_equal_to(Some(test_color));
|
||||
|
||||
// Test changing color
|
||||
let new_color = sdl2::pixels::Color::RED;
|
||||
text_texture.set_color(new_color);
|
||||
assert_that(&text_texture.color()).is_equal_to(Some(new_color));
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user