|
a |
|
b/tests/limma/test_squeezeVar.py |
|
|
1 |
import unittest |
|
|
2 |
|
|
|
3 |
import numpy as np |
|
|
4 |
|
|
|
5 |
from inmoose.limma import squeezeVar |
|
|
6 |
|
|
|
7 |
|
|
|
8 |
class Test(unittest.TestCase): |
|
|
9 |
def test_squeezeVar(self): |
|
|
10 |
with self.assertRaisesRegex(ValueError, expected_regex="var is empty"): |
|
|
11 |
squeezeVar(np.array([]), df=3) |
|
|
12 |
|
|
|
13 |
res = squeezeVar(np.array([1]), df=3) |
|
|
14 |
self.assertEqual(res["df_prior"], 0) |
|
|
15 |
self.assertTrue(np.array_equal(res["var_prior"], [1])) |
|
|
16 |
self.assertTrue(np.array_equal(res["var_post"], [1])) |
|
|
17 |
|
|
|
18 |
res = squeezeVar(np.array([0.5, 1.3, 7.8]), df=3) |
|
|
19 |
self.assertAlmostEqual(res["df_prior"], 2.830777, places=6) |
|
|
20 |
self.assertAlmostEqual(res["var_prior"], 1.676927, places=6) |
|
|
21 |
self.assertTrue( |
|
|
22 |
np.allclose(res["var_post"], [1.071385, 1.482994, 4.827317], atol=1e-6) |
|
|
23 |
) |
|
|
24 |
|
|
|
25 |
res = squeezeVar( |
|
|
26 |
np.array([0.5, 0.5, 1.3, 1.3, 7.8, 7.8]), |
|
|
27 |
df=20, |
|
|
28 |
covariate=[1, 2, 3, 4, 5, 6], |
|
|
29 |
) |
|
|
30 |
self.assertAlmostEqual(res["df_prior"], 15.44626, places=5) |
|
|
31 |
self.assertTrue( |
|
|
32 |
np.allclose( |
|
|
33 |
res["var_prior"], |
|
|
34 |
[0.4322342, 0.6426360, 1.0331707, 1.9359150, 4.2277336, 9.9836662], |
|
|
35 |
atol=1e-6, |
|
|
36 |
) |
|
|
37 |
) |
|
|
38 |
self.assertTrue( |
|
|
39 |
np.allclose( |
|
|
40 |
res["var_post"], |
|
|
41 |
[0.4704700, 0.5621558, 1.1837250, 1.5771098, 6.2433295, 8.7515664], |
|
|
42 |
atol=1e-6, |
|
|
43 |
) |
|
|
44 |
) |