mirror of
https://codeberg.org/demostf/parser.git
synced 2026-06-03 10:14:06 +02:00
update tests
This commit is contained in:
parent
4d97759eca
commit
43c9021ba2
5 changed files with 5300 additions and 31 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
use crate::demo::data::DemoTick;
|
use crate::demo::data::DemoTick;
|
||||||
use crate::demo::gameevent_gen::PlayerDeathEvent;
|
use crate::demo::gameevent_gen::PlayerDeathEvent;
|
||||||
|
use crate::demo::gamevent::GameEvent;
|
||||||
use crate::demo::message::packetentities::EntityId;
|
use crate::demo::message::packetentities::EntityId;
|
||||||
use crate::demo::packet::datatable::{ClassId, ServerClass, ServerClassName};
|
use crate::demo::packet::datatable::{ClassId, ServerClass, ServerClassName};
|
||||||
use crate::demo::parser::analyser::{Class, Team, UserId, UserInfo};
|
use crate::demo::parser::analyser::{Class, Team, UserId, UserInfo};
|
||||||
|
|
@ -420,6 +421,7 @@ pub struct GameState {
|
||||||
pub server_classes: Vec<ServerClass>,
|
pub server_classes: Vec<ServerClass>,
|
||||||
pub interval_per_tick: f32,
|
pub interval_per_tick: f32,
|
||||||
pub outer_map: HashMap<Handle, EntityId>,
|
pub outer_map: HashMap<Handle, EntityId>,
|
||||||
|
pub events: Vec<(DemoTick, GameEvent)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl GameState {
|
impl GameState {
|
||||||
|
|
|
||||||
|
|
@ -53,21 +53,26 @@ impl MessageHandler for GameStateAnalyser {
|
||||||
Message::ServerInfo(message) => {
|
Message::ServerInfo(message) => {
|
||||||
self.state.interval_per_tick = message.interval_per_tick
|
self.state.interval_per_tick = message.interval_per_tick
|
||||||
}
|
}
|
||||||
Message::GameEvent(GameEventMessage { event, .. }) => match event {
|
Message::GameEvent(GameEventMessage { event, .. }) => {
|
||||||
|
self.state.events.push((self.tick, event.clone()));
|
||||||
|
match event {
|
||||||
GameEvent::PlayerDeath(death) => {
|
GameEvent::PlayerDeath(death) => {
|
||||||
self.state.kills.push(Kill::new(self.tick, death.as_ref()))
|
self.state.kills.push(Kill::new(self.tick, death.as_ref()))
|
||||||
}
|
}
|
||||||
GameEvent::RoundStart(_) => {
|
GameEvent::RoundStart(_) => {
|
||||||
self.state.buildings.clear();
|
self.state.buildings.clear();
|
||||||
|
self.state.projectiles.clear();
|
||||||
}
|
}
|
||||||
GameEvent::TeamPlayRoundStart(_) => {
|
GameEvent::TeamPlayRoundStart(_) => {
|
||||||
self.state.buildings.clear();
|
self.state.buildings.clear();
|
||||||
|
self.state.projectiles.clear();
|
||||||
}
|
}
|
||||||
GameEvent::ObjectDestroyed(ObjectDestroyedEvent { index, .. }) => {
|
GameEvent::ObjectDestroyed(ObjectDestroyedEvent { index, .. }) => {
|
||||||
self.state.remove_building((*index as u32).into());
|
self.state.remove_building((*index as u32).into());
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
},
|
}
|
||||||
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -30,9 +30,12 @@ fn snapshot_test(input_file: &str) {
|
||||||
fn game_state_test(input_file: &str) {
|
fn game_state_test(input_file: &str) {
|
||||||
let file = fs::read(format!("test_data/{}", input_file)).expect("Unable to read file");
|
let file = fs::read(format!("test_data/{}", input_file)).expect("Unable to read file");
|
||||||
let demo = Demo::new(&file);
|
let demo = Demo::new(&file);
|
||||||
let (_, state) = DemoParser::new_with_analyser(demo.get_stream(), GameStateAnalyser::new())
|
let (_, mut state) = DemoParser::new_with_analyser(demo.get_stream(), GameStateAnalyser::new())
|
||||||
.parse()
|
.parse()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
state.events.clear();
|
||||||
|
|
||||||
|
insta::with_settings!({sort_maps => true}, {
|
||||||
insta::assert_json_snapshot!(input_file, state);
|
insta::assert_json_snapshot!(input_file, state);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue