annotate commons/core/stat/test/Test_Stat.py @ 6:769e306b7933

Change the repository level.
author yufei-luo
date Fri, 18 Jan 2013 04:54:14 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1 from commons.core.stat.Stat import Stat
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
2 import unittest
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
3
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
4 class Test_Stat(unittest.TestCase):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
5
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
6 def test__eq__true(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
7 iStat1 = Stat([1, 2, 3, 46])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
8 iStat2 = Stat([1, 2, 3, 46])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
9 self.assertTrue(iStat1 == iStat2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
10
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
11 def test__eq__false(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
12 iStat1 = Stat([1, 2, 3, 4])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
13 iStat2 = Stat([1, 2, 3, 46])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
14 self.assertFalse(iStat1 == iStat2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
15
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
16 def test__eq__disordered_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
17 iStat1 = Stat([3, 2, 1, 46])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
18 iStat2 = Stat([1, 2, 3, 46])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
19 self.assertTrue(iStat1 == iStat2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
20
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
21 def test_reset(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
22 lValues = [1, 2, 5, 9, 12, 46]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
23 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
24 iStat.reset()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
25 expValuesList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
26 expSum = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
27 expSum2 = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
28 expN = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
29 expMin = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
30 expMax = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
31 obsValuesList = iStat.getValuesList()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
32 obsSum = iStat.getSum()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
33 obsSum2 = iStat.getSumOfSquares()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
34 obsN = iStat.getValuesNumber()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
35 obsMin = iStat.getMin()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
36 obsMax = iStat.getMax()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
37 self.assertEquals(expValuesList, obsValuesList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
38 self.assertEquals(expSum, obsSum)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
39 self.assertEquals(expSum2, obsSum2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
40 self.assertEquals(expN, obsN)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
41 self.assertEquals(expMin, obsMin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
42 self.assertEquals(expMax, obsMax)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
43
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
44 def test_add_EmptyList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
45 lValues = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
46 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
47 iStat.add(5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
48 expValuesList = [5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
49 expSum = 5
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
50 expSum2 = 25
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
51 expN = 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
52 expMin = 5
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
53 expMax = 5
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
54 obsValuesList = iStat.getValuesList()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
55 obsSum = iStat.getSum()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
56 obsSum2 = iStat.getSumOfSquares()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
57 obsN = iStat.getValuesNumber()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
58 obsMin = iStat.getMin()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
59 obsMax = iStat.getMax()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
60 self.assertEquals(expValuesList, obsValuesList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
61 self.assertEquals(expSum, obsSum)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
62 self.assertEquals(expSum2, obsSum2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
63 self.assertEquals(expN, obsN)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
64 self.assertEquals(expMin, obsMin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
65 self.assertEquals(expMax, obsMax)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
66
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
67 def test_add_Max(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
68 lValues = [0,1,1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
69 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
70 iStat.add(2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
71 expValuesList = [0,1,1,2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
72 expSum = 4
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
73 expSum2 = 6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
74 expN = 4
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
75 expMin = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
76 expMax = 2
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
77 obsValuesList = iStat.getValuesList()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
78 obsSum = iStat.getSum()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
79 obsSum2 = iStat.getSumOfSquares()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
80 obsN = iStat.getValuesNumber()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
81 obsMin = iStat.getMin()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
82 obsMax = iStat.getMax()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
83 self.assertEquals(expValuesList, obsValuesList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
84 self.assertEquals(expSum, obsSum)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
85 self.assertEquals(expSum2, obsSum2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
86 self.assertEquals(expN, obsN)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
87 self.assertEquals(expMin, obsMin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
88 self.assertEquals(expMax, obsMax)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
89
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
90 def test_add_Min(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
91 lValues = [2,1,1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
92 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
93 iStat.add(0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
94 expValuesList = [2,1,1,0]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
95 expSum = 4
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
96 expSum2 = 6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
97 expN = 4
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
98 expMin = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
99 expMax = 2
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
100 obsValuesList = iStat.getValuesList()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
101 obsSum = iStat.getSum()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
102 obsSum2 = iStat.getSumOfSquares()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
103 obsN = iStat.getValuesNumber()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
104 obsMin = iStat.getMin()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
105 obsMax = iStat.getMax()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
106 self.assertEquals(expValuesList, obsValuesList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
107 self.assertEquals(expSum, obsSum)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
108 self.assertEquals(expSum2, obsSum2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
109 self.assertEquals(expN, obsN)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
110 self.assertEquals(expMin, obsMin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
111 self.assertEquals(expMax, obsMax)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
112
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
113 def test_fill_emptyList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
114 lValues = [2,1,1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
115 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
116 iStat.fill([])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
117 expValuesList = [2,1,1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
118 expSum = 4
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
119 expSum2 = 6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
120 expN = 3
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
121 expMin = 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
122 expMax = 2
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
123 obsValuesList = iStat.getValuesList()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
124 obsSum = iStat.getSum()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
125 obsSum2 = iStat.getSumOfSquares()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
126 obsN = iStat.getValuesNumber()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
127 obsMin = iStat.getMin()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
128 obsMax = iStat.getMax()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
129 self.assertEquals(expValuesList, obsValuesList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
130 self.assertEquals(expSum, obsSum)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
131 self.assertEquals(expSum2, obsSum2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
132 self.assertEquals(expN, obsN)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
133 self.assertEquals(expMin, obsMin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
134 self.assertEquals(expMax, obsMax)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
135
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
136 def test_fill(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
137 lValues = [2, 1, 1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
138 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
139 iStat.fill([4, 0])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
140 expValuesList = [2, 1, 1, 4, 0]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
141 expSum = 8
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
142 expSum2 = 22
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
143 expN = 5
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
144 expMin = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
145 expMax = 4
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
146 obsValuesList = iStat.getValuesList()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
147 obsSum = iStat.getSum()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
148 obsSum2 = iStat.getSumOfSquares()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
149 obsN = iStat.getValuesNumber()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
150 obsMin = iStat.getMin()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
151 obsMax = iStat.getMax()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
152 self.assertEquals(expValuesList, obsValuesList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
153 self.assertEquals(expSum, obsSum)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
154 self.assertEquals(expSum2, obsSum2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
155 self.assertEquals(expN, obsN)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
156 self.assertEquals(expMin, obsMin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
157 self.assertEquals(expMax, obsMax)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
158
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
159 def test_mean_emptyList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
160 lValues = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
161 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
162 expMean = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
163 obsMean = iStat.mean()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
164 self.assertEquals(expMean, obsMean)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
165
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
166 def test_mean(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
167 lValues = [0, 1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
168 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
169 expMean = 0.5
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
170 obsMean = iStat.mean()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
171 self.assertEquals(expMean, obsMean)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
172
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
173 def test_var_emptyList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
174 lValues = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
175 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
176 expVar = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
177 obsVar = iStat.var()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
178 self.assertEquals(expVar, obsVar)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
179
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
180 def test_var(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
181 lValues = [1, 1, 2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
182 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
183 expVar = round(1/float(3), 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
184 obsVar = round(iStat.var(), 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
185 self.assertEquals(expVar, obsVar)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
186
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
187 def test_var2(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
188 lValues = [1,6,3,4,9,6]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
189 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
190 expVar = 7.76667
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
191 obsVar = round(iStat.var(), 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
192 self.assertEquals(expVar, obsVar)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
193
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
194 def test_var_null(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
195 lValues = [87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
196 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
197 expVar = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
198 obsVar = round(iStat.var(),5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
199 self.assertEquals(expVar, obsVar)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
200
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
201 def test_sd(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
202 lValues = [1, 1, 2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
203 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
204 expSd = round(0.577350269, 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
205 obsSd = round(iStat.sd(), 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
206 self.assertEquals(expSd, obsSd)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
207
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
208 def test_sd_null(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
209 lValues = [87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
210 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
211 expSd = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
212 obsSd = round(iStat.sd(), 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
213 self.assertEquals(expSd, obsSd)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
214
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
215 def test_cv(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
216 lValues = [1, 1, 2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
217 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
218 expSd = round(0.433012702, 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
219 obsSd = round(iStat.cv(), 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
220 self.assertEquals(expSd, obsSd)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
221
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
222 def test_cv_mean_is_nul(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
223 lValues = [1, -1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
224 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
225 expSd = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
226 obsSd = iStat.cv()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
227 self.assertEquals(expSd, obsSd)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
228
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
229 def test_median_emptyList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
230 lValues = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
231 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
232 expMedian = "NA"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
233 obsMedian = iStat.median()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
234 self.assertEquals(expMedian, obsMedian)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
235
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
236 def test_median_even(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
237 lValues = [1, 2, 3, 4, 1, 2, 54, 6, 7]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
238 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
239 expMedian = 3
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
240 obsMedian = iStat.median()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
241 self.assertEquals(expMedian, obsMedian)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
242
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
243 def test_median_odd(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
244 lValues = [1, 2, 3, 4, 2, 54, 6, 7]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
245 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
246 expMedian = 3.5
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
247 obsMedian = iStat.median()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
248 self.assertEquals(expMedian, obsMedian)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
249
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
250 def test_kurtosis_flat(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
251 lValues = [1, 1, 1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
252 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
253 expKurtosis = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
254 obsKurtosis = iStat.kurtosis()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
255 self.assertEquals(expKurtosis, obsKurtosis)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
256
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
257 def test_kurtosis_peak(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
258 lValues = [1, 100, -5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
259 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
260 expKurtosis = round(712872278.6609683, 2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
261 obsKurtosis = round(iStat.kurtosis(), 2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
262 self.assertEquals(expKurtosis, obsKurtosis)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
263
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
264 def test_kurtosis_normal(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
265 lValues = [-1, 0, 1.64, 1.64, 0, -1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
266 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
267 expKurtosis = 3.0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
268 obsKurtosis = round(iStat.kurtosis(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
269 self.assertEquals(expKurtosis, obsKurtosis)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
270
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
271 def test_sort(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
272 lValues = [-1, 0, 1.64, 1.64, 0, -1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
273 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
274 expSort = [-1, -1, 0, 0, 1.64, 1.64]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
275 obsSort = iStat.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
276 self.assertEquals(expSort, obsSort)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
277
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
278 def test_sort_reverse(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
279 lValues = [-1, 0, 1.64, 1.64, 0, -1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
280 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
281 expSort = [1.64, 1.64, 0, 0, -1, -1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
282 obsSort = iStat.sort(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
283 self.assertEquals(expSort, obsSort)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
284
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
285 def test_sort_emptyList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
286 lValues = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
287 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
288 expSort = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
289 obsSort = iStat.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
290 self.assertEquals(expSort, obsSort)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
291
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
292 def test_quantile_emptyList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
293 lValues = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
294 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
295 expQuantile = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
296 obsQuantile = iStat.quantile(0.25)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
297 self.assertEquals(expQuantile, obsQuantile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
298
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
299 def test_quantile_0perc(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
300 lValues = [0, 2.64, 1.64, -1, 5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
301 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
302 expQuantile = -1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
303 obsQuantile = iStat.quantile(0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
304 self.assertEquals(expQuantile, obsQuantile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
305
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
306 def test_quantile_25perc(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
307 lValues = [0, 2.64, 1.64, -1, 5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
308 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
309 expQuantile = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
310 obsQuantile = iStat.quantile(0.25)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
311 self.assertEquals(expQuantile, obsQuantile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
312
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
313 def test_quantile_41perc(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
314 lValues = [0, 2.64, 1.64, -1, 5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
315 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
316 expQuantile = 1.64
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
317 obsQuantile = iStat.quantile(0.41)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
318 self.assertEquals(expQuantile, obsQuantile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
319
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
320 def test_quantile_75perc(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
321 lValues = [0, 2.64, 1.64, -1, 5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
322 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
323 expQuantile = 2.64
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
324 obsQuantile = iStat.quantile(0.75)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
325 self.assertEquals(expQuantile, obsQuantile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
326
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
327 def test_quantile_81perc(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
328 lValues = [0, 2.64, 1.64, -1, 5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
329 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
330 expQuantile = 5
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
331 obsQuantile = iStat.quantile(0.81)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
332 self.assertEquals(expQuantile, obsQuantile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
333
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
334 def test_quantile_100perc(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
335 lValues = [0, 2.64, 1.64, -1, 5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
336 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
337 expQuantile = 5
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
338 obsQuantile = iStat.quantile(1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
339 self.assertEquals(expQuantile, obsQuantile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
340
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
341 def test_N50(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
342 lValues = [10, 10, 2, 16, 3, 4, 5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
343 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
344 expN50 = 10
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
345 obsN50 = iStat.N50()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
346 self.assertEquals(expN50, obsN50)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
347
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
348 def test_N50SpecialValues(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
349 lValues = [1, 100, 2, 3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
350 iStat = Stat(lValues)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
351 expN50 = 100
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
352 obsN50 = iStat.N50()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
353 self.assertEquals(expN50, obsN50)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
354
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
355 if __name__ == "__main__":
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
356 unittest.main()