From fa183cbe9143d002abd5d012c25cb5d78c14e946 Mon Sep 17 00:00:00 2001 From: Cutieguwu Date: Sat, 3 May 2025 12:04:21 -0400 Subject: [PATCH] impl Default for Game --- gamelog/src/file.rs | 6 ++---- gamelog/src/game.rs | 38 ++++++++++++++++++++------------------ gamelog/src/period.rs | 3 ++- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/gamelog/src/file.rs b/gamelog/src/file.rs index 8701c84..a76a63f 100644 --- a/gamelog/src/file.rs +++ b/gamelog/src/file.rs @@ -183,8 +183,6 @@ mod tests { #[test] fn most_frequent_action() { let a = LogFile(vec![Game { - version: crate::MIN_VER, - flags: vec![], events: vec![ Event::Kickoff(Team::Nebraska), Event::Play(Play { @@ -213,6 +211,7 @@ mod tests { }), Event::Kickoff(Team::ArizonaState), ], + ..Default::default() }]); assert!(a.most_frequent_action(Team::Nebraska) == Action::Mesh) @@ -221,8 +220,6 @@ mod tests { #[test] fn least_frequent_action() { let a = LogFile(vec![Game { - version: crate::MIN_VER, - flags: vec![], events: vec![ Event::Kickoff(Team::Nebraska), Event::Play(Play { @@ -251,6 +248,7 @@ mod tests { }), Event::Kickoff(Team::ArizonaState), ], + ..Default::default() }]); assert!(a.least_frequent_action(Team::Nebraska) == Action::SlotOut) diff --git a/gamelog/src/game.rs b/gamelog/src/game.rs index 0b2598b..310f914 100644 --- a/gamelog/src/game.rs +++ b/gamelog/src/game.rs @@ -1,4 +1,4 @@ -use crate::{Event, Play, Quarter, Team, error}; +use crate::{Event, MIN_VER, Play, Quarter, Team, error}; use serde::Deserialize; use strum::IntoEnumIterator; @@ -242,6 +242,16 @@ impl Game { } } +impl Default for Game { + fn default() -> Self { + Game { + version: MIN_VER, + flags: vec![], + events: vec![Event::Quarter(Quarter::default())], + } + } +} + #[derive(Debug)] pub struct TeamEvents(pub Vec); @@ -333,8 +343,6 @@ mod tests { #[test] fn avg_plays_per_quarter() { let a = Game { - version: crate::MIN_VER, - flags: vec![], events: vec![ Event::Quarter(Quarter::First), Event::Kickoff(Team::Nebraska), @@ -350,17 +358,17 @@ mod tests { Event::Play(Play::default()), Event::Turnover(Team::ArizonaState), ], + ..Default::default() }; let b = Game { - version: crate::MIN_VER, - flags: vec![], events: vec![ Event::Quarter(Quarter::First), Event::Turnover(Team::Nebraska), Event::Play(Play::default()), Event::Turnover(Team::ArizonaState), ], + ..Default::default() }; dbg!(a.avg_plays_per_quarter(Team::Nebraska)); @@ -374,39 +382,36 @@ mod tests { #[allow(deprecated)] fn teams() { let a = Game { - version: crate::MIN_VER, - flags: vec![], events: vec![ Event::Kickoff(Team::Nebraska), Event::Turnover(Team::ArizonaState), Event::Kickoff(Team::Nebraska), ], + ..Default::default() }; let b = Game { - version: crate::MIN_VER, - flags: vec![], events: vec![ Event::Kickoff(Team::Nebraska), Event::Turnover(Team::ArizonaState), Event::Kickoff(Team::BoiseState), ], + ..Default::default() }; let c = Game { - version: crate::MIN_VER, - flags: vec![Flags::IgnoreTeam(Team::Nebraska)], events: vec![ Event::Kickoff(Team::Nebraska), Event::Turnover(Team::ArizonaState), Event::Kickoff(Team::Nebraska), ], + ..Default::default() }; let d = Game { - version: crate::MIN_VER, flags: vec![Flags::IgnoreTeam(Team::Nebraska)], events: vec![Event::Kickoff(Team::Nebraska)], + ..Default::default() }; assert!(a.teams().unwrap() == vec![Team::Nebraska, Team::ArizonaState]); @@ -418,8 +423,6 @@ mod tests { #[test] fn deltas() { let game = Game { - version: crate::MIN_VER, - flags: vec![], events: vec![ Event::Kickoff(Team::Nebraska), Event::Play(Play { @@ -461,6 +464,7 @@ mod tests { }), Event::Turnover(Team::ArizonaState), ], + ..Default::default() }; assert!(game.deltas(Team::Nebraska) == vec![10_i8, -3_i8, 5_i8, -2_i8, 12_i8]); @@ -471,8 +475,6 @@ mod tests { #[allow(deprecated)] fn team_events() { let a = Game { - version: crate::MIN_VER, - flags: vec![], events: vec![ Event::Kickoff(Team::Nebraska), Event::Play(Play::default()), @@ -483,6 +485,7 @@ mod tests { Event::Score(ScorePoints::Touchdown), Event::Kickoff(Team::SouthCarolina), ], + ..Default::default() }; assert!( @@ -502,8 +505,6 @@ mod tests { #[test] fn team_plays() { let game = Game { - version: crate::MIN_VER, - flags: vec![], events: vec![ Event::Kickoff(Team::Nebraska), Event::Play(Play::default()), @@ -518,6 +519,7 @@ mod tests { Event::Turnover(Team::Nebraska), Event::Play(Play::default()), ], + ..Default::default() }; assert!( diff --git a/gamelog/src/period.rs b/gamelog/src/period.rs index 90335ec..255f985 100644 --- a/gamelog/src/period.rs +++ b/gamelog/src/period.rs @@ -1,8 +1,9 @@ use serde::Deserialize; use strum::EnumIter; -#[derive(Debug, Deserialize, Clone, PartialEq, EnumIter)] +#[derive(Debug, Deserialize, Clone, PartialEq, EnumIter, Default)] pub enum Quarter { + #[default] First, Second, Third,