2 from StringIO import StringIO
5 from htsworkflow.util import validate
7 class TestValidate(unittest.TestCase):
8 def test_fastq_works(self):
9 q = StringIO(u"> abc\nAGCT\n@\nBBBB\n")
10 errors = validate.validate_fastq(q)
11 self.failUnlessEqual(0, errors)
13 def test_fastq_diff_length_uniform(self):
14 q = StringIO(u"> abc\nAGCT\n@\nBBBB\n> abcd\nAGCTT\n@\nJJJJJ\n")
15 errors = validate.validate_fastq(q, True)
16 self.failUnlessEqual(2, errors)
18 def test_fastq_diff_length_variable(self):
19 q = StringIO(u"> abc\nAGCT\n@\n@@@@\n> abcd\nAGCTT\n@\nJJJJJ\n")
20 errors = validate.validate_fastq(q, False)
21 self.failUnlessEqual(0, errors)
23 def test_fastq_qual_short(self):
24 q = StringIO(u"> abc\nAGCT\n@\nSS\n")
25 errors = validate.validate_fastq(q)
26 self.failUnlessEqual(1, errors)
28 def test_fastq_seq_invalid_char(self):
29 q = StringIO(u"> abc\nAGC\u1310\n@\nPQRS\n")
30 errors = validate.validate_fastq(q)
31 self.failUnlessEqual(1, errors)
33 def test_fastq_qual_invalid_char(self):
34 q = StringIO(u"> abc\nAGC.\n@\n!@#J\n")
35 errors = validate.validate_fastq(q)
36 self.failUnlessEqual(1, errors)
39 return unittest.makeSuite(testValidate, 'test')
41 if __name__ == "__main__":
42 unittest.main(defaultTest='suite')