Mercurial > repos > yufei-luo > s_mart
diff smart_toolShed/commons/core/stat/test/Test_Stat.py @ 0:e0f8dcca02ed
Uploaded S-MART tool. A toolbox manages RNA-Seq and ChIP-Seq data.
author | yufei-luo |
---|---|
date | Thu, 17 Jan 2013 10:52:14 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smart_toolShed/commons/core/stat/test/Test_Stat.py Thu Jan 17 10:52:14 2013 -0500 @@ -0,0 +1,356 @@ +from commons.core.stat.Stat import Stat +import unittest + +class Test_Stat(unittest.TestCase): + + def test__eq__true(self): + iStat1 = Stat([1, 2, 3, 46]) + iStat2 = Stat([1, 2, 3, 46]) + self.assertTrue(iStat1 == iStat2) + + def test__eq__false(self): + iStat1 = Stat([1, 2, 3, 4]) + iStat2 = Stat([1, 2, 3, 46]) + self.assertFalse(iStat1 == iStat2) + + def test__eq__disordered_list(self): + iStat1 = Stat([3, 2, 1, 46]) + iStat2 = Stat([1, 2, 3, 46]) + self.assertTrue(iStat1 == iStat2) + + def test_reset(self): + lValues = [1, 2, 5, 9, 12, 46] + iStat = Stat(lValues) + iStat.reset() + expValuesList = [] + expSum = 0 + expSum2 = 0 + expN = 0 + expMin = 0 + expMax = 0 + obsValuesList = iStat.getValuesList() + obsSum = iStat.getSum() + obsSum2 = iStat.getSumOfSquares() + obsN = iStat.getValuesNumber() + obsMin = iStat.getMin() + obsMax = iStat.getMax() + self.assertEquals(expValuesList, obsValuesList) + self.assertEquals(expSum, obsSum) + self.assertEquals(expSum2, obsSum2) + self.assertEquals(expN, obsN) + self.assertEquals(expMin, obsMin) + self.assertEquals(expMax, obsMax) + + def test_add_EmptyList(self): + lValues = [] + iStat = Stat(lValues) + iStat.add(5) + expValuesList = [5] + expSum = 5 + expSum2 = 25 + expN = 1 + expMin = 5 + expMax = 5 + obsValuesList = iStat.getValuesList() + obsSum = iStat.getSum() + obsSum2 = iStat.getSumOfSquares() + obsN = iStat.getValuesNumber() + obsMin = iStat.getMin() + obsMax = iStat.getMax() + self.assertEquals(expValuesList, obsValuesList) + self.assertEquals(expSum, obsSum) + self.assertEquals(expSum2, obsSum2) + self.assertEquals(expN, obsN) + self.assertEquals(expMin, obsMin) + self.assertEquals(expMax, obsMax) + + def test_add_Max(self): + lValues = [0,1,1] + iStat = Stat(lValues) + iStat.add(2) + expValuesList = [0,1,1,2] + expSum = 4 + expSum2 = 6 + expN = 4 + expMin = 0 + expMax = 2 + obsValuesList = iStat.getValuesList() + obsSum = iStat.getSum() + obsSum2 = iStat.getSumOfSquares() + obsN = iStat.getValuesNumber() + obsMin = iStat.getMin() + obsMax = iStat.getMax() + self.assertEquals(expValuesList, obsValuesList) + self.assertEquals(expSum, obsSum) + self.assertEquals(expSum2, obsSum2) + self.assertEquals(expN, obsN) + self.assertEquals(expMin, obsMin) + self.assertEquals(expMax, obsMax) + + def test_add_Min(self): + lValues = [2,1,1] + iStat = Stat(lValues) + iStat.add(0) + expValuesList = [2,1,1,0] + expSum = 4 + expSum2 = 6 + expN = 4 + expMin = 0 + expMax = 2 + obsValuesList = iStat.getValuesList() + obsSum = iStat.getSum() + obsSum2 = iStat.getSumOfSquares() + obsN = iStat.getValuesNumber() + obsMin = iStat.getMin() + obsMax = iStat.getMax() + self.assertEquals(expValuesList, obsValuesList) + self.assertEquals(expSum, obsSum) + self.assertEquals(expSum2, obsSum2) + self.assertEquals(expN, obsN) + self.assertEquals(expMin, obsMin) + self.assertEquals(expMax, obsMax) + + def test_fill_emptyList(self): + lValues = [2,1,1] + iStat = Stat(lValues) + iStat.fill([]) + expValuesList = [2,1,1] + expSum = 4 + expSum2 = 6 + expN = 3 + expMin = 1 + expMax = 2 + obsValuesList = iStat.getValuesList() + obsSum = iStat.getSum() + obsSum2 = iStat.getSumOfSquares() + obsN = iStat.getValuesNumber() + obsMin = iStat.getMin() + obsMax = iStat.getMax() + self.assertEquals(expValuesList, obsValuesList) + self.assertEquals(expSum, obsSum) + self.assertEquals(expSum2, obsSum2) + self.assertEquals(expN, obsN) + self.assertEquals(expMin, obsMin) + self.assertEquals(expMax, obsMax) + + def test_fill(self): + lValues = [2, 1, 1] + iStat = Stat(lValues) + iStat.fill([4, 0]) + expValuesList = [2, 1, 1, 4, 0] + expSum = 8 + expSum2 = 22 + expN = 5 + expMin = 0 + expMax = 4 + obsValuesList = iStat.getValuesList() + obsSum = iStat.getSum() + obsSum2 = iStat.getSumOfSquares() + obsN = iStat.getValuesNumber() + obsMin = iStat.getMin() + obsMax = iStat.getMax() + self.assertEquals(expValuesList, obsValuesList) + self.assertEquals(expSum, obsSum) + self.assertEquals(expSum2, obsSum2) + self.assertEquals(expN, obsN) + self.assertEquals(expMin, obsMin) + self.assertEquals(expMax, obsMax) + + def test_mean_emptyList(self): + lValues = [] + iStat = Stat(lValues) + expMean = 0 + obsMean = iStat.mean() + self.assertEquals(expMean, obsMean) + + def test_mean(self): + lValues = [0, 1] + iStat = Stat(lValues) + expMean = 0.5 + obsMean = iStat.mean() + self.assertEquals(expMean, obsMean) + + def test_var_emptyList(self): + lValues = [] + iStat = Stat(lValues) + expVar = 0 + obsVar = iStat.var() + self.assertEquals(expVar, obsVar) + + def test_var(self): + lValues = [1, 1, 2] + iStat = Stat(lValues) + expVar = round(1/float(3), 5) + obsVar = round(iStat.var(), 5) + self.assertEquals(expVar, obsVar) + + def test_var2(self): + lValues = [1,6,3,4,9,6] + iStat = Stat(lValues) + expVar = 7.76667 + obsVar = round(iStat.var(), 5) + self.assertEquals(expVar, obsVar) + + def test_var_null(self): + lValues = [87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003] + iStat = Stat(lValues) + expVar = 0 + obsVar = round(iStat.var(),5) + self.assertEquals(expVar, obsVar) + + def test_sd(self): + lValues = [1, 1, 2] + iStat = Stat(lValues) + expSd = round(0.577350269, 5) + obsSd = round(iStat.sd(), 5) + self.assertEquals(expSd, obsSd) + + def test_sd_null(self): + lValues = [87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003, 87.340000000000003] + iStat = Stat(lValues) + expSd = 0 + obsSd = round(iStat.sd(), 5) + self.assertEquals(expSd, obsSd) + + def test_cv(self): + lValues = [1, 1, 2] + iStat = Stat(lValues) + expSd = round(0.433012702, 5) + obsSd = round(iStat.cv(), 5) + self.assertEquals(expSd, obsSd) + + def test_cv_mean_is_nul(self): + lValues = [1, -1] + iStat = Stat(lValues) + expSd = 0 + obsSd = iStat.cv() + self.assertEquals(expSd, obsSd) + + def test_median_emptyList(self): + lValues = [] + iStat = Stat(lValues) + expMedian = "NA" + obsMedian = iStat.median() + self.assertEquals(expMedian, obsMedian) + + def test_median_even(self): + lValues = [1, 2, 3, 4, 1, 2, 54, 6, 7] + iStat = Stat(lValues) + expMedian = 3 + obsMedian = iStat.median() + self.assertEquals(expMedian, obsMedian) + + def test_median_odd(self): + lValues = [1, 2, 3, 4, 2, 54, 6, 7] + iStat = Stat(lValues) + expMedian = 3.5 + obsMedian = iStat.median() + self.assertEquals(expMedian, obsMedian) + + def test_kurtosis_flat(self): + lValues = [1, 1, 1] + iStat = Stat(lValues) + expKurtosis = 0 + obsKurtosis = iStat.kurtosis() + self.assertEquals(expKurtosis, obsKurtosis) + + def test_kurtosis_peak(self): + lValues = [1, 100, -5] + iStat = Stat(lValues) + expKurtosis = round(712872278.6609683, 2) + obsKurtosis = round(iStat.kurtosis(), 2) + self.assertEquals(expKurtosis, obsKurtosis) + + def test_kurtosis_normal(self): + lValues = [-1, 0, 1.64, 1.64, 0, -1] + iStat = Stat(lValues) + expKurtosis = 3.0 + obsKurtosis = round(iStat.kurtosis(), 1) + self.assertEquals(expKurtosis, obsKurtosis) + + def test_sort(self): + lValues = [-1, 0, 1.64, 1.64, 0, -1] + iStat = Stat(lValues) + expSort = [-1, -1, 0, 0, 1.64, 1.64] + obsSort = iStat.sort() + self.assertEquals(expSort, obsSort) + + def test_sort_reverse(self): + lValues = [-1, 0, 1.64, 1.64, 0, -1] + iStat = Stat(lValues) + expSort = [1.64, 1.64, 0, 0, -1, -1] + obsSort = iStat.sort(True) + self.assertEquals(expSort, obsSort) + + def test_sort_emptyList(self): + lValues = [] + iStat = Stat(lValues) + expSort = [] + obsSort = iStat.sort() + self.assertEquals(expSort, obsSort) + + def test_quantile_emptyList(self): + lValues = [] + iStat = Stat(lValues) + expQuantile = 0 + obsQuantile = iStat.quantile(0.25) + self.assertEquals(expQuantile, obsQuantile) + + def test_quantile_0perc(self): + lValues = [0, 2.64, 1.64, -1, 5] + iStat = Stat(lValues) + expQuantile = -1 + obsQuantile = iStat.quantile(0) + self.assertEquals(expQuantile, obsQuantile) + + def test_quantile_25perc(self): + lValues = [0, 2.64, 1.64, -1, 5] + iStat = Stat(lValues) + expQuantile = 0 + obsQuantile = iStat.quantile(0.25) + self.assertEquals(expQuantile, obsQuantile) + + def test_quantile_41perc(self): + lValues = [0, 2.64, 1.64, -1, 5] + iStat = Stat(lValues) + expQuantile = 1.64 + obsQuantile = iStat.quantile(0.41) + self.assertEquals(expQuantile, obsQuantile) + + def test_quantile_75perc(self): + lValues = [0, 2.64, 1.64, -1, 5] + iStat = Stat(lValues) + expQuantile = 2.64 + obsQuantile = iStat.quantile(0.75) + self.assertEquals(expQuantile, obsQuantile) + + def test_quantile_81perc(self): + lValues = [0, 2.64, 1.64, -1, 5] + iStat = Stat(lValues) + expQuantile = 5 + obsQuantile = iStat.quantile(0.81) + self.assertEquals(expQuantile, obsQuantile) + + def test_quantile_100perc(self): + lValues = [0, 2.64, 1.64, -1, 5] + iStat = Stat(lValues) + expQuantile = 5 + obsQuantile = iStat.quantile(1) + self.assertEquals(expQuantile, obsQuantile) + + def test_N50(self): + lValues = [10, 10, 2, 16, 3, 4, 5] + iStat = Stat(lValues) + expN50 = 10 + obsN50 = iStat.N50() + self.assertEquals(expN50, obsN50) + + def test_N50SpecialValues(self): + lValues = [1, 100, 2, 3] + iStat = Stat(lValues) + expN50 = 100 + obsN50 = iStat.N50() + self.assertEquals(expN50, obsN50) + +if __name__ == "__main__": + unittest.main() \ No newline at end of file