1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 from math import pi
25 from unittest import TestCase
26
27
28 from specific_fns import n_state_model
29 from test_suite.unit_tests.n_state_model_testing_base import N_state_model_base_class
30
31
33 """Unit tests for the functions of the 'specific_fns.n_state_model' module."""
34
35
36 n_state_model_fns = n_state_model.N_state_model()
37
38
40 """Test the operation of the specific_fns.n_state_model._assemble_param_vector() method."""
41
42
43 cdp.N = 3
44 cdp.probs = [0.1, 0.3, 0.6]
45 cdp.alpha = [0.0, pi/2, pi]
46 cdp.beta = [pi/2, pi, 3*pi/2]
47 cdp.gamma = [1.0, 3*pi/2, 2*pi]
48 cdp.model = '2-domain'
49
50
51 cdp.align_tensors = None
52
53
54 param_vector = self.n_state_model_fns._assemble_param_vector()
55
56
57 vector_true = [0.1, 0.3, 0.0, pi/2, 1.0, pi/2, pi, 3*pi/2, pi, 3*pi/2, 2*pi]
58
59
60 self.assertEqual(len(param_vector), len(vector_true))
61 for i in xrange(len(param_vector)):
62 self.assertEqual(param_vector[i], vector_true[i])
63
64
66 """Test the operation of the specific_fns.n_state_model._disassemble_param_vector() method."""
67
68
69 cdp.N = 3
70 cdp.probs = [None]*3
71 cdp.alpha = [None]*3
72 cdp.beta = [None]*3
73 cdp.gamma = [None]*3
74 cdp.model = '2-domain'
75
76
77 param_vector = [0.1, 0.3, 0.0, pi/2, 1.0, pi/2, pi, 3*pi/2, pi, 3*pi/2, 2*pi]
78
79
80 self.n_state_model_fns._disassemble_param_vector(param_vector, data_types=['tensor'])
81
82
83 self.assertEqual(cdp.probs, [0.1, 0.3, 0.6])
84 self.assertEqual(cdp.alpha, [0.0, pi/2, pi])
85 self.assertEqual(cdp.beta, [pi/2, pi, 3*pi/2])
86 self.assertEqual(cdp.gamma, [1.0, 3*pi/2, 2*pi])
87