[ea0fd6]: / tests / utils / test_factor.py

Download this file

58 lines (46 with data), 1.9 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import unittest
import numpy as np
from inmoose.utils import Factor, asfactor, gl
class test_factor(unittest.TestCase):
def test_class(self):
f = Factor([1, 1, 2, 3, 3])
self.assertTrue(np.array_equal(f.__array__(), [1, 1, 2, 3, 3]))
self.assertTrue(np.array_equal(f.categories, [1, 2, 3]))
self.assertEqual(len(f), len(f.__array__()))
self.assertEqual(f.nlevels(), len(f.categories))
f = Factor([1, 3, 3])
g = f.droplevels()
self.assertTrue(np.array_equal(g.__array__(), [1, 3, 3]))
self.assertTrue(np.array_equal(g.categories, [1, 3]))
# def test_equality(self):
# f1 = Factor([1,2,3,3])
# f2 = Factor([1,2,2,3])
# f3 = Factor([1,2,3,3])
# self.assertTrue(f1 == f3)
# self.assertTrue(f3 == f1)
# self.assertFalse(f1 != f3)
# self.assertFalse(f3 != f1)
# self.assertFalse(f1 == f2)
# self.assertFalse(f2 == f1)
# self.assertTrue(f1 != f2)
# self.assertTrue(f2 != f1)
# self.assertFalse(f1 == 0)
# self.assertFalse(0 == f1)
# self.assertTrue(f1 != 0)
# self.assertTrue(0 != f1)
def test_asfactor(self):
f = Factor([1, 2, 3, 3])
self.assertTrue(f is asfactor(f))
self.assertTrue(
np.array_equal(f.__array__(), asfactor([1, 2, 3, 3]).__array__())
)
def test_gl(self):
for n in range(1, 6):
for k in range(1, 6):
with self.subTest("test_gl_sub", n=n, k=k):
f = gl(n, k)
self.assertEqual(f.nlevels(), n)
self.assertEqual(len(f), n * k)
self.assertTrue((f.__array__() == np.sort(f.__array__())).all())
for j in range(1, n + 1):
self.assertEqual((f.__array__() == j).sum(), k)