aboutsummaryrefslogtreecommitdiff
path: root/tests/parsing.rs
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2020-04-28 14:51:42 +0200
committerDaniel Schadt <kingdread@gmx.de>2020-04-28 14:51:42 +0200
commit7a631f428ce38112157d1c16eaaa2df248c1d46d (patch)
tree5d11a9dcc0bbac33dce27a75577d2c012dc440cd /tests/parsing.rs
parent3d272591bf52d9206f02c952fecddbf91176bdcb (diff)
downloadevtclib-7a631f428ce38112157d1c16eaaa2df248c1d46d.tar.gz
evtclib-7a631f428ce38112157d1c16eaaa2df248c1d46d.tar.bz2
evtclib-7a631f428ce38112157d1c16eaaa2df248c1d46d.zip
add integration-style tests for each boss
This makes sure that at least the basic functionality is working. The logs are "real world" logs, unmodified, directly from arcdps. Some of the names have special characters in them, so that part of the code is tested as well.
Diffstat (limited to 'tests/parsing.rs')
-rw-r--r--tests/parsing.rs583
1 files changed, 583 insertions, 0 deletions
diff --git a/tests/parsing.rs b/tests/parsing.rs
new file mode 100644
index 0000000..58e890a
--- /dev/null
+++ b/tests/parsing.rs
@@ -0,0 +1,583 @@
+//! Tests that test parsing a complete log file and comparing some basic information.
+
+use std::fs::File;
+use std::io::BufReader;
+
+use evtclib::{Boss, EliteSpec::*, Profession::*};
+
+macro_rules! test {
+ (name: $name:ident, log: $log:literal, boss: $boss:expr, players: $players:expr,) => {
+ #[test]
+ fn $name() {
+ let mut file = BufReader::new(File::open(format!("tests/{}", $log)).unwrap());
+ let log = evtclib::raw::parse_zip(&mut file).expect("parsing zip failed");
+ let log = evtclib::process(&log).expect("processing log failed");
+ assert_eq!(log.encounter(), Some($boss));
+
+ let players = $players;
+
+ assert_eq!(log.players().count(), players.len());
+ for (subgroup, account_name, character_name, profession, elite_spec) in players {
+ let player = log
+ .players()
+ .find(|p| &p.player().account_name() == account_name)
+ .expect(&format!("did not find player {}", account_name))
+ .player();
+ assert_eq!(player.subgroup(), *subgroup);
+ assert_eq!(player.character_name(), *character_name);
+ assert_eq!(player.profession(), *profession);
+ assert_eq!(player.elite(), *elite_spec);
+ }
+ }
+ };
+}
+
+// Wing 1 tests
+
+test! {
+ name: parse_vale_guardian,
+ log: "logs/vg-20200421.zevtc",
+ boss: Boss::ValeGuardian,
+ players: &[
+ (4, ":AliceWindwalker.6238", "Fafnarin Sunseeker", Warrior, Some(Berserker)),
+ (4, ":Gellalli.6580", "Germi N", Revenant, Some(Renegade)),
+ (4, ":HqrKATzPOLSKI.7896", "Haqush", Guardian, Some(Dragonhunter)),
+ (4, ":Sora.8732", "Riríchíyo", Guardian, Some(Firebrand)),
+ (4, ":justice.8392", "Ipman D", Guardian, Some(Dragonhunter)),
+ (5, ":Diabound.5473", "Yaru Lanayru", Thief, Some(Deadeye)),
+ (5, ":Dunje.4863", "Emma Hydes", Elementalist, Some(Weaver)),
+ (5, ":Straimer.1093", "Revenge On The Meta", Revenant, Some(Renegade)),
+ (5, ":neko.9741", "Mordrem Cat", Ranger, Some(Druid)),
+ (5, ":xyoz.6710", "Xaphwen", Mesmer, Some(Chronomancer)),
+ ],
+}
+
+test! {
+ name: parse_gorseval,
+ log: "logs/gorseval-20200421.zevtc",
+ boss: Boss::Gorseval,
+ players: &[
+ (4, ":AliceWindwalker.6238", "Fafnarin Sunseeker", Warrior, Some(Berserker)),
+ (4, ":Gellalli.6580", "Germi N", Revenant, Some(Renegade)),
+ (4, ":HqrKATzPOLSKI.7896", "Haqush", Guardian, Some(Dragonhunter)),
+ (4, ":Sora.8732", "Riríchíyo", Guardian, Some(Firebrand)),
+ (4, ":justice.8392", "Ipman D", Guardian, Some(Dragonhunter)),
+ (5, ":Diabound.5473", "Yaru Lanayru", Thief, Some(Deadeye)),
+ (5, ":Dunje.4863", "Emma Hydes", Elementalist, Some(Weaver)),
+ (5, ":Straimer.1093", "I Want Smite Back", Guardian, Some(Dragonhunter)),
+ (5, ":neko.9741", "Mordrem Cat", Ranger, Some(Druid)),
+ (5, ":xyoz.6710", "Xaphwen", Mesmer, Some(Chronomancer)),
+ ],
+}
+
+test! {
+ name: parse_sabetha,
+ log: "logs/sabetha-20200421.zevtc",
+ boss: Boss::Sabetha,
+ players: &[
+ (4, ":AliceWindwalker.6238", "Fafnarin Sunseeker", Warrior, Some(Berserker)),
+ (4, ":Gellalli.6580", "Germi N", Revenant, Some(Renegade)),
+ (4, ":HqrKATzPOLSKI.7896", "Haqush", Guardian, Some(Firebrand)),
+ (4, ":Sora.8732", "Riríchíyo", Guardian, Some(Firebrand)),
+ (4, ":justice.8392", "Ipman D", Guardian, Some(Dragonhunter)),
+ (5, ":Diabound.5473", "Yaru Lanayru", Thief, Some(Deadeye)),
+ (5, ":Dunje.4863", "Thank You Exorcist", Necromancer, Some(Reaper)),
+ (5, ":Straimer.1093", "Feel My Epidemic", Necromancer, Some(Reaper)),
+ (5, ":neko.9741", "Mordrem Cat", Ranger, Some(Druid)),
+ (5, ":xyoz.6710", "Xaphwen", Mesmer, Some(Chronomancer)),
+ ],
+}
+
+// Wing 2 tests
+
+test! {
+ name: parse_slothasor,
+ log: "logs/slothasor-20200420.zevtc",
+ boss: Boss::Slothasor,
+ players: &[
+ (2, ":Basafrass.4138", "Miss Mary J", Guardian, Some(Dragonhunter)),
+ (2, ":Gellalli.6580", "Gellalli V", Guardian, Some(Dragonhunter)),
+ (2, ":Straimer.1093", "I Want Smite Back", Guardian, Some(Dragonhunter)),
+ (2, ":safarissPL.2476", "Archangel Of Fury", Guardian, Some(Firebrand)),
+ (2, ":surbiff.4912", "Nellie Mellie", Elementalist, Some(Tempest)),
+ (3, ":Archmage.3405", "Archmage The Sage", Elementalist, Some(Weaver)),
+ (3, ":Dunje.4863", "Pallida Howhite", Warrior, None),
+ (3, ":MooRecords.8096", "Mc Me", Mesmer, Some(Chronomancer)),
+ (3, ":neko.9741", "Mordrem Cat", Ranger, Some(Druid)),
+ (3, ":xyoz.6710", "Takathy", Revenant, Some(Renegade)),
+ ],
+}
+
+test! {
+ name: parse_matthias,
+ log: "logs/matthias-20200421.zevtc",
+ boss: Boss::Matthias,
+ players: &[
+ (2, ":Basafrass.4138", "Miss Mary J", Guardian, Some(Dragonhunter)),
+ (2, ":Gellalli.6580", "Germi N", Revenant, Some(Renegade)),
+ (2, ":Straimer.1093", "Deepfreeze Myself", Elementalist, Some(Tempest)),
+ (2, ":safarissPL.2476", "Archangel Of Fury", Guardian, Some(Firebrand)),
+ (2, ":surbiff.4912", "The Biff", Guardian, Some(Firebrand)),
+ (3, ":Archmage.3405", "Archmage The Sage", Elementalist, Some(Weaver)),
+ (3, ":Dunje.4863", "Zraraelia Vey", Necromancer, Some(Scourge)),
+ (3, ":Speeaaakmaan.8974", "Gravîty Well", Mesmer, Some(Mirage)),
+ (3, ":neko.9741", "Mordrem Cat", Ranger, Some(Druid)),
+ (3, ":xyoz.6710", "Xaphwen", Mesmer, Some(Chronomancer)),
+ ],
+}
+
+// Wing 3 tests
+
+test! {
+ name: parse_keep_construct,
+ log: "logs/kc-20200426.zevtc",
+ boss: Boss::KeepConstruct,
+ players: &[
+ (3, ":Bomaga.2106", "Krupniczek", Guardian, Some(Dragonhunter)),
+ (3, ":Buddy Christ.1758", "Block Buddy", Guardian, Some(Dragonhunter)),
+ (3, ":LucieMillerx.8650", "Ànemóne", Ranger, Some(Soulbeast)),
+ (3, ":Straimer.1093", "Revenge On The Meta", Revenant, Some(Renegade)),
+ (3, ":neko.9741", "Star Guardian Neko", Guardian, Some(Firebrand)),
+ (4, ":DavDav.4765", "Séraphie Mangor", Guardian, Some(Dragonhunter)),
+ (4, ":Dunje.4863", "Godric Gobbledygook", Mesmer, Some(Chronomancer)),
+ (4, ":Gellalli.6580", "Germi X", Ranger, Some(Druid)),
+ (4, ":Odila.7842", "Nas Tia", Necromancer, Some(Reaper)),
+ (4, ":Shanadodoo.6983", "Blila Blumenkind", Warrior, Some(Berserker)),
+ ],
+}
+
+test! {
+ name: parse_xera,
+ log: "logs/xera-20200415.zevtc",
+ boss: Boss::Xera,
+ players: &[
+ (2, ":Marcoliveira.7526", "Flamed Horns", Guardian, Some(Dragonhunter)),
+ (2, ":Marvin.4612", "Necro Rp", Necromancer, Some(Reaper)),
+ (2, ":Speeaaakmaan.8974", "I Carry Kits", Engineer, Some(Holosmith)),
+ (2, ":neko.9741", "Star Guardian Neko", Guardian, Some(Firebrand)),
+ (2, ":nowere.4583", "Feijoca Slayer", Revenant, Some(Renegade)),
+ (3, ":Dunje.4863", "Pallida Howhite", Warrior, Some(Berserker)),
+ (3, ":Fiamma.3746", "Charrdiano", Guardian, Some(Dragonhunter)),
+ (3, ":Gellalli.6580", "Germi X", Ranger, Some(Druid)),
+ (3, ":Straimer.1093", "Deepfreeze Myself", Elementalist, Some(Weaver)),
+ (3, ":xyoz.6710", "Xaphwen", Mesmer, Some(Chronomancer)),
+ ],
+}
+
+// Wing 4 tests
+
+test! {
+ name: parse_cairn,
+ log: "logs/cairn-20200426.zevtc",
+ boss: Boss::Cairn,
+ players: &[
+ (3, ":Bomaga.2106", "Krupniczek", Guardian, Some(Dragonhunter)),
+ (3, ":Buddy Christ.1758", "Block Buddy", Guardian, Some(Firebrand)),
+ (3, ":Dunje.4863", "Padme Amidada", Guardian, Some(Firebrand)),
+ (3, ":LucieMillerx.8650", "Ànemóne", Ranger, Some(Soulbeast)),
+ (3, ":Straimer.1093", "Revenge On The Meta", Revenant, Some(Renegade)),
+ (4, ":Gellalli.6580", "Germi X", Ranger, Some(Druid)),
+ (4, ":Odila.7842", "Nas Tia", Necromancer, Some(Reaper)),
+ (4, ":Redi.8461", "X Ratiopharm X", Guardian, Some(Dragonhunter)),
+ (4, ":Shanadodoo.6983", "Blila Blumenkind", Warrior, Some(Berserker)),
+ (4, ":neko.9741", "General Nekobi", Mesmer, Some(Chronomancer)),
+ ],
+}
+
+test! {
+ name: parse_mursaat_overseer,
+ log: "logs/mo-20200426.zevtc",
+ boss: Boss::MursaatOverseer,
+ players: &[
+ (3, ":Bomaga.2106", "Krupniczek", Guardian, Some(Dragonhunter)),
+ (3, ":Buddy Christ.1758", "Block Buddy", Guardian, Some(Dragonhunter)),
+ (3, ":Dunje.4863", "Padme Amidada", Guardian, Some(Firebrand)),
+ (3, ":LucieMillerx.8650", "Ànemóne", Ranger, Some(Soulbeast)),
+ (3, ":Straimer.1093", "Revenge On The Meta", Revenant, Some(Renegade)),
+ (4, ":Gellalli.6580", "Germi X", Ranger, Some(Druid)),
+ (4, ":Morality Vi.4512", "Mowality", Necromancer, Some(Scourge)),
+ (4, ":Odila.7842", "Nas Tia", Necromancer, Some(Reaper)),
+ (4, ":Shanadodoo.6983", "Blila Blumenkind", Warrior, Some(Berserker)),
+ (4, ":neko.9741", "General Nekobi", Mesmer, Some(Chronomancer)),
+ ],
+}
+
+test! {
+ name: parse_samarog,
+ log: "logs/samarog-20200426.zevtc",
+ boss: Boss::Samarog,
+ players: &[
+ (3, ":Bomaga.2106", "Krupniczek", Guardian, Some(Dragonhunter)),
+ (3, ":Buddy Christ.1758", "Block Buddy", Guardian, Some(Dragonhunter)),
+ (3, ":Dunje.4863", "Padme Amidada", Guardian, Some(Firebrand)),
+ (3, ":LucieMillerx.8650", "Ànemóne", Ranger, Some(Soulbeast)),
+ (3, ":Straimer.1093", "Revenge On The Meta", Revenant, Some(Renegade)),
+ (4, ":Gellalli.6580", "Germi X", Ranger, Some(Druid)),
+ (4, ":Morality Vi.4512", "Bat San", Guardian, Some(Dragonhunter)),
+ (4, ":Odila.7842", "Nas Tia", Necromancer, Some(Reaper)),
+ (4, ":Shanadodoo.6983", "Blila Blumenkind", Warrior, Some(Berserker)),
+ (4, ":neko.9741", "General Nekobi", Mesmer, Some(Chronomancer)),
+ ],
+}
+
+test! {
+ name: parse_deimos,
+ log: "logs/deimos-20200428.zevtc",
+ boss: Boss::Deimos,
+ players: &[
+ (2, ":CrusaderCody.6935", "Cody Quickfire", Guardian, Some(Firebrand)),
+ (2, ":Mrperfect.5213", "Hanna Kowalski", Revenant, Some(Renegade)),
+ (2, ":Oliber.5142", "Shoe Of Life", Guardian, Some(Dragonhunter)),
+ (2, ":Skapti Bardakson.1750", "Halfdan Coldwalker", Warrior, Some(Berserker)),
+ (3, ":DevilsAngel.5734", "Devilsangels", Warrior, Some(Berserker)),
+ (3, ":KINGLEO.1862", "Scrubslayerr", Warrior, Some(Berserker)),
+ (3, ":Natallya.9845", "Althellya", Mesmer, Some(Chronomancer)),
+ (3, ":XaSeRLP.1832", "Anina Landru", Ranger, Some(Druid)),
+ (3, ":chinchiyo.6794", "Charles Penguin", Thief, Some(Daredevil)),
+ (4, ":Dunje.4863", "Maho Shiina", Revenant, Some(Herald)),
+ ],
+}
+
+// Wing 5 tests
+
+test! {
+ name: parse_desmina,
+ log: "logs/desmina-20200425.zevtc",
+ boss: Boss::SoullessHorror,
+ players: &[
+ (3, ":AliceWindwalker.6238", "Fafnarin Sunseeker", Warrior, Some(Berserker)),
+ (3, ":Dunje.4863", "Godric Gobbledygook", Mesmer, Some(Chronomancer)),
+ (3, ":Gellalli.6580", "Germi X", Ranger, Some(Druid)),
+ (3, ":Jonny.5860", "Razihel Toursad", Revenant, Some(Renegade)),
+ (3, ":Straimer.1093", "Feel My Epidemic", Necromancer, Some(Scourge)),
+ (4, ":BakedSnail.7063", "Wibbly Also Wobbly", Mesmer, Some(Mirage)),
+ (4, ":ShionSan.1637", "Nilvalen Feel", Mesmer, Some(Mirage)),
+ (4, ":Tanylyla.6397", "Tany Phalanx", Warrior, Some(Berserker)),
+ (4, ":neko.9741", "Syberia Nótt", Elementalist, Some(Tempest)),
+ (4, ":xyoz.6710", "Xaphwen", Mesmer, Some(Chronomancer)),
+ ],
+}
+
+test! {
+ name: parse_dhuum,
+ log: "logs/dhuum-20200428.zevtc",
+ boss: Boss::Dhuum,
+ players: &[
+ (1, ":DaZzius.4753", "Amestye Aëther", Mesmer, Some(Chronomancer)),
+ (1, ":Dunje.4863", "Maho Shiina", Revenant, Some(Renegade)),
+ (1, ":LuthienTinuviel.1082", "Aurevyrn", Guardian, Some(Firebrand)),
+ (1, ":RedEaGle.2097", "Alyccya", Ranger, Some(Druid)),
+ (1, ":neko.9741", "General Nekobi", Mesmer, Some(Chronomancer)),
+ (2, ":Gildraen.5432", "Eären Than", Mesmer, Some(Mirage)),
+ (2, ":Kylangel.8409", "Shénmi", Mesmer, Some(Chronomancer)),
+ (2, ":NotIlly.7684", "Illy Warbringer", Warrior, Some(Berserker)),
+ (2, ":Raelag Arkhen.6347", "Rælag Arkhen", Revenant, Some(Renegade)),
+ (2, ":hiemen.2584", "Hiémen", Revenant, Some(Renegade)),
+ ],
+}
+
+// Wing 6 tests
+
+test! {
+ name: parse_conjured_amalgamate,
+ log: "logs/ca-20200426.zevtc",
+ boss: Boss::ConjuredAmalgamate,
+ players: &[
+ (3, ":Admiral Aka Inu.4962", "Großadmiral Aka Inu", Warrior, Some(Berserker)),
+ (3, ":Dunje.4863", "Irodo", Elementalist, Some(Weaver)),
+ (3, ":Lopoeo.1594", "Glücklich Und Satt", Mesmer, Some(Chronomancer)),
+ (3, ":Straimer.1093", "Feel My Epidemic", Necromancer, Some(Reaper)),
+ (3, ":neko.9741", "Mordrem Cat", Ranger, Some(Druid)),
+ (4, ":Cyen Lazarus.4170", "Krom Bearmaster", Guardian, Some(Dragonhunter)),
+ (4, ":Faedoiel.8576", "Faedoiel", Mesmer, Some(Chronomancer)),
+ (4, ":chinchiyo.6794", "Charles Penguin", Thief, Some(Daredevil)),
+ (4, ":predatorkilla.2391", "Predatorrkilla", Guardian, Some(Dragonhunter)),
+ (4, ":sokeenoppa.5384", "Sincis", Thief, Some(Daredevil)),
+ ],
+}
+
+test! {
+ name: parse_largos_twins,
+ log: "logs/largos-20200426.zevtc",
+ boss: Boss::LargosTwins,
+ players: &[
+ (3, ":Cyen Lazarus.4170", "Cyen Blackarrow", Ranger, Some(Druid)),
+ (3, ":Dunje.4863", "Godric Gobbledygook", Mesmer, Some(Mirage)),
+ (3, ":Lopoeo.1594", "Glücklich Und Satt", Mesmer, Some(Chronomancer)),
+ (3, ":Spirit Of Kingdom.4731", "Gungunil", Warrior, Some(Berserker)),
+ (3, ":Straimer.1093", "The Meta Is A Líe", Mesmer, Some(Mirage)),
+ (4, ":Faedoiel.8576", "Faedoiel", Mesmer, Some(Chronomancer)),
+ (4, ":chinchiyo.6794", "Faedlewynn", Revenant, Some(Renegade)),
+ (4, ":neko.9741", "Neko Shadowdancer", Mesmer, Some(Mirage)),
+ (4, ":predatorkilla.2391", "Illusionzkilla", Mesmer, Some(Mirage)),
+ (4, ":sokeenoppa.5384", "O Kng", Elementalist, Some(Tempest)),
+ ],
+}
+
+test! {
+ name: parse_qadim,
+ log: "logs/qadim-20200427.zevtc",
+ boss: Boss::Qadim,
+ players: &[
+ (3, ":Cyen Lazarus.4170", "Cyen Blackarrow", Ranger, Some(Druid)),
+ (3, ":Lopoeo.1594", "Glücklich Und Satt", Mesmer, Some(Chronomancer)),
+ (3, ":Straimer.1093", "Feel My Epidemic", Necromancer, Some(Reaper)),
+ (3, ":WONBO.3265", "Wonbo", Warrior, Some(Berserker)),
+ (3, ":neko.9741", "General Nekobi", Mesmer, Some(Chronomancer)),
+ (4, ":Dunje.4863", "Clepta Sophia", Thief, Some(Deadeye)),
+ (4, ":chinchiyo.6794", "Charles Penguin", Thief, Some(Daredevil)),
+ (4, ":predatorkilla.2391", "Predatorrkilla", Guardian, Some(Dragonhunter)),
+ (4, ":sokeenoppa.5384", "I Will Carry Fit", Necromancer, Some(Scourge)),
+ (4, ":xXCOOLXx.2176", "Rakirah Boonmancer", Mesmer, Some(Chronomancer)),
+ ],
+}
+
+// Wing 7 tests
+
+test! {
+ name: parse_adina,
+ log: "logs/adina-20200427.zevtc",
+ boss: Boss::CardinalAdina,
+ players: &[
+ (3, ":Arkady.3768", "Just Pakly", Engineer, Some(Holosmith)),
+ (3, ":Dunje.4863", "Peter Party", Ranger, Some(Soulbeast)),
+ (3, ":Vooriden.3927", "Ashbüry", Ranger, Some(Druid)),
+ (3, ":WONBO.3265", "Jaínece Crâiser", Mesmer, Some(Chronomancer)),
+ (3, ":xyoz.6710", "Xaphy", Engineer, Some(Holosmith)),
+ (5, ":AliceWindwalker.6238", "Fafnarin Sunseeker", Warrior, Some(Berserker)),
+ (5, ":Gellalli.6580", "Germi N", Revenant, Some(Renegade)),
+ (5, ":Straimer.1093", "I Want Smite Back", Guardian, Some(Dragonhunter)),
+ (5, ":TruePacman.8703", "Little Pac", Guardian, Some(Dragonhunter)),
+ (5, ":neko.9741", "Star Guardian Neko", Guardian, Some(Firebrand)),
+ ],
+}
+
+test! {
+ name: parse_sabir,
+ log: "logs/sabir-20200427.zevtc",
+ boss: Boss::CardinalSabir,
+ players: &[
+ (3, ":Arkady.3768", "Just Pakly", Engineer, Some(Holosmith)),
+ (3, ":Dunje.4863", "Emma Hydes", Elementalist, Some(Weaver)),
+ (3, ":Vooriden.3927", "Ashbüry", Ranger, Some(Druid)),
+ (3, ":WONBO.3265", "Jaínece Crâiser", Mesmer, Some(Chronomancer)),
+ (3, ":xyoz.6710", "Xaphwen", Mesmer, Some(Chronomancer)),
+ (5, ":AliceWindwalker.6238", "Fafnarin Sunseeker", Warrior, Some(Berserker)),
+ (5, ":Gellalli.6580", "Germi N", Revenant, Some(Renegade)),
+ (5, ":Straimer.1093", "Revenge On The Meta", Revenant, Some(Renegade)),
+ (5, ":TruePacman.8703", "Tolin Halfhand", Revenant, Some(Renegade)),
+ (5, ":neko.9741", "Star Guardian Neko", Guardian, Some(Firebrand)),
+ ],
+}
+
+test! {
+ name: parse_qadim_the_peerless,
+ log: "logs/qadimp-20200427.zevtc",
+ boss: Boss::QadimThePeerless,
+ players: &[
+ (3, ":AliceWindwalker.6238", "Fafnarin Sunseeker", Warrior, Some(Berserker)),
+ (3, ":Arkady.3768", "Just Pakly", Engineer, Some(Holosmith)),
+ (3, ":Vooriden.3927", "Ashbüry", Ranger, Some(Druid)),
+ (3, ":WONBO.3265", "Jaínece Crâiser", Mesmer, Some(Chronomancer)),
+ (3, ":xyoz.6710", "Xaphwen", Mesmer, Some(Chronomancer)),
+ (5, ":Dunje.4863", "Clepta Sophia", Thief, Some(Deadeye)),
+ (5, ":Gellalli.6580", "Germi N", Revenant, Some(Renegade)),
+ (5, ":Straimer.1093", "Feel My Epidemic", Necromancer, Some(Scourge)),
+ (5, ":TruePacman.8703", "Smayser", Necromancer, Some(Scourge)),
+ (5, ":neko.9741", "Star Guardian Neko", Guardian, Some(Firebrand)),
+ ],
+}
+
+// 100 CM tests
+
+test! {
+ name: parse_skorvald,
+ log: "logs/skorvald-20200427.zevtc",
+ boss: Boss::Skorvald,
+ players: &[
+ (0, ":Dunje.4863", "Jane Whiskerlisp", Revenant, Some(Renegade)),
+ (0, ":Gellalli.6580", "Germi X", Ranger, Some(Soulbeast)),
+ (0, ":Speeaaakmaan.8974", "Damage Modifiers", Guardian, Some(Firebrand)),
+ (0, ":Straimer.1093", "Deepfreeze Myself", Elementalist, Some(Weaver)),
+ (0, ":neko.9741", "Took Fgs For Banner", Warrior, Some(Berserker)),
+ ],
+}
+
+test! {
+ name: parse_artsariiv,
+ log: "logs/artsariiv-20200427.zevtc",
+ boss: Boss::Artsariiv,
+ players: &[
+ (0, ":Dunje.4863", "Jane Whiskerlisp", Revenant, Some(Renegade)),
+ (0, ":Gellalli.6580", "Germi X", Ranger, Some(Soulbeast)),
+ (0, ":Speeaaakmaan.8974", "Damage Modifiers", Guardian, Some(Firebrand)),
+ (0, ":Straimer.1093", "Deepfreeze Myself", Elementalist, Some(Weaver)),
+ (0, ":neko.9741", "Took Fgs For Banner", Warrior, Some(Berserker)),
+ ],
+}
+
+test! {
+ name: parse_arkk,
+ log: "logs/arkk-20200427.zevtc",
+ boss: Boss::Arkk,
+ players: &[
+ (0, ":Dunje.4863", "Jane Whiskerlisp", Revenant, Some(Renegade)),
+ (0, ":Gellalli.6580", "Germi X", Ranger, Some(Soulbeast)),
+ (0, ":Speeaaakmaan.8974", "Damage Modifiers", Guardian, Some(Firebrand)),
+ (0, ":Straimer.1093", "Deepfreeze Myself", Elementalist, Some(Weaver)),
+ (0, ":neko.9741", "Took Fgs For Banner", Warrior, Some(Berserker)),
+ ],
+}
+
+// 99 CM tests
+
+test! {
+ name: parse_mama,
+ log: "logs/mama-20200427.zevtc",
+ boss: Boss::MAMA,
+ players: &[
+ (0, ":Dunje.4863", "Jane Whiskerlisp", Revenant, Some(Renegade)),
+ (0, ":Gellalli.6580", "Germi X", Ranger, Some(Soulbeast)),
+ (0, ":Speeaaakmaan.8974", "Damage Modifiers", Guardian, Some(Firebrand)),
+ (0, ":Straimer.1093", "Deepfreeze Myself", Elementalist, Some(Weaver)),
+ (0, ":neko.9741", "Took Fgs For Banner", Warrior, Some(Berserker)),
+ ],
+}
+
+test! {
+ name: parse_siax,
+ log: "logs/siax-20200427.zevtc",
+ boss: Boss::Siax,
+ players: &[
+ (0, ":Dunje.4863", "Jane Whiskerlisp", Revenant, Some(Renegade)),
+ (0, ":Gellalli.6580", "Germi X", Ranger, Some(Soulbeast)),
+ (0, ":Speeaaakmaan.8974", "Damage Modifiers", Guardian, Some(Firebrand)),
+ (0, ":Straimer.1093", "Deepfreeze Myself", Elementalist, Some(Weaver)),
+ (0, ":neko.9741", "Took Fgs For Banner", Warrior, Some(Berserker)),
+ ],
+}
+
+test! {
+ name: parse_ensolyss,
+ log: "logs/ensolyss-20200427.zevtc",
+ boss: Boss::Ensolyss,
+ players: &[
+ (0, ":Dunje.4863", "Jane Whiskerlisp", Revenant, Some(Renegade)),
+ (0, ":Gellalli.6580", "Germi X", Ranger, Some(Soulbeast)),
+ (0, ":Speeaaakmaan.8974", "Damage Modifiers", Guardian, Some(Firebrand)),
+ (0, ":Straimer.1093", "Deepfreeze Myself", Elementalist, Some(Weaver)),
+ (0, ":neko.9741", "Took Fgs For Banner", Warrior, Some(Berserker)),
+ ],
+}
+
+// Strike mission tests
+
+test! {
+ name: parse_icebrood,
+ log: "logs/icebrood-20200424.zevtc",
+ boss: Boss::IcebroodConstruct,
+ players: &[
+ (3, ":Dunje.4863", "Thank You Exorcist", Necromancer, Some(Reaper)),
+ (3, ":Speeaaakmaan.8974", "Damage Modifiers", Guardian, Some(Firebrand)),
+ (3, ":Straimer.1093", "Revenge On The Meta", Revenant, Some(Renegade)),
+ (3, ":Vario.4875", "Baelgar Skyfire", Elementalist, Some(Tempest)),
+ (3, ":xChriS.5213", "I Am Raponz", Revenant, Some(Renegade)),
+ (4, ":Blaz.8675", "Guesthelper", Ranger, Some(Druid)),
+ (4, ":Friedensschreck.2573", "Lucy Brent", Mesmer, Some(Chronomancer)),
+ (4, ":Gellalli.6580", "Germi J", Necromancer, Some(Reaper)),
+ (4, ":Nydena.4371", "Lanori", Warrior, Some(Berserker)),
+ (4, ":Xion.5790", "Underwater Nab", Engineer, Some(Holosmith)),
+ ],
+}
+
+test! {
+ name: parse_kodan_brothers,
+ log: "logs/kodans-20200424.zevtc",
+ boss: Boss::VoiceOfTheFallen,
+ players: &[
+ (3, ":Gellalli.6580", "Germi J", Necromancer, Some(Scourge)),
+ (3, ":Speeaaakmaan.8974", "Damage Modifiers", Guardian, Some(Firebrand)),
+ (3, ":Straimer.1093", "Revenge On The Meta", Revenant, Some(Renegade)),
+ (3, ":Vario.4875", "Baelgar Skyfire", Elementalist, Some(Tempest)),
+ (3, ":xChriS.5213", "I Am Raponz", Revenant, Some(Renegade)),
+ (4, ":Blaz.8675", "Guesthelper", Ranger, Some(Druid)),
+ (4, ":Dunje.4863", "Thank You Exorcist", Necromancer, Some(Reaper)),
+ (4, ":Friedensschreck.2573", "Lucy Brent", Mesmer, Some(Chronomancer)),
+ (4, ":Nydena.4371", "Lanori", Warrior, Some(Berserker)),
+ (4, ":Ouren.7530", "Pip The Dragon", Guardian, Some(Firebrand)),
+ ],
+}
+
+test! {
+ name: parse_fraenir_of_jormag,
+ log: "logs/fraenir-20200424.zevtc",
+ boss: Boss::FraenirOfJormag,
+ players: &[
+ (3, ":Dunje.4863", "Thank You Exorcist", Necromancer, Some(Reaper)),
+ (3, ":Speeaaakmaan.8974", "Damage Modifiers", Guardian, Some(Firebrand)),
+ (3, ":Straimer.1093", "Revenge On The Meta", Revenant, Some(Renegade)),
+ (3, ":Vario.4875", "Baelgar Skyfire", Elementalist, Some(Tempest)),
+ (3, ":xChriS.5213", "I Am Raponz", Revenant, Some(Renegade)),
+ (4, ":Blaz.8675", "Guesthelper", Ranger, Some(Druid)),
+ (4, ":Friedensschreck.2573", "Lucy Brent", Mesmer, Some(Chronomancer)),
+ (4, ":Gellalli.6580", "Germi J", Necromancer, Some(Scourge)),
+ (4, ":Nydena.4371", "Lanori", Warrior, Some(Berserker)),
+ (4, ":Xion.5790", "Underwater Nab", Engineer, Some(Holosmith)),
+ ],
+}
+
+test! {
+ name: parse_boneskinner,
+ log: "logs/boneskinner-20200424.zevtc",
+ boss: Boss::Boneskinner,
+ players: &[
+ (3, ":Gellalli.6580", "Germi J", Necromancer, Some(Scourge)),
+ (3, ":Speeaaakmaan.8974", "Damage Modifiers", Guardian, Some(Firebrand)),
+ (3, ":Straimer.1093", "Revenge On The Meta", Revenant, Some(Renegade)),
+ (3, ":Vario.4875", "Baelgar Skyfire", Elementalist, Some(Tempest)),
+ (3, ":xChriS.5213", "I Am Raponz", Revenant, Some(Renegade)),
+ (4, ":Blaz.8675", "Guesthelper", Ranger, Some(Druid)),
+ (4, ":Dunje.4863", "Thank You Exorcist", Necromancer, Some(Reaper)),
+ (4, ":Friedensschreck.2573", "Lucy Brent", Mesmer, Some(Chronomancer)),
+ (4, ":Nydena.4371", "Lanori", Warrior, Some(Berserker)),
+ (4, ":Ouren.7530", "Pip The Dragon", Guardian, Some(Firebrand)),
+ ],
+}
+
+test! {
+ name: parse_whisper_of_jormag,
+ log: "logs/whisper-20200424.zevtc",
+ boss: Boss::WhisperOfJormag,
+ players: &[
+ (3, ":Gellalli.6580", "Germi J", Necromancer, Some(Scourge)),
+ (3, ":Speeaaakmaan.8974", "Damage Modifiers", Guardian, Some(Firebrand)),
+ (3, ":Straimer.1093", "Revenge On The Meta", Revenant, Some(Renegade)),
+ (3, ":Vario.4875", "Baelgar Skyfire", Elementalist, Some(Tempest)),
+ (3, ":xChriS.5213", "I Am Raponz", Revenant, Some(Renegade)),
+ (4, ":Blaz.8675", "Guesthelper", Ranger, Some(Druid)),
+ (4, ":Dunje.4863", "Thank You Exorcist", Necromancer, Some(Reaper)),
+ (4, ":Friedensschreck.2573", "Lucy Brent", Mesmer, Some(Chronomancer)),
+ (4, ":Nydena.4371", "Lanori", Warrior, Some(Berserker)),
+ (4, ":Ouren.7530", "Pip The Dragon", Guardian, Some(Firebrand)),
+ ],
+}
+
+// Various tests
+
+test! {
+ name: parse_old_cairn_log,
+ log: "logs/old-cairn-20180321.evtc.zip",
+ boss: Boss::Cairn,
+ players: &[
+ (1, ":Medejz.1679", "Nuerha", Guardian, Some(Firebrand)),
+ (1, ":ONEVA.5860", "Berserkoala", Revenant, Some(Renegade)),
+ (1, ":Speeaaakmaan.8974", "I Block Eggs", Mesmer, Some(Chronomancer)),
+ (1, ":Villhelma.6829", "Viseria", Ranger, Some(Druid)),
+ (1, ":gaga.3014", "Hankahn", Warrior, Some(Berserker)),
+ (2, ":Arcanis.4602", "Ivy Deathcloud", Necromancer, Some(Scourge)),
+ (2, ":Dunje.4863", "Zraraelia Vey", Necromancer, Some(Scourge)),
+ (2, ":Gellalli.6580", "Germi X", Ranger, Some(Druid)),
+ (2, ":Gizmo.1635", "Oleg Deathbringer", Necromancer, Some(Scourge)),
+ (2, ":flumbum.4068", "Xynaliba", Mesmer, Some(Chronomancer)),
+ ],
+}