aboutsummaryrefslogtreecommitdiff
path: root/tests/parsing.rs
diff options
context:
space:
mode:
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)),
+ ],
+}