#[derive(Debug, Clone, PartialEq)]
pub struct Ci {
pub lower: f64,
pub upper: f64,
pub level: f64,
}
#[derive(Debug, Clone, PartialEq)]
pub enum EffectSize {
CohenD(f64),
EtaSquared(f64),
CramersV(f64),
R(f64),
}
#[derive(Debug, Clone, PartialEq)]
pub struct TestResult {
pub statistic: f64,
pub df: f64,
pub df2: Option<f64>,
pub p_value: f64,
pub effect_size: Option<EffectSize>,
pub ci: Option<Ci>,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn testresult_clone_eq_roundtrip() {
let r = TestResult {
statistic: 2.0, df: 9.0, df2: None, p_value: 0.05,
effect_size: Some(EffectSize::CohenD(0.8)),
ci: Some(Ci { lower: 0.1, upper: 3.9, level: 0.95 }),
};
assert_eq!(r.clone(), r);
assert_ne!(r, TestResult { effect_size: Some(EffectSize::EtaSquared(0.8)), ..r.clone() });
}
}