示例#1
0
    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))))