5 # kinda hackish but it makes it possible to runi under ctest
6 sys.path.append(os.getcwd())
10 class TestSeqSpan(unittest.TestCase):
13 s = mussa.SeqSpan(seq_text)
14 self.failUnlessEqual(str(s), seq_text)
17 seq_text = "AAAAAAGGGGGGG"
18 s = mussa.SeqSpan(seq_text)
19 new_seq_text = "".join( [ x for x in s ] )
21 self.failUnlessEqual(len(seq_text), len(s))
22 self.failUnlessEqual(seq_text, new_seq_text)
24 def testSettingStrand(self):
26 complement_text = "CTTTT"
27 splus = mussa.SeqSpan(seq_text, mussa.alphabet.dna_alphabet, mussa.strand.plus)
28 sminus = splus.subseq(0, len(seq_text), mussa.strand.minus)
29 self.failUnlessEqual(str(sminus), complement_text)
31 # Doesn't work because I keep getting new python objects created
32 # for calls to SeqSpan::parent
33 #def testParentEquality(self):
34 # seq_text = "AAAAAAGGG"
35 # sparent = mussa.SeqSpan(seq_text)
36 # s1 = sparent.subseq(4,4, mussa.strand.minus)
37 #y s2 = s1.subseq(0,2, mussa.strand.opposite)
38 # print "s2 parent call 1",s2.parent()
39 # print "s2 parent call 2", s2.parent()
40 # self.failUnless(s1 is s2.parent())
41 # self.failUnlessEqual(s1, s2.parent())
42 # self.failUnless(sparent is s1.parent())
43 # self.failUnlessEqual(sparent == s1.parent())
45 def testAnnotations(self):
48 s = mussa.SeqSpan(seq_text)
49 s.annotations = mussa.Annotations(name)
50 self.failUnlessEqual(s.annotations.name, name)
51 self.failUnlessEqual(s.annotations['name'], name)
55 s.annotations[term_key] = term
56 self.failUnlessEqual(s.annotations[term_key], term)
59 return unittest.makeSuite(TestSeqSpan, 'test')
61 if __name__ == "__main__":
62 sys.exit(unittest.main(defaultTest='suite'))