erange version 4.0a dev release
[erange.git] / test / testTranscripts.py
1 '''
2 Created on Oct 4, 2010
3
4 @author: sau
5 '''
6 import unittest
7 import os
8 from erange import transcripts
9
10 inFileName = "testTranscriptsInFile.txt"
11 outFileName = "testTranscriptsOutFile.txt"
12
13
14 class TestTranscripts(unittest.TestCase):
15
16
17     def setUp(self):
18         self.inFile = open(inFileName, "w")
19         self.inFile.write("line1\t3.5\n")
20         self.inFile.write("line2\t1.5\n")
21         self.inFile.write("line3\tpadding\t3.5\n")
22         self.inFile.close()
23
24
25     def tearDown(self):
26         try:
27             os.remove(outFileName)
28         except OSError:
29             pass
30
31         try:
32             os.remove(inFileName)
33         except OSError:
34             pass
35
36
37     def testTranscripts(self):
38         transcripts.transcripts(inFileName, outFileName)
39         output = open(outFileName)
40         results = output.readlines()
41         output.close()
42         self.assertEquals(3, len(results))
43         self.assertEquals("line1\t700000.0\t2.3\n", results[0])
44         self.assertEquals("line2\t300000.0\t1.0\n", results[1])
45         self.assertEquals("line3\t700000.0\t2.3\n", results[2])
46
47     def testMain(self):
48         argv = ["transcripts.py", inFileName, outFileName]
49         transcripts.main(argv)
50         output = open(outFileName)
51         results = output.readlines()
52         output.close()
53         self.assertEquals(3, len(results))
54         self.assertEquals("line1\t700000.0\t2.3\n", results[0])
55         self.assertEquals("line2\t300000.0\t1.0\n", results[1])
56         self.assertEquals("line3\t700000.0\t2.3\n", results[2])
57
58         argv = ["transcripts.py", inFileName, outFileName, "--transcriptome", "400000"]
59         transcripts.main(argv)
60         output = open(outFileName)
61         results = output.readlines()
62         output.close()
63         self.assertEquals(3, len(results))
64         self.assertEquals("line1\t1400000.0\t4.7\n", results[0])
65         self.assertEquals("line2\t600000.0\t2.0\n", results[1])
66         self.assertEquals("line3\t1400000.0\t4.7\n", results[2])
67
68         argv = ["transcripts.py", inFileName, outFileName, "--cells", "5e5"]
69         transcripts.main(argv)
70         output = open(outFileName)
71         results = output.readlines()
72         output.close()
73         self.assertEquals(3, len(results))
74         self.assertEquals("line1\t700000.0\t4.7\n", results[0])
75         self.assertEquals("line2\t300000.0\t2.0\n", results[1])
76         self.assertEquals("line3\t700000.0\t4.7\n", results[2])
77
78         argv = ["transcripts.py", inFileName, outFileName, "--efficiency", "0.15"]
79         transcripts.main(argv)
80         output = open(outFileName)
81         results = output.readlines()
82         output.close()
83         self.assertEquals(3, len(results))
84         self.assertEquals("line1\t700000.0\t4.7\n", results[0])
85         self.assertEquals("line2\t300000.0\t2.0\n", results[1])
86         self.assertEquals("line3\t700000.0\t4.7\n", results[2])
87
88
89 def suite():
90     suite = unittest.TestSuite()
91     suite.addTest(unittest.makeSuite(TestTranscripts))
92
93     return suite
94
95
96 if __name__ == "__main__":
97     #import sys;sys.argv = ['', 'Test.testName']
98     unittest.main()