erange version 4.0a dev release
[erange.git] / test / testMakeRdsFromBam.py
1 '''
2 Created on Jun 10, 2010
3
4 @author: sau
5 '''
6 import unittest
7 from erange import MakeRdsFromBam
8
9
10 class TestMakeRdsFromBam(unittest.TestCase):
11
12
13     def testGetMismatches(self):
14         querySequence = "GATTACA"
15         
16         resultString = "A3T"
17         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2A", querySequence, "+"))
18         resultString = "T3A"
19         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2A", querySequence, "-"))
20         resultString = "T7A"
21         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("6T", querySequence, "+"))
22
23         resultString = "A3T,T7A"
24         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2A3T0", querySequence, "+"))
25
26         resultString = ""
27         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2^T", querySequence, "+"))
28
29         resultString = "T5A"
30         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2^TT2T", querySequence, "+"))
31         resultString = "A5T"
32         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2^TT2T", querySequence, "-"))
33
34         resultString = "A3N"
35         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2A", "", "+"))
36         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2A"))
37
38         resultString = ""
39         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("badMismatchTagData", querySequence, "+"))
40
41
42     #TODO: write test
43     def testGetPairedReadNumberSuffix(self):
44         pass
45
46
47     #TODO: write test
48     def testGetParser(self):
49         pass
50
51
52     #TODO: write test
53     def testGetRDSEntry(self):
54         pass
55
56
57     #TODO: write test
58     def testGetRDSSpliceEntry(self):
59         pass
60
61
62     def testGetReadSense(self):
63         reverse = False
64         self.assertEqual("+", MakeRdsFromBam.getReadSense(reverse))
65         reverse = True
66         self.assertEqual("-", MakeRdsFromBam.getReadSense(reverse))
67
68
69     def testGetSpliceBounds(self):
70         start, startR, stopL, stopR = MakeRdsFromBam.getSpliceBounds(0, 10, [(1,2), (3,6), (1,2)])
71
72         self.assertEqual(start, 0, "incorrect start position for 262")
73         self.assertEqual(startR, 8, "incorrect right start position for 262")
74         self.assertEqual(stopL, 2, "incorrect left stop position for 262")
75         self.assertEqual(stopR, 10, "incorrect right stop position for 262")
76
77
78     #TODO: write test
79     def testIsPairedRead(self):
80         pass
81
82
83     def testIsSpliceEntry(self):
84         self.assertTrue(MakeRdsFromBam.isSpliceEntry([(1,6), (3, 4), (1, 2)]))
85         self.assertFalse(MakeRdsFromBam.isSpliceEntry([(1,6), (2, 4), (1, 2)]))
86         self.assertFalse(MakeRdsFromBam.isSpliceEntry([]))
87         self.assertFalse(MakeRdsFromBam.isSpliceEntry(""))
88
89
90     #TODO: write test
91     def testMain(self):
92         pass
93
94
95     #TODO: write test
96     def testMakeRDSFromBAM(self):
97         pass
98
99
100 def suite():
101     suite = unittest.TestSuite()
102     suite.addTest(unittest.makeSuite(TestMakeRdsFromBam))
103
104     return suite
105
106
107 if __name__ == "__main__":
108     #import sys;sys.argv = ['', 'Test.testName']
109     unittest.main()