Mercurial > repos > yufei-luo > s_mart
comparison SMART/Java/Python/ncList/test/Test_F_FileSorter.py @ 6:769e306b7933
Change the repository level.
author | yufei-luo |
---|---|
date | Fri, 18 Jan 2013 04:54:14 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
5:ea3082881bf8 | 6:769e306b7933 |
---|---|
1 import os | |
2 import unittest | |
3 import struct | |
4 from SMART.Java.Python.misc import Utils | |
5 from SMART.Java.Python.ncList.FileSorter import FileSorter | |
6 from SMART.Java.Python.structure.Transcript import Transcript | |
7 from commons.core.writer.Gff3Writer import Gff3Writer | |
8 from commons.core.parsing.GffParser import GffParser | |
9 from SMART.Java.Python.ncList.NCListFilePickle import NCListFileUnpickle | |
10 | |
11 | |
12 class Test_F_FileSorter(unittest.TestCase): | |
13 | |
14 def setUp(self): | |
15 self._inputGff3FileName = 'inputFile.gff3' | |
16 self._outputFileName = 'outputFile.pkl' | |
17 | |
18 def tearDown(self): | |
19 return | |
20 for fileName in (self._inputGff3FileName, self._sortedFileName, self._expHFileName, self._expLFileName, self._obsHFileName, self._obsLFileName, self._addressFileName): | |
21 if os.path.exists(fileName): | |
22 os.remove(fileName) | |
23 | |
24 def test_unique(self): | |
25 transcript = self._createTranscript("chr1", 100, 200, "test1.1") | |
26 parser = self._writeAndSortAndParse([transcript]) | |
27 self.assertEquals(parser.getNbTranscripts(), 1) | |
28 for transcript in parser.getIterator(): | |
29 self._checkTranscript(transcript, "chr1", 100, 200, "test1.1") | |
30 | |
31 def test_simple(self): | |
32 transcript1 = self._createTranscript("chr1", 300, 400, "test1.1") | |
33 transcript2 = self._createTranscript("chr1", 100, 200, "test1.2") | |
34 parser = self._writeAndSortAndParse([transcript1, transcript2]) | |
35 self.assertEquals(parser.getNbTranscripts(), 2) | |
36 for cpt, transcript in enumerate(parser.getIterator()): | |
37 if cpt == 0: | |
38 self._checkTranscript(transcript, "chr1", 100, 200, "test1.2") | |
39 else: | |
40 self._checkTranscript(transcript, "chr1", 300, 400, "test1.1") | |
41 | |
42 def test_same_start(self): | |
43 transcript1 = self._createTranscript("chr1", 100, 200, "test1.1") | |
44 transcript2 = self._createTranscript("chr1", 100, 300, "test1.2") | |
45 parser = self._writeAndSortAndParse([transcript1, transcript2]) | |
46 self.assertEquals(parser.getNbTranscripts(), 2) | |
47 for cpt, transcript in enumerate(parser.getIterator()): | |
48 if cpt == 0: | |
49 self._checkTranscript(transcript, "chr1", 100, 300, "test1.2") | |
50 else: | |
51 self._checkTranscript(transcript, "chr1", 100, 200, "test1.1") | |
52 | |
53 def _writeAndSortAndParse(self, transcripts): | |
54 writer = Gff3Writer(self._inputGff3FileName, 0) | |
55 for transcript in transcripts: | |
56 writer.addTranscript(transcript) | |
57 writer.close() | |
58 parser = GffParser(self._inputGff3FileName, 0) | |
59 fs = FileSorter(parser, 0) | |
60 fs.setOutputFileName(self._outputFileName) | |
61 fs.sort() | |
62 parser = NCListFileUnpickle(self._outputFileName, 0) | |
63 return parser | |
64 | |
65 def _createTranscript(self, chromosome, start, end, name): | |
66 transcript = Transcript() | |
67 transcript.setChromosome(chromosome) | |
68 transcript.setStart(start) | |
69 transcript.setEnd(end) | |
70 transcript.setDirection("+") | |
71 transcript.setName(name) | |
72 return transcript | |
73 | |
74 def _checkTranscript(self, transcript, chromosome, start, end, name): | |
75 self.assertEquals(transcript.getChromosome(), chromosome) | |
76 self.assertEquals(transcript.getStart(), start) | |
77 self.assertEquals(transcript.getEnd(), end) | |
78 self.assertEquals(transcript.getDirection(), 1) | |
79 self.assertEquals(transcript.getName(), name) | |
80 | |
81 | |
82 if __name__ == "__main__": | |
83 unittest.main() | |
84 |