diff --git a/.idea/wotbreplay-parser.iml b/.idea/wotbreplay-parser.iml
index 227e58a..79ac256 100644
--- a/.idea/wotbreplay-parser.iml
+++ b/.idea/wotbreplay-parser.iml
@@ -4,6 +4,7 @@
+
diff --git a/Cargo.toml b/Cargo.toml
index b834ca1..c6e02c9 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -28,3 +28,8 @@ zip = { version = "0.6.3", default-features = false, features = ["deflate"] }
[dev-dependencies]
anyhow = "1.0.66"
+criterion = "0.4.0"
+
+[[bench]]
+name = "data"
+harness = false
diff --git a/README.md b/README.md
index fe12c24..7535927 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ use wotbreplay_parser::models::battle_results::TeamNumber;
use wotbreplay_parser::replay::Replay;
fn main() -> Result<()> {
- let battle_results = Replay::open(File::open("replays/player_results.wotbreplay")?)?.read_battle_results()?;
+ let battle_results = Replay::open(File::open("replays/20221203_player_results.wotbreplay")?)?.read_battle_results()?;
assert_eq!(battle_results.timestamp, 1670083956);
assert_eq!(battle_results.players.len(), 14);
diff --git a/benches/data.rs b/benches/data.rs
new file mode 100644
index 0000000..92ed08d
--- /dev/null
+++ b/benches/data.rs
@@ -0,0 +1,20 @@
+use std::fs::File;
+
+use criterion::{criterion_group, criterion_main, Criterion};
+use wotbreplay_parser::replay::Replay;
+
+fn bench_read_data(criterion: &mut Criterion) {
+ let mut group = criterion.benchmark_group("read_data");
+ for path in [
+ "replays/20230429_0126__helaas_pindakaas.wotbreplay",
+ "replays/20230503_0027__helaas_pindakaas.wotbreplay",
+ "replays/20230429_1682194799_malinovka.wotbreplay",
+ ] {
+ let mut replay = Replay::open(File::open(path).unwrap()).unwrap();
+ group.bench_function(path, |bencher| bencher.iter(|| replay.read_data().unwrap()));
+ }
+ group.finish();
+}
+
+criterion_group!(benches, bench_read_data);
+criterion_main!(benches);
diff --git a/replays/player_results.wotbreplay b/replays/20221203_player_results.wotbreplay
similarity index 100%
rename from replays/player_results.wotbreplay
rename to replays/20221203_player_results.wotbreplay
diff --git a/replays/victory_points.wotbreplay b/replays/20221203_victory_points.wotbreplay
similarity index 100%
rename from replays/victory_points.wotbreplay
rename to replays/20221203_victory_points.wotbreplay
diff --git a/replays/20230429_0126__helaas_pindakaas_A140_ASTRON_REX_105_16114615898101270.wotbreplay b/replays/20230429_0126__helaas_pindakaas.wotbreplay
similarity index 100%
rename from replays/20230429_0126__helaas_pindakaas_A140_ASTRON_REX_105_16114615898101270.wotbreplay
rename to replays/20230429_0126__helaas_pindakaas.wotbreplay
diff --git a/replays/1682194799_malinovka_d48e8c0e45e2e2fcaf75cb139492575e.wotbreplay b/replays/20230429_1682194799_malinovka.wotbreplay
similarity index 100%
rename from replays/1682194799_malinovka_d48e8c0e45e2e2fcaf75cb139492575e.wotbreplay
rename to replays/20230429_1682194799_malinovka.wotbreplay
diff --git a/replays/20230503_0027__helaas_pindakaas_A140_ASTRON_REX_105_2319058483532631656.wotbreplay b/replays/20230503_0027__helaas_pindakaas.wotbreplay
similarity index 100%
rename from replays/20230503_0027__helaas_pindakaas_A140_ASTRON_REX_105_2319058483532631656.wotbreplay
rename to replays/20230503_0027__helaas_pindakaas.wotbreplay
diff --git a/replays/training_room.wotbreplay b/replays/20230503_training_room.wotbreplay
similarity index 100%
rename from replays/training_room.wotbreplay
rename to replays/20230503_training_room.wotbreplay
diff --git a/tests/battle_results.rs b/tests/battle_results.rs
index afdb3a7..984a5c2 100644
--- a/tests/battle_results.rs
+++ b/tests/battle_results.rs
@@ -6,8 +6,9 @@ use wotbreplay_parser::replay::Replay;
#[test]
fn player_results_ok() -> Result<()> {
- let battle_results_dat = Replay::open(File::open("replays/player_results.wotbreplay")?)?
- .read_battle_results_dat()?;
+ let battle_results_dat =
+ Replay::open(File::open("replays/20221203_player_results.wotbreplay")?)?
+ .read_battle_results_dat()?;
assert_eq!(battle_results_dat.arena_unique_id, 1661909200500084);
let battle_results: BattleResults = battle_results_dat.try_into()?;
@@ -80,8 +81,8 @@ fn player_results_ok() -> Result<()> {
#[test]
fn player_info_ok() -> Result<()> {
- let battle_results =
- Replay::open(File::open("replays/player_results.wotbreplay")?)?.read_battle_results()?;
+ let battle_results = Replay::open(File::open("replays/20221203_player_results.wotbreplay")?)?
+ .read_battle_results()?;
assert_eq!(battle_results.players[1].info.clan_tag.as_deref(), Some("AN0NY"));
@@ -103,8 +104,8 @@ fn player_info_ok() -> Result<()> {
#[test]
fn victory_points_ok() -> Result<()> {
- let battle_results =
- Replay::open(File::open("replays/victory_points.wotbreplay")?)?.read_battle_results()?;
+ let battle_results = Replay::open(File::open("replays/20221203_victory_points.wotbreplay")?)?
+ .read_battle_results()?;
assert_eq!(battle_results.player_results[1].info.victory_points_seized, 40);
assert_eq!(battle_results.player_results[1].info.victory_points_earned, 40);
@@ -120,8 +121,9 @@ fn victory_points_ok() -> Result<()> {
#[test]
fn draw_ok() -> Result<()> {
- let battle_results = Replay::open(File::open("replays/20230503_0027__helaas_pindakaas_A140_ASTRON_REX_105_2319058483532631656.wotbreplay")?)?
- .read_battle_results()?;
+ let battle_results =
+ Replay::open(File::open("replays/20230503_0027__helaas_pindakaas.wotbreplay")?)?
+ .read_battle_results()?;
assert_eq!(battle_results.winner_team_number, None);
Ok(())
}
diff --git a/tests/data.rs b/tests/data.rs
index b9be8a2..62aa9f6 100644
--- a/tests/data.rs
+++ b/tests/data.rs
@@ -7,9 +7,8 @@ use wotbreplay_parser::replay::Replay;
#[test]
fn parse_ok() -> Result<()> {
- let mut replay = Replay::open(File::open(
- "replays/20230429_0126__helaas_pindakaas_A140_ASTRON_REX_105_16114615898101270.wotbreplay",
- )?)?;
+ let mut replay =
+ Replay::open(File::open("replays/20230429_0126__helaas_pindakaas.wotbreplay")?)?;
let data = replay.read_data()?;
assert_eq!(data.client_version, "9.8.5_apple");
@@ -20,9 +19,8 @@ fn parse_ok() -> Result<()> {
#[test]
fn base_player_create_ok() -> Result<()> {
- let mut replay = Replay::open(File::open(
- "replays/20230429_0126__helaas_pindakaas_A140_ASTRON_REX_105_16114615898101270.wotbreplay",
- )?)?;
+ let mut replay =
+ Replay::open(File::open("replays/20230429_0126__helaas_pindakaas.wotbreplay")?)?;
let data = replay.read_data()?;
let (author_nickname, arena_unique_id, arena_type_id, arguments) = data
@@ -68,9 +66,8 @@ fn base_player_create_ok() -> Result<()> {
#[test]
fn update_arena_ok() -> Result<()> {
- let mut replay = Replay::open(File::open(
- "replays/20230429_0126__helaas_pindakaas_A140_ASTRON_REX_105_16114615898101270.wotbreplay",
- )?)?;
+ let mut replay =
+ Replay::open(File::open("replays/20230429_0126__helaas_pindakaas.wotbreplay")?)?;
let data = replay.read_data()?;
let players = data
@@ -97,7 +94,7 @@ fn update_arena_ok() -> Result<()> {
#[test]
fn training_room_ok() -> Result<()> {
- let mut replay = Replay::open(File::open("replays/training_room.wotbreplay")?)?;
+ let mut replay = Replay::open(File::open("replays/20230503_training_room.wotbreplay")?)?;
replay.read_data()?;
Ok(())
}
diff --git a/tests/meta.rs b/tests/meta.rs
index 097ea33..92b8667 100644
--- a/tests/meta.rs
+++ b/tests/meta.rs
@@ -7,7 +7,8 @@ use wotbreplay_parser::replay::Replay;
#[test]
fn meta_ok() -> Result<()> {
- let meta = Replay::open(File::open("replays/player_results.wotbreplay")?)?.read_meta()?;
+ let meta =
+ Replay::open(File::open("replays/20221203_player_results.wotbreplay")?)?.read_meta()?;
assert_eq!(meta.player_name, "zeekrab");
assert_eq!(meta.arena_unique_id, "1661909200500084");