Various patches and Delta implementations.
Cheap summaries in main.rs
This commit is contained in:
@@ -5,8 +5,8 @@ type Offence = Team;
|
||||
|
||||
#[derive(Debug, Deserialize, Clone, PartialEq)]
|
||||
pub enum Event {
|
||||
Play(Play),
|
||||
Kickoff(Offence),
|
||||
Play(Play),
|
||||
Turnover(Offence),
|
||||
Penalty(TerrainState),
|
||||
Score(ScorePoints),
|
||||
@@ -54,13 +54,13 @@ impl Event {
|
||||
let a = if let TerrainState::Yards(yrds) = preceeding.terrain? {
|
||||
yrds
|
||||
} else {
|
||||
unreachable!()
|
||||
0_u8
|
||||
};
|
||||
|
||||
let b = if let TerrainState::Yards(yrds) = following.terrain? {
|
||||
yrds
|
||||
} else {
|
||||
unreachable!()
|
||||
0_u8
|
||||
};
|
||||
|
||||
Some(a as i8 - b as i8)
|
||||
@@ -159,27 +159,100 @@ mod tests {
|
||||
});
|
||||
|
||||
assert!(10_i8 == kickoff.delta(&first_down).unwrap());
|
||||
assert!(0_i8 == first_down.delta(&second_down).unwrap());
|
||||
assert!(-3_i8 == second_down.delta(&third_down).unwrap());
|
||||
assert!(0_i8 == kickoff.delta(&second_down).unwrap());
|
||||
assert!(None == kickoff.delta(&penalty));
|
||||
assert!(None == kickoff.delta(&score));
|
||||
|
||||
assert!(10_i8 == first_down.delta(&kickoff).unwrap());
|
||||
assert!(10_i8 == first_down.delta(&first_down).unwrap());
|
||||
assert!(0_i8 == first_down.delta(&second_down).unwrap());
|
||||
assert!(None == first_down.delta(&turnover));
|
||||
assert!(None == first_down.delta(&penalty));
|
||||
assert!(None == first_down.delta(&score));
|
||||
assert!(10_i8 == first_down.delta(&goal_line).unwrap());
|
||||
assert!(10_i8 == first_down.delta(&inches).unwrap());
|
||||
assert!(None == first_down.delta(&noned_down));
|
||||
|
||||
assert!(10_i8 == second_down.delta(&kickoff).unwrap());
|
||||
assert!(10_i8 == second_down.delta(&first_down).unwrap());
|
||||
assert!(-3_i8 == second_down.delta(&third_down).unwrap());
|
||||
assert!(None == second_down.delta(&turnover));
|
||||
assert!(None == second_down.delta(&penalty));
|
||||
assert!(None == second_down.delta(&score));
|
||||
assert!(10_i8 == second_down.delta(&goal_line).unwrap());
|
||||
assert!(10_i8 == second_down.delta(&inches).unwrap());
|
||||
assert!(None == second_down.delta(&noned_down));
|
||||
|
||||
assert!(13_i8 == third_down.delta(&kickoff).unwrap());
|
||||
assert!(13_i8 == third_down.delta(&first_down).unwrap());
|
||||
assert!(8_i8 == third_down.delta(&fourth_down).unwrap());
|
||||
assert!(None == third_down.delta(&turnover));
|
||||
assert!(None == third_down.delta(&penalty));
|
||||
assert!(None == third_down.delta(&score));
|
||||
assert!(13_i8 == third_down.delta(&goal_line).unwrap());
|
||||
assert!(13_i8 == third_down.delta(&inches).unwrap());
|
||||
assert!(None == third_down.delta(&noned_down));
|
||||
|
||||
assert!(5_i8 == fourth_down.delta(&kickoff).unwrap());
|
||||
assert!(5_i8 == fourth_down.delta(&first_down).unwrap());
|
||||
assert!(None == fourth_down.delta(&turnover));
|
||||
assert!(None == kickoff.delta(&penalty));
|
||||
assert!(None == first_down.delta(&penalty));
|
||||
assert!(None == noned_down.delta(&kickoff));
|
||||
assert!(None == noned_down.delta(&turnover));
|
||||
assert!(None == kickoff.delta(&score));
|
||||
assert!(None == first_down.delta(&score));
|
||||
assert!(None == turnover.delta(&score));
|
||||
assert!(None == goal_line.delta(&first_down));
|
||||
assert!(None == inches.delta(&first_down));
|
||||
assert!(None == goal_line.delta(&inches));
|
||||
assert!(None == fourth_down.delta(&penalty));
|
||||
assert!(None == fourth_down.delta(&score));
|
||||
assert!(5_i8 == fourth_down.delta(&goal_line).unwrap());
|
||||
assert!(5_i8 == fourth_down.delta(&inches).unwrap());
|
||||
assert!(None == fourth_down.delta(&noned_down));
|
||||
|
||||
assert!(10_i8 == turnover.delta(&first_down).unwrap());
|
||||
assert!(0_i8 == turnover.delta(&second_down).unwrap());
|
||||
assert!(-3_i8 == turnover.delta(&third_down).unwrap());
|
||||
assert!(None == turnover.delta(&turnover));
|
||||
assert!(None == turnover.delta(&penalty));
|
||||
assert!(None == turnover.delta(&score));
|
||||
assert!(10_i8 == turnover.delta(&goal_line).unwrap());
|
||||
assert!(10_i8 == turnover.delta(&inches).unwrap());
|
||||
assert!(None == turnover.delta(&noned_down));
|
||||
|
||||
assert!(None == score.delta(&kickoff));
|
||||
assert!(None == score.delta(&first_down));
|
||||
assert!(None == score.delta(&second_down));
|
||||
assert!(None == score.delta(&third_down));
|
||||
assert!(None == score.delta(&fourth_down));
|
||||
assert!(None == score.delta(&turnover));
|
||||
assert!(None == score.delta(&penalty));
|
||||
assert!(None == score.delta(&goal_line));
|
||||
assert!(None == score.delta(&inches));
|
||||
assert!(None == score.delta(&score));
|
||||
|
||||
assert!(None == goal_line.delta(&kickoff));
|
||||
assert!(None == goal_line.delta(&first_down));
|
||||
assert!(-10_i8 == goal_line.delta(&second_down).unwrap());
|
||||
assert!(-13_i8 == goal_line.delta(&third_down).unwrap());
|
||||
assert!(-5_i8 == goal_line.delta(&fourth_down).unwrap());
|
||||
assert!(None == goal_line.delta(&turnover));
|
||||
assert!(None == goal_line.delta(&penalty));
|
||||
assert!(None == goal_line.delta(&goal_line));
|
||||
assert!(None == goal_line.delta(&inches));
|
||||
assert!(None == goal_line.delta(&score));
|
||||
|
||||
assert!(None == inches.delta(&kickoff));
|
||||
assert!(None == inches.delta(&first_down));
|
||||
assert!(-10_i8 == goal_line.delta(&second_down).unwrap());
|
||||
assert!(-13_i8 == goal_line.delta(&third_down).unwrap());
|
||||
assert!(-5_i8 == goal_line.delta(&fourth_down).unwrap());
|
||||
assert!(None == inches.delta(&turnover));
|
||||
assert!(None == inches.delta(&penalty));
|
||||
assert!(None == inches.delta(&goal_line));
|
||||
assert!(None == inches.delta(&inches));
|
||||
assert!(None == inches.delta(&score));
|
||||
|
||||
assert!(None == noned_down.delta(&kickoff));
|
||||
assert!(None == noned_down.delta(&first_down));
|
||||
assert!(None == noned_down.delta(&second_down));
|
||||
assert!(None == noned_down.delta(&third_down));
|
||||
assert!(None == noned_down.delta(&fourth_down));
|
||||
assert!(None == noned_down.delta(&turnover));
|
||||
assert!(None == noned_down.delta(&penalty));
|
||||
assert!(None == noned_down.delta(&goal_line));
|
||||
assert!(None == noned_down.delta(&inches));
|
||||
assert!(None == noned_down.delta(&score));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user