MCPcopy Create free account
hub / github.com/Open-Quant/openquant / test_linear_effect

Function test_linear_effect

crates/openquant/tests/fingerprint.rs:46–71  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

44
45#[test]
46fn test_linear_effect() {
47 let x = synthetic_x(120, 13);
48 let mut fp = RegressionModelFingerprint::new();
49
50 let reg_rf_like = NonLinearRegModel;
51 fp.fit(&reg_rf_like, &x, 20, None).unwrap();
52 let (linear_effect, _, _) = fp.get_effects().unwrap();
53 assert!(linear_effect.norm[&0] > 0.20);
54 assert!(linear_effect.norm[&1] > 0.01);
55
56 let reg_linear =
57 LinearRegModel { w: vec![1.2, 0.0, 0.8, 0.0, 0.0, 2.4, 1.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.9] };
58 fp.fit(&reg_linear, &x, 20, None).unwrap();
59 let (linear_effect_linear, _, _) = fp.get_effects().unwrap();
60 let linear_effect_linear_norm = linear_effect_linear.norm.clone();
61 assert!(linear_effect_linear.norm[&5] > linear_effect_linear.norm[&2]);
62 assert!(linear_effect_linear.norm[&2] > linear_effect_linear.norm[&1]);
63
64 fp.fit(&reg_linear, &x, 70, None).unwrap();
65 let (linear_effect_70, _, _) = fp.get_effects().unwrap();
66 for feature in [0usize, 5, 6, 12] {
67 assert!(
68 (linear_effect_linear_norm[&feature] - linear_effect_70.norm[&feature]).abs() < 0.05
69 );
70 }
71}
72
73#[test]
74fn test_non_linear_effect() {

Callers

nothing calls this directly

Calls 3

synthetic_xFunction · 0.85
get_effectsMethod · 0.80
fitMethod · 0.45

Tested by

no test coverage detected