erange version 4.0a dev release
[erange.git] / test / testPeaksToRegion.py
1 '''
2 Created on Oct 4, 2010
3
4 @author: sau
5 '''
6 import unittest
7 import os
8 from erange import peakstoregion
9
10 inFileName = "testPeaksToRegionInFile.txt"
11 outFileName = "testPeaksToRegionOutFile.txt"
12
13
14 class TestPeaksToRegion(unittest.TestCase):
15
16
17     def setUp(self):
18         self.inFile = open(inFileName, "w")
19         self.inFile.write("stuff\tpeak1\tchr1\t1000\t1.3\n")
20         self.inFile.write("stuff\tpeak2\tchr1\t800\t9.7\n")
21         self.inFile.write("stuff\tpeak3\tchr2\t1000\t3.0\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 testPeaksToRegion(self):
38         peakstoregion.peakstoregion(inFileName, outFileName)
39         output = open(outFileName)
40         results = output.readlines()
41         output.close()
42         self.assertEquals(3, len(results))
43         self.assertEquals("peak1\tchr1\t500\t1500\t1.3\n", results[0])
44         self.assertEquals("peak2\tchr1\t300\t1300\t9.7\n", results[1])
45         self.assertEquals("peak3\tchr2\t500\t1500\t3.0\n", results[2])
46
47
48     def testMain(self):
49         argv = ["peakstoregion", inFileName, outFileName]
50         peakstoregion.main(argv)
51         output = open(outFileName)
52         results = output.readlines()
53         output.close()
54         self.assertEquals(3, len(results))
55         self.assertEquals("peak1\tchr1\t500\t1500\t1.3\n", results[0])
56         self.assertEquals("peak2\tchr1\t300\t1300\t9.7\n", results[1])
57         self.assertEquals("peak3\tchr2\t500\t1500\t3.0\n", results[2])
58
59         argv = ["peakstoregion", inFileName, outFileName, 600, 2, 3, 1, -1]
60         peakstoregion.main(argv)
61         output = open(outFileName)
62         results = output.readlines()
63         output.close()
64         self.assertEquals(3, len(results))
65         self.assertEquals("peak1\tchr1\t400\t1600\t1.3\n", results[0])
66         self.assertEquals("peak2\tchr1\t200\t1400\t9.7\n", results[1])
67         self.assertEquals("peak3\tchr2\t400\t1600\t3.0\n", results[2])
68
69
70 def suite():
71     suite = unittest.TestSuite()
72     suite.addTest(unittest.makeSuite(TestPeaksToRegion))
73
74     return suite
75
76
77 if __name__ == "__main__":
78     #import sys;sys.argv = ['', 'Test.testName']
79     unittest.main()