✅ Add the benchmark

This commit is contained in:
eigenein committed 2023-05-08 22:43:28 +02:00
1 parent 0f437c39de
commit 2d2c85c18a
13 files changed
+46 -20

No files matched your search

+1
View File
@@ -4,6 +4,7 @@
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/benches" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" /> <excludeFolder url="file://$MODULE_DIR$/target" />
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
+5
View File
@@ -28,3 +28,8 @@ zip = { version = "0.6.3", default-features = false, features = ["deflate"] }
[dev-dependencies] [dev-dependencies]
anyhow = "1.0.66" anyhow = "1.0.66"
criterion = "0.4.0"
[[bench]]
name = "data"
harness = false
+1 -1
View File
@@ -18,7 +18,7 @@ use wotbreplay_parser::models::battle_results::TeamNumber;
use wotbreplay_parser::replay::Replay; use wotbreplay_parser::replay::Replay;
fn main() -> Result<()> { 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.timestamp, 1670083956);
assert_eq!(battle_results.players.len(), 14); assert_eq!(battle_results.players.len(), 14);
+20
View File
@@ -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);
File renamed without changes.
File renamed without changes.
File renamed without changes.
+10 -8
View File
@@ -6,8 +6,9 @@ use wotbreplay_parser::replay::Replay;
#[test] #[test]
fn player_results_ok() -> Result<()> { fn player_results_ok() -> Result<()> {
let battle_results_dat = Replay::open(File::open("replays/player_results.wotbreplay")?)? let battle_results_dat =
.read_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); assert_eq!(battle_results_dat.arena_unique_id, 1661909200500084);
let battle_results: BattleResults = battle_results_dat.try_into()?; let battle_results: BattleResults = battle_results_dat.try_into()?;
@@ -80,8 +81,8 @@ fn player_results_ok() -> Result<()> {
#[test] #[test]
fn player_info_ok() -> Result<()> { fn player_info_ok() -> Result<()> {
let battle_results = let battle_results = Replay::open(File::open("replays/20221203_player_results.wotbreplay")?)?
Replay::open(File::open("replays/player_results.wotbreplay")?)?.read_battle_results()?; .read_battle_results()?;
assert_eq!(battle_results.players[1].info.clan_tag.as_deref(), Some("AN0NY")); assert_eq!(battle_results.players[1].info.clan_tag.as_deref(), Some("AN0NY"));
@@ -103,8 +104,8 @@ fn player_info_ok() -> Result<()> {
#[test] #[test]
fn victory_points_ok() -> Result<()> { fn victory_points_ok() -> Result<()> {
let battle_results = let battle_results = Replay::open(File::open("replays/20221203_victory_points.wotbreplay")?)?
Replay::open(File::open("replays/victory_points.wotbreplay")?)?.read_battle_results()?; .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_seized, 40);
assert_eq!(battle_results.player_results[1].info.victory_points_earned, 40); assert_eq!(battle_results.player_results[1].info.victory_points_earned, 40);
@@ -120,8 +121,9 @@ fn victory_points_ok() -> Result<()> {
#[test] #[test]
fn draw_ok() -> Result<()> { fn draw_ok() -> Result<()> {
let battle_results = Replay::open(File::open("replays/20230503_0027__helaas_pindakaas_A140_ASTRON_REX_105_2319058483532631656.wotbreplay")?)? let battle_results =
.read_battle_results()?; Replay::open(File::open("replays/20230503_0027__helaas_pindakaas.wotbreplay")?)?
.read_battle_results()?;
assert_eq!(battle_results.winner_team_number, None); assert_eq!(battle_results.winner_team_number, None);
Ok(()) Ok(())
} }
+7 -10
View File
@@ -7,9 +7,8 @@ use wotbreplay_parser::replay::Replay;
#[test] #[test]
fn parse_ok() -> Result<()> { fn parse_ok() -> Result<()> {
let mut replay = Replay::open(File::open( let mut replay =
"replays/20230429_0126__helaas_pindakaas_A140_ASTRON_REX_105_16114615898101270.wotbreplay", Replay::open(File::open("replays/20230429_0126__helaas_pindakaas.wotbreplay")?)?;
)?)?;
let data = replay.read_data()?; let data = replay.read_data()?;
assert_eq!(data.client_version, "9.8.5_apple"); assert_eq!(data.client_version, "9.8.5_apple");
@@ -20,9 +19,8 @@ fn parse_ok() -> Result<()> {
#[test] #[test]
fn base_player_create_ok() -> Result<()> { fn base_player_create_ok() -> Result<()> {
let mut replay = Replay::open(File::open( let mut replay =
"replays/20230429_0126__helaas_pindakaas_A140_ASTRON_REX_105_16114615898101270.wotbreplay", Replay::open(File::open("replays/20230429_0126__helaas_pindakaas.wotbreplay")?)?;
)?)?;
let data = replay.read_data()?; let data = replay.read_data()?;
let (author_nickname, arena_unique_id, arena_type_id, arguments) = data let (author_nickname, arena_unique_id, arena_type_id, arguments) = data
@@ -68,9 +66,8 @@ fn base_player_create_ok() -> Result<()> {
#[test] #[test]
fn update_arena_ok() -> Result<()> { fn update_arena_ok() -> Result<()> {
let mut replay = Replay::open(File::open( let mut replay =
"replays/20230429_0126__helaas_pindakaas_A140_ASTRON_REX_105_16114615898101270.wotbreplay", Replay::open(File::open("replays/20230429_0126__helaas_pindakaas.wotbreplay")?)?;
)?)?;
let data = replay.read_data()?; let data = replay.read_data()?;
let players = data let players = data
@@ -97,7 +94,7 @@ fn update_arena_ok() -> Result<()> {
#[test] #[test]
fn training_room_ok() -> Result<()> { 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()?; replay.read_data()?;
Ok(()) Ok(())
} }
+2 -1
View File
@@ -7,7 +7,8 @@ use wotbreplay_parser::replay::Replay;
#[test] #[test]
fn meta_ok() -> Result<()> { 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.player_name, "zeekrab");
assert_eq!(meta.arena_unique_id, "1661909200500084"); assert_eq!(meta.arena_unique_id, "1661909200500084");