erange version 4.0a dev release
[erange.git] / test / testMakeSNPTrack.py
1 '''
2 Created on Aug 25, 2010
3
4 @author: sau
5 '''
6 import unittest
7 from erange import makeSNPtrack
8
9
10 class TestMakeSNPTrack(unittest.TestCase):
11
12     baseColor = {"A": "200, 0, 255",
13                  "T": "200, 0, 255",
14                  "C": "200, 0, 255",
15                  "G": "200, 0, 255"
16     }
17
18     specialColors = {"A-G": "255, 0, 0",
19                      "T-C": "0, 0, 255"
20     }
21
22
23     def setUp(self):
24         pass
25
26
27     def tearDown(self):
28         pass
29
30
31     def testGetHeader(self):
32         track = "test track"
33         header = "track name=%s description=%s visibility=2 itemRgb=\"On\"\n" % (track, track)
34         self.assertEquals(header, makeSNPtrack.getHeader(track))
35
36
37     def testDoNotProcessLine(self):
38         self.assertTrue(makeSNPtrack.doNotProcessLine("#anything"))
39         self.assertFalse(makeSNPtrack.doNotProcessLine("line to process"))
40
41
42     def testGetBedOutputLine(self):
43         chromosome = "chr1"
44         readStart = 10
45         readStop = 11
46         readName = "A"
47         score = "0"
48         sense = "+"
49         color = self.baseColor[readName]
50         snpPropertiesList = ["0", "1", chromosome, 11, "4", "5", "6", readName]
51         outline = "%s\t%d\t%d\t%s\t%s\t%s\t-\t-\t\t%s\n" % (chromosome, readStart, readStop, readName, score, sense, color)
52         self.assertEquals(outline, makeSNPtrack.getBedOutputLine(snpPropertiesList))
53
54         snpPropertiesList = ["0", "1", chromosome, 11, "4", "5", "6"]
55         self.assertRaises(IndexError, makeSNPtrack.getBedOutputLine, snpPropertiesList)
56
57         snpPropertiesList = []
58         self.assertRaises(IndexError, makeSNPtrack.getBedOutputLine, snpPropertiesList)
59
60         snpPropertiesList = ["0", "1", chromosome, "some string", "4", "5", "6", readName]
61         self.assertRaises(ValueError, makeSNPtrack.getBedOutputLine, snpPropertiesList)
62
63
64     def testGetSNPColor(self):
65         for base in self.baseColor.keys():
66             self.assertEquals(self.baseColor[base], makeSNPtrack.getSNPColor(base))
67
68         for base in self.specialColors.keys():
69             self.assertEquals(self.specialColors[base], makeSNPtrack.getSNPColor(base))
70
71         defaultColor = "200, 0, 255"
72         self.assertEquals(defaultColor, makeSNPtrack.getSNPColor(""))
73         self.assertEquals(defaultColor, makeSNPtrack.getSNPColor("V"))
74
75
76 def suite():
77     suite = unittest.TestSuite()
78     suite.addTest(unittest.makeSuite(TestMakeSNPTrack))
79
80     return suite
81
82
83 if __name__ == "__main__":
84     #import sys;sys.argv = ['', 'Test.testName']
85     unittest.main()