def test_search(self): s1 = 'ACGTACGTAGCAT' alphabet = list(set(s1)) bwt1 = BWT(s1) self.assertEqual(list(bwt1.search('ACGT')), [0, 4]) del s1, bwt1 s2 = 'TTCGGCAGTCACCGCGGTTTTCTCGAACGCTTAGGGATAATCGGATCATTCTCACGTAACAGGGTTACGGAGAGTGGAGTGGT'\ 'TGCATGTTAGCCCGCTCTATGCTGGCACCGTGCGGCCACAAACTTATACGTTCTCAGCAGGTATTGTCTCCGGCAATGTTCTC'\ 'TACTGAGGGATGCAATGACATTACGCCACTTATCATTTTAGAAATGCGAGCTTCGAGGGCTGGTGCCGACAGGGCCCTAGCTT'\ 'CGCGCTGCTACACTCTCTAGTCACTAGACACATCTCCATGGGGGAGATAATCTTCGTTTTCCGAGCATGAAACGTACCGGTTA'\ 'CACCCATCATAACGGTGAGAGTTAGTGTGGTTTTTCGGACCAACGGACTGCTGGGTTGCGTGGTTCATTGGTCCTTGACGACG'\ 'AGCAATAGCATGACGCTTTAATAAATCGTTCTACGTTGGGAGGTAACGCGGAATCCCAAGGCCCTCGACATCGTCCTCTCCAT'\ 'ACGAGACACGAAACATTTATATCACTTCGGGCCATTATGCATATCAGTTGGCTGGTTCCTCTTGACGTTAAAATAGGTGGGAA'\ 'GTTATTCGATACCAACGTCTGCAGGTACCGAATAGTGCACGGCGACACACCACAGGGATCTATTAATAAACCTGGTGATGTGA'\ 'TTGGTCCGACTTCGACTAACAACGATTCGACCAGTCTTAATTCTGATCTCGTGACCCGTGTCCTTATTCCATCTAATGAAATT'\ 'CCTGTGGCGATCGGGCACTTCCCGGCGTAAAGTAACCTCCGGACGGCCTAGATTCTATTCTGAAGCTCGCTCGTTTGGAACTT'\ 'GGGGCGCTGAGTCATTACGGGCGCGGTTCTACCATGCACAGCAATATTACACCACTCCTCCCACAGAATCTTCCGACGTGAAG'\ 'GAATGCCCGCAGACAGACATGCTGGTGAAACTGCACCACGACCTTTCGCAACCAGCGCCGGGCGAAAGTCAGTTCAGTCTGCC'\ 'GGAC' bwt2 = BWT(s2) self.assertEqual(sorted(bwt2.search('ACGT')), [53, 130, 320, 447, 562, 595, 905]) del s2, bwt2 s3 = ''.join(choice(alphabet) for _ in xrange(1000)) bwt3 = BWT(s3) n3 = ''.join(choice(alphabet) for _ in xrange(100)) self.assertEqual(sum(1 for _ in re.finditer('(?=' + n3 + ')', s3)), len(list(bwt3.search(n3))))