()
| 72 | |
| 73 | #[test] |
| 74 | fn test_non_linear_effect() { |
| 75 | let x = synthetic_x(100, 13); |
| 76 | let mut fp = RegressionModelFingerprint::new(); |
| 77 | |
| 78 | fp.fit(&NonLinearRegModel, &x, 20, None).unwrap(); |
| 79 | let (_, non_linear_effect, _) = fp.get_effects().unwrap(); |
| 80 | assert!(non_linear_effect.raw[&1] > 0.01); |
| 81 | |
| 82 | let linear = LinearRegModel { w: vec![1.0; 13] }; |
| 83 | fp.fit(&linear, &x, 20, None).unwrap(); |
| 84 | let (_, non_linear_linear_model, _) = fp.get_effects().unwrap(); |
| 85 | let non_linear_linear_model_raw = non_linear_linear_model.raw.clone(); |
| 86 | for v in non_linear_linear_model.raw.values() { |
| 87 | assert!(v.abs() < 1e-8); |
| 88 | } |
| 89 | |
| 90 | fp.fit(&linear, &x, 70, None).unwrap(); |
| 91 | let (_, non_linear_70, _) = fp.get_effects().unwrap(); |
| 92 | for feature in [0usize, 5, 6, 12] { |
| 93 | assert!((non_linear_linear_model_raw[&feature] - non_linear_70.raw[&feature]).abs() < 0.05); |
| 94 | } |
| 95 | } |
| 96 | |
| 97 | #[test] |
| 98 | fn test_pairwise_effect() { |
nothing calls this directly
no test coverage detected