def test_iteritems(self): s = set() l1 = list() t = SuffixTree() for x in xrange(100): k = base64.b64encode(os.urandom(x%10 + 1)).rstrip('=') if k in s: continue l1.append((k, x)) t[k] = x s.add(k) l1.sort() self.assertEquals(l1, list(t.iteritems()))
def test_match(self): t = SuffixTree() t['what'] = 1 t['where'] = 1 t['when'] = 1 t['widget'] = 1 t['wizard'] = 1 t['wow'] = 1 t['wowo'] = 1 self.assertEquals(dict(t.find('e')), {'where':1,'when':1,'widget':1}) self.assertEquals(dict(t.find('h')), {'where':1,'when':1,'what':1}) self.assertEquals(dict(t.find('a')), {'wizard':1,'what':1}) self.assertEquals(dict(t.find('ow')), {'wow':1,'wowo':1})
def test_find_simple(self): s = set() l1 = list() t = SuffixTree() for x in xrange(100): k = base64.b64encode(os.urandom(x%10 + 1)).rstrip('=') if k in s: continue l1.append(k) t[k] = x s.add(k) l1.sort() for x in l1: assert bool(tuple(t.find(x)))
def test_get_next_iteration(self): self.tree = SuffixTree("CAG") self.assertTrue(self.tree._iterator is not None) self.assertEqual( self.tree.get_next_iteration(), ('G', 3)) self.assertEqual( self.tree.get_next_iteration(), ('AG', 2)) self.assertEqual( self.tree.get_next_iteration(), ('CAG', 1)) # make sure iterator halts when we reach beginning of string self.assertEqual( self.tree.get_next_iteration(), None) self.assertEqual( self.tree.get_next_iteration(), None)
class SuffixTreeTest(unittest.TestCase): def setUp(self): self.nucleotides = u'CAGTCAGG' self.tree = SuffixTree(self.nucleotides) def test_has_root(self): """ we initialize the tree with a root node """ self.assertTrue(self.tree.rootNode is not None) self.assertTrue(isinstance(self.tree.rootNode, SuffixRootNode)) def test_get_next_iteration(self): self.tree = SuffixTree("CAG") self.assertTrue(self.tree._iterator is not None) self.assertEqual( self.tree.get_next_iteration(), ('G', 3)) self.assertEqual( self.tree.get_next_iteration(), ('AG', 2)) self.assertEqual( self.tree.get_next_iteration(), ('CAG', 1)) # make sure iterator halts when we reach beginning of string self.assertEqual( self.tree.get_next_iteration(), None) self.assertEqual( self.tree.get_next_iteration(), None) def test_construct_tree(self): pass
def design(family, param): result = [] for seq in family: remain = set(family) remain.remove(seq) #build GST s1|s2...|sm tree = SuffixTree(concat(list(remain))) n = len(seq) l_min = param[0] l_max = param[1] l_t = param[10] begin = 0 end = n - (l_t + l_min) forward = find(l_min, l_max, begin, end, seq, tree) begin = (l_t + l_min) end = n reverse = find(l_min, l_max, begin, end, seq, tree) result.append(bio.design_primer(seq, param, forward, reverse)) return result
def setUp(self): self.nucleotides = u'CAGTCAGG' self.tree = SuffixTree(self.nucleotides)