47 lines
1.4 KiB
Rust
47 lines
1.4 KiB
Rust
// tests/components_test.rs
|
|
use rust_rl::components::*;
|
|
use std::collections::HashMap;
|
|
|
|
#[test]
|
|
fn damagetype_equality() {
|
|
let dt1 = DamageType::Physical;
|
|
let dt2 = DamageType::Physical;
|
|
assert_eq!(dt1, dt2);
|
|
let dt3 = DamageType::Magic;
|
|
assert_ne!(dt1, dt3);
|
|
}
|
|
|
|
#[test]
|
|
fn damagetype_ismagic() {
|
|
let dt1 = DamageType::Physical;
|
|
let dt2 = DamageType::Magic;
|
|
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);
|
|
}
|