damage mod multiplier unit tests

This commit is contained in:
Llywelwyn 2023-09-21 01:08:01 +01:00
parent dc4bcbe618
commit 654aea9a32
2 changed files with 37 additions and 4 deletions

View file

@ -1,5 +1,6 @@
// tests/components_test.rs
use rust_rl::components::*;
use std::collections::HashMap;
#[test]
fn damagetype_equality() {
@ -17,3 +18,30 @@ fn damagetype_ismagic() {
assert!(!dt1.is_magic());
assert!(dt2.is_magic());
}
#[test]
fn get_damage_modifiers() {
let dm = HasDamageModifiers {
modifiers: {
let mut m = HashMap::new();
m.insert(DamageType::Physical, DamageModifier::Weakness);
m.insert(DamageType::Magic, DamageModifier::Resistance);
m
},
};
assert_eq!(dm.modifier(&DamageType::Physical), &DamageModifier::Weakness);
assert_eq!(dm.modifier(&DamageType::Magic), &DamageModifier::Resistance);
assert_ne!(dm.modifier(&DamageType::Forced), &DamageModifier::Immune);
}
#[test]
fn get_damage_modifier_multiplier() {
let none_mod = &DamageModifier::None.multiplier();
let weak_mod = &DamageModifier::Weakness.multiplier();
let res_mod = &DamageModifier::Resistance.multiplier();
let immune_mod = &DamageModifier::Immune.multiplier();
assert_eq!(none_mod, &1.0);
assert_eq!(weak_mod, &2.0);
assert_eq!(res_mod, &0.5);
assert_eq!(immune_mod, &0.0);
}