snapshot of 4.0a development. initial git repo commit
[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 class TestMakeRdsFromBam(unittest.TestCase):
10
11
12     def testGetSpliceBounds(self):
13         start, startR, stopL, stopR = MakeRdsFromBam.getSpliceBounds(0, 10, [(1,2), (3,6), (1,2)])
14
15         self.assertEqual(start, 0, "incorrect start position for 262")
16         self.assertEqual(startR, 8, "incorrect right start position for 262")
17         self.assertEqual(stopL, 2, "incorrect left stop position for 262")
18         self.assertEqual(stopR, 10, "incorrect right stop position for 262")
19
20
21     def testGetMismatches(self):
22         querySequence = "GATTACA"
23         
24         resultString = "A3T"
25         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2A", querySequence, "+"))
26         resultString = "T3A"
27         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2A", querySequence, "-"))
28         resultString = "T7A"
29         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("6T", querySequence, "+"))
30
31         resultString = "A3T,T7A"
32         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2A3T0", querySequence, "+"))
33
34         resultString = ""
35         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2^T", querySequence, "+"))
36
37         resultString = "T5A"
38         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2^TT2T", querySequence, "+"))
39         resultString = "A5T"
40         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2^TT2T", querySequence, "-"))
41
42         resultString = "A3N"
43         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2A", "", "+"))
44         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("2A"))
45
46         resultString = ""
47         self.assertEquals(resultString, MakeRdsFromBam.getMismatches("badMismatchTagData", querySequence, "+"))
48
49
50     def testIsSpliceEntry(self):
51         self.assertTrue(MakeRdsFromBam.isSpliceEntry([(1,6), (3, 4), (1, 2)]))
52         self.assertFalse(MakeRdsFromBam.isSpliceEntry([(1,6), (2, 4), (1, 2)]))
53         self.assertFalse(MakeRdsFromBam.isSpliceEntry([]))
54         self.assertFalse(MakeRdsFromBam.isSpliceEntry(""))
55
56
57 def suite():
58     suite = unittest.TestSuite()
59     suite.addTest(unittest.makeSuite(TestMakeRdsFromBam))
60
61     return suite
62
63
64 if __name__ == "__main__":
65     #import sys;sys.argv = ['', 'Test.testName']
66     unittest.main()