Skip to content

Commit c3e08f2

Browse files
authored
Merge pull request #1 from SingleRust/main
small intermediate push, not production ready!
2 parents 2609c5b + a43185c commit c3e08f2

File tree

3 files changed

+294
-94
lines changed

3 files changed

+294
-94
lines changed

src/testing/correction/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ where
7979
return Err(anyhow::anyhow!("Invalid p-value at index {:?}: {:?}", i, p));
8080
}
8181
}
82-
82+
8383
let n_f = T::from(n).unwrap();
8484

8585
let mut indices: Vec<usize> = (0..n).collect();

src/testing/inference/mod.rs

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
use crate::testing::utils::{extract_unique_groups, get_group_indices};
2+
use crate::testing::{
3+
Alternative, MultipleTestResults, TTestType, TestMethod, TestResult, correction,
4+
};
15
use nalgebra_sparse::CsrMatrix;
26
use single_utilities::traits::FloatOpsTS;
3-
use crate::testing::{correction, Alternative, MultipleTestResults, TTestType, TestMethod, TestResult};
4-
use crate::testing::utils::{extract_unique_groups, get_group_indices};
57

68
pub mod discrete;
79

@@ -20,7 +22,6 @@ where
2022
test_type: TTestType,
2123
) -> anyhow::Result<Vec<TestResult<f64>>>;
2224

23-
2425
fn mann_whitney_test(
2526
&self,
2627
group1_indices: &[usize],
@@ -37,20 +38,16 @@ where
3738

3839
impl<T> MatrixStatTests<T> for CsrMatrix<T>
3940
where
40-
T: FloatOpsTS
41+
T: FloatOpsTS,
42+
f64: std::convert::From<T>,
4143
{
4244
fn t_test(
4345
&self,
4446
group1_indices: &[usize],
4547
group2_indices: &[usize],
4648
test_type: TTestType,
4749
) -> anyhow::Result<Vec<TestResult<f64>>> {
48-
parametric::t_test_matrix_groups(
49-
self,
50-
group1_indices,
51-
group2_indices,
52-
test_type
53-
)
50+
parametric::t_test_matrix_groups(self, group1_indices, group2_indices, test_type)
5451
}
5552

5653
fn mann_whitney_test(
@@ -79,19 +76,14 @@ where
7976
match test_method {
8077
TestMethod::TTest(test_type) => {
8178
// Run t-tests
82-
let results = self.t_test(
83-
&group1_indices,
84-
&group2_indices,
85-
test_type,
86-
)?;
79+
let results = self.t_test(&group1_indices, &group2_indices, test_type)?;
8780

8881
// Extract statistics and p-values
8982
let statistics: Vec<_> = results.iter().map(|r| r.statistic).collect();
9083
let p_values: Vec<_> = results.iter().map(|r| r.p_value).collect();
9184

9285
// Apply multiple testing correction
93-
let adjusted_p_values =
94-
correction::benjamini_hochberg_correction(&p_values)?;
86+
let adjusted_p_values = correction::benjamini_hochberg_correction(&p_values)?;
9587

9688
// Extract effect sizes if available
9789
let effect_sizes = results
@@ -127,8 +119,7 @@ where
127119
let p_values: Vec<_> = results.iter().map(|r| r.p_value).collect();
128120

129121
// Apply multiple testing correction
130-
let adjusted_p_values =
131-
correction::benjamini_hochberg_correction(&p_values)?;
122+
let adjusted_p_values = correction::benjamini_hochberg_correction(&p_values)?;
132123

133124
Ok(MultipleTestResults::new(statistics, p_values)
134125
.with_adjusted_p_values(adjusted_p_values)
@@ -139,4 +130,4 @@ where
139130
_ => Err(anyhow::anyhow!("Test method not implemented yet")),
140131
}
141132
}
142-
}
133+
}

0 commit comments

Comments
 (0)